Test `torrent list <file>.torrent`.
--- /dev/null
+dr-xr-xr-x 1 user group 0 11-25-9999 14:44 .META
+-r--r--r-- 1 user group 25 11-25-9999 14:44 .META/creation date
+-r--r--r-- 1 user group 5 11-25-9999 14:44 .META/encoding
+-r--r--r-- 1 user group 5 11-25-9999 14:44 .META/piece length
+-r--r--r-- 1 user group 163783 11-25-9999 14:44 alice.txt
--- /dev/null
+dr-xr-xr-x 1 user group 0 12-17-2013 19:48 .META
+-r--r--r-- 1 user group 13 12-17-2013 19:48 .META/created by
+-r--r--r-- 1 user group 24 12-17-2013 19:48 .META/creation date
+-r--r--r-- 1 user group 5 12-17-2013 19:48 .META/encoding
+-r--r--r-- 1 user group 6 12-17-2013 19:48 .META/piece length
+-r--r--r-- 1 user group 1 12-17-2013 19:48 .META/private
+-r--r--r-- 1 user group 434839491 12-17-2013 19:48 bbb_sunflower_1080p_30fps_stereo_abl.mp4
--- /dev/null
+dr-xr-xr-x 1 user group 0 02-12-9999 23:30 .META
+-r--r--r-- 1 user group 25 02-12-9999 23:30 .META/creation date
+-r--r--r-- 1 user group 5 02-12-9999 23:30 .META/encoding
+-r--r--r-- 1 user group 5 02-12-9999 23:30 .META/piece length
+dr-xr-xr-x 1 user group 0 02-12-9999 23:30 folder
+-r--r--r-- 1 user group 15 02-12-9999 23:30 folder/file.txt
--- /dev/null
+dr-xr-xr-x 1 user group 0 03-16-2016 19:33 .META
+-r--r--r-- 1 user group 0 03-16-2016 19:33 .META/announce-list
+-r--r--r-- 1 user group 5 03-16-2016 19:33 .META/piece length
+-r--r--r-- 1 user group 362017 03-16-2016 19:33 Leaves of Grass by Walt Whitman.epub
--- /dev/null
+dr-xr-xr-x 1 user group 0 08-01-2013 13:27 .META
+-r--r--r-- 1 user group 13 08-01-2013 13:27 .META/created by
+-r--r--r-- 1 user group 24 08-01-2013 13:27 .META/creation date
+-r--r--r-- 1 user group 5 08-01-2013 13:27 .META/encoding
+-r--r--r-- 1 user group 5 08-01-2013 13:27 .META/piece length
+-r--r--r-- 1 user group 362017 08-01-2013 13:27 Leaves of Grass by Walt Whitman.epub
--- /dev/null
+dr-xr-xr-x 1 user group 0 03-28-9999 03:18 .META
+-r--r--r-- 1 user group 25 03-28-9999 03:18 .META/creation date
+-r--r--r-- 1 user group 5 03-28-9999 03:18 .META/encoding
+-r--r--r-- 1 user group 5 03-28-9999 03:18 .META/piece length
+dr-xr-xr-x 1 user group 0 03-28-9999 03:18 lots-of-numbers/big numbers
+-r--r--r-- 1 user group 2 03-28-9999 03:18 lots-of-numbers/big numbers/10.txt
+-r--r--r-- 1 user group 2 03-28-9999 03:18 lots-of-numbers/big numbers/11.txt
+-r--r--r-- 1 user group 2 03-28-9999 03:18 lots-of-numbers/big numbers/12.txt
+dr-xr-xr-x 1 user group 0 03-28-9999 03:18 lots-of-numbers/small numbers
+-r--r--r-- 1 user group 1 03-28-9999 03:18 lots-of-numbers/small numbers/1.txt
+-r--r--r-- 1 user group 2 03-28-9999 03:18 lots-of-numbers/small numbers/2.txt
+-r--r--r-- 1 user group 3 03-28-9999 03:18 lots-of-numbers/small numbers/3.txt
--- /dev/null
+dr-xr-xr-x 1 user group 0 02-15-9999 17:44 .META
+-r--r--r-- 1 user group 25 02-15-9999 17:44 .META/creation date
+-r--r--r-- 1 user group 5 02-15-9999 17:44 .META/encoding
+-r--r--r-- 1 user group 5 02-15-9999 17:44 .META/piece length
+dr-xr-xr-x 1 user group 0 02-15-9999 17:44 numbers
+-r--r--r-- 1 user group 1 02-15-9999 17:44 numbers/1.txt
+-r--r--r-- 1 user group 2 02-15-9999 17:44 numbers/2.txt
+-r--r--r-- 1 user group 3 02-15-9999 17:44 numbers/3.txt
--- /dev/null
+dr-xr-xr-x 1 user group 0 05-05-2011 08:49 .META
+-r--r--r-- 1 user group 13 05-05-2011 08:49 .META/created by
+-r--r--r-- 1 user group 24 05-05-2011 08:49 .META/creation date
+-r--r--r-- 1 user group 5 05-05-2011 08:49 .META/encoding
+-r--r--r-- 1 user group 7 05-05-2011 08:49 .META/piece length
+-r--r--r-- 1 user group 9 05-05-2011 08:49 .META/publisher
+-r--r--r-- 1 user group 31 05-05-2011 08:49 .META/publisher-url
+-r--r--r-- 1 user group 5490455272 05-05-2011 08:49 Sintel.2010.4K.DMRip.x264.DD.DTS.SRT-MaLLIeHbKa.mkv
--- /dev/null
+#! /usr/bin/env python3
+
+import os
+import os.path
+import subprocess
+import sys
+
+os.environ['TZ'] = 'GMT' # Fix timezone for date/time comparison
+
+test_dir = os.path.dirname(__file__)
+expected_dir = os.path.join(test_dir, 'data', 'expected')
+extfs_dir = os.path.join(test_dir, 'extfs.d')
+test_torrents_dir = os.path.join(test_dir, 'webtorrent-fixtures', 'fixtures')
+
+
+def _get_filename(line):
+ return line.split(None, 7)[7]
+
+
+def _test1(basename):
+ torrent_file = os.path.join(test_torrents_dir, basename + '.torrent')
+ command = os.path.join(extfs_dir, 'torrent')
+ pipe = subprocess.Popen([sys.executable, command, 'list', torrent_file],
+ stdout=subprocess.PIPE)
+ torrent_list = pipe.stdout.read()
+ pipe.stdout.close()
+ if basename == 'corrupt':
+ assert pipe.wait() == 1 # result=1, Error
+ else:
+ assert pipe.wait() == 0 # result=0, Ok
+ torrent_list_lines = torrent_list.splitlines()
+ torrent_list_lines.sort(key=_get_filename)
+ expected_file = open(os.path.join(expected_dir, basename + '.txt'),
+ 'rb')
+ expected_lines = [line.strip() for line in expected_file.readlines()]
+ expected_file.close()
+ assert torrent_list_lines == expected_lines
+
+
+def test_list_torrents():
+ for basename in [
+ 'alice', 'bunny', 'corrupt', 'folder', 'leaves-metadata',
+ 'leaves', 'lots-of-numbers', 'numbers', 'sintel',
+ ]:
+ _test1(basename)