summaryrefslogtreecommitdiffstats
path: root/deluge/tests/test_common.py
diff options
context:
space:
mode:
Diffstat (limited to 'deluge/tests/test_common.py')
-rw-r--r--deluge/tests/test_common.py36
1 files changed, 26 insertions, 10 deletions
diff --git a/deluge/tests/test_common.py b/deluge/tests/test_common.py
index e5027ebca..a1af6cce9 100644
--- a/deluge/tests/test_common.py
+++ b/deluge/tests/test_common.py
@@ -7,6 +7,7 @@
import os
import sys
import tarfile
+from urllib.parse import quote_plus
import pytest
@@ -19,6 +20,7 @@ from deluge.common import (
fsize,
fspeed,
ftime,
+ get_magnet_info,
get_path_size,
is_infohash,
is_interface,
@@ -28,6 +30,7 @@ from deluge.common import (
is_ipv6,
is_magnet,
is_url,
+ parse_human_size,
windows_check,
)
@@ -148,26 +151,26 @@ class TestCommon:
assert VersionSplit('1.4.0.dev1') < VersionSplit('1.4.0')
assert VersionSplit('1.4.0a1') < VersionSplit('1.4.0')
- def test_parse_human_size(self):
- from deluge.common import parse_human_size
-
- sizes = [
+ @pytest.mark.parametrize(
+ ('human_size', 'expected'),
+ [
('1', 1),
('10 bytes', 10),
('2048 bytes', 2048),
('1MiB', 2 ** (10 * 2)),
('1 MiB', 2 ** (10 * 2)),
('1 GiB', 2 ** (10 * 3)),
- ('1 GiB', 2 ** (10 * 3)),
+ ('1 TiB', 2 ** (10 * 4)),
('1M', 10**6),
+ ('1p', 10**15),
('1MB', 10**6),
('1 GB', 10**9),
('1 TB', 10**12),
- ]
-
- for human_size, byte_size in sizes:
- parsed = parse_human_size(human_size)
- assert parsed == byte_size, 'Mismatch when converting: %s' % human_size
+ ],
+ )
+ def test_parse_human_size(self, human_size, expected):
+ parsed = parse_human_size(human_size)
+ assert parsed == expected, 'Mismatch when converting: %s' % human_size
def test_archive_files(self):
arc_filelist = [
@@ -209,3 +212,16 @@ class TestCommon:
if tar_info.name == 'archive_message.txt':
result = tar.extractfile(tar_info).read().decode()
assert result == 'test'
+
+ def test_get_magnet_info_tiers(self):
+ tracker1 = 'udp://tracker1.example.com'
+ tracker2 = 'udp://tracker2.example.com'
+ magnet = (
+ 'magnet:?xt=urn:btih:SU5225URMTUEQLDXQWRB2EQWN6KLTYKN'
+ f'&tr.1={quote_plus(tracker1)}'
+ f'&tr.2={quote_plus(tracker2)}'
+ )
+ result = get_magnet_info(magnet)
+ assert result['info_hash'] == '953bad769164e8482c7785a21d12166f94b9e14d'
+ assert result['trackers'][tracker1] == 1
+ assert result['trackers'][tracker2] == 2