From 71f52941653e8a4d6638b632abc81ffbcc7c82b3 Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Tue, 28 Jan 2025 17:21:45 +0300 Subject: [PATCH] Tests: Add `test_list_torrents` Test `torrent list .torrent`. --- tests/data/expected/alice.txt | 5 +++ tests/data/expected/bunny.txt | 7 ++++ tests/data/expected/folder.txt | 6 ++++ tests/data/expected/leaves-metadata.txt | 4 +++ tests/data/expected/leaves.txt | 6 ++++ tests/data/expected/lots-of-numbers.txt | 12 +++++++ tests/data/expected/numbers.txt | 8 +++++ tests/data/expected/sintel.txt | 8 +++++ tests/test_list_torrents.py | 45 +++++++++++++++++++++++++ 9 files changed, 101 insertions(+) create mode 100644 tests/data/expected/alice.txt create mode 100644 tests/data/expected/bunny.txt create mode 100644 tests/data/expected/folder.txt create mode 100644 tests/data/expected/leaves-metadata.txt create mode 100644 tests/data/expected/leaves.txt create mode 100644 tests/data/expected/lots-of-numbers.txt create mode 100644 tests/data/expected/numbers.txt create mode 100644 tests/data/expected/sintel.txt create mode 100755 tests/test_list_torrents.py diff --git a/tests/data/expected/alice.txt b/tests/data/expected/alice.txt new file mode 100644 index 0000000..02f6c73 --- /dev/null +++ b/tests/data/expected/alice.txt @@ -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 index 0000000..5a7d433 --- /dev/null +++ b/tests/data/expected/bunny.txt @@ -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 index 0000000..fc86126 --- /dev/null +++ b/tests/data/expected/folder.txt @@ -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 index 0000000..b8feddc --- /dev/null +++ b/tests/data/expected/leaves-metadata.txt @@ -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 index 0000000..5d7218f --- /dev/null +++ b/tests/data/expected/leaves.txt @@ -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 index 0000000..7f6d6d8 --- /dev/null +++ b/tests/data/expected/lots-of-numbers.txt @@ -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 index 0000000..c282179 --- /dev/null +++ b/tests/data/expected/numbers.txt @@ -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 index 0000000..f319eaf --- /dev/null +++ b/tests/data/expected/sintel.txt @@ -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 index 0000000..38d9ca8 --- /dev/null +++ b/tests/test_list_torrents.py @@ -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) -- 2.39.5