]> git.phdru.name Git - mc/mc-torrent-vfs-tests.git/commitdiff
Tests: Add `test_list_torrents`
authorOleg Broytman <phd@phdru.name>
Tue, 28 Jan 2025 14:21:45 +0000 (17:21 +0300)
committerOleg Broytman <phd@phdru.name>
Tue, 28 Jan 2025 23:56:43 +0000 (02:56 +0300)
Test `torrent list <file>.torrent`.

tests/data/expected/alice.txt [new file with mode: 0644]
tests/data/expected/bunny.txt [new file with mode: 0644]
tests/data/expected/folder.txt [new file with mode: 0644]
tests/data/expected/leaves-metadata.txt [new file with mode: 0644]
tests/data/expected/leaves.txt [new file with mode: 0644]
tests/data/expected/lots-of-numbers.txt [new file with mode: 0644]
tests/data/expected/numbers.txt [new file with mode: 0644]
tests/data/expected/sintel.txt [new file with mode: 0644]
tests/test_list_torrents.py [new file with mode: 0755]

diff --git a/tests/data/expected/alice.txt b/tests/data/expected/alice.txt
new file mode 100644 (file)
index 0000000..02f6c73
--- /dev/null
@@ -0,0 +1,5 @@
+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
diff --git a/tests/data/expected/bunny.txt b/tests/data/expected/bunny.txt
new file mode 100644 (file)
index 0000000..5a7d433
--- /dev/null
@@ -0,0 +1,7 @@
+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
diff --git a/tests/data/expected/folder.txt b/tests/data/expected/folder.txt
new file mode 100644 (file)
index 0000000..fc86126
--- /dev/null
@@ -0,0 +1,6 @@
+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
diff --git a/tests/data/expected/leaves-metadata.txt b/tests/data/expected/leaves-metadata.txt
new file mode 100644 (file)
index 0000000..b8feddc
--- /dev/null
@@ -0,0 +1,4 @@
+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
diff --git a/tests/data/expected/leaves.txt b/tests/data/expected/leaves.txt
new file mode 100644 (file)
index 0000000..5d7218f
--- /dev/null
@@ -0,0 +1,6 @@
+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
diff --git a/tests/data/expected/lots-of-numbers.txt b/tests/data/expected/lots-of-numbers.txt
new file mode 100644 (file)
index 0000000..7f6d6d8
--- /dev/null
@@ -0,0 +1,12 @@
+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
diff --git a/tests/data/expected/numbers.txt b/tests/data/expected/numbers.txt
new file mode 100644 (file)
index 0000000..c282179
--- /dev/null
@@ -0,0 +1,8 @@
+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
diff --git a/tests/data/expected/sintel.txt b/tests/data/expected/sintel.txt
new file mode 100644 (file)
index 0000000..f319eaf
--- /dev/null
@@ -0,0 +1,8 @@
+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
diff --git a/tests/test_list_torrents.py b/tests/test_list_torrents.py
new file mode 100755 (executable)
index 0000000..38d9ca8
--- /dev/null
@@ -0,0 +1,45 @@
+#! /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)