diff options
| author | 2021-10-05 23:30:05 -0400 | |
|---|---|---|
| committer | 2021-10-05 23:30:05 -0400 | |
| commit | 34ba2951b8c523713425c98addb9256ea05c946f (patch) | |
| tree | 6ec7e96d0c6e6f6e94b6b97ecd8c0a414ceef93d /test/test_util.py | |
| parent | 3f5483df9075ae526f4c54f4cbe80edeabf6d4cc (diff) | |
New upstream version 1.19.0.upstream/1.19.0
Diffstat (limited to 'test/test_util.py')
| -rw-r--r-- | test/test_util.py | 188 |
1 files changed, 11 insertions, 177 deletions
diff --git a/test/test_util.py b/test/test_util.py index 1aa66d1..0fbbbce 100644 --- a/test/test_util.py +++ b/test/test_util.py @@ -260,169 +260,6 @@ class TestCookiesTxt(unittest.TestCase): ) -class TestFormatter(unittest.TestCase): - - kwdict = { - "a": "hElLo wOrLd", - "b": "äöü", - "d": {"a": "foo", "b": 0, "c": None}, - "l": ["a", "b", "c"], - "n": None, - "s": " \n\r\tSPACE ", - "u": "%27%3C%20/%20%3E%27", - "t": 1262304000, - "dt": datetime.datetime(2010, 1, 1), - "name": "Name", - "title1": "Title", - "title2": "", - "title3": None, - "title4": 0, - } - - def test_conversions(self): - self._run_test("{a!l}", "hello world") - self._run_test("{a!u}", "HELLO WORLD") - self._run_test("{a!c}", "Hello world") - self._run_test("{a!C}", "Hello World") - self._run_test("{s!t}", "SPACE") - self._run_test("{a!U}", self.kwdict["a"]) - self._run_test("{u!U}", "'< / >'") - self._run_test("{a!s}", self.kwdict["a"]) - self._run_test("{a!r}", "'" + self.kwdict["a"] + "'") - self._run_test("{a!a}", "'" + self.kwdict["a"] + "'") - self._run_test("{b!a}", "'\\xe4\\xf6\\xfc'") - self._run_test("{a!S}", self.kwdict["a"]) - self._run_test("{l!S}", "a, b, c") - self._run_test("{n!S}", "") - self._run_test("{t!d}", datetime.datetime(2010, 1, 1)) - self._run_test("{t!d:%Y-%m-%d}", "2010-01-01") - self._run_test("{dt!T}", "1262304000") - self._run_test("{l!j}", '["a", "b", "c"]') - - with self.assertRaises(KeyError): - self._run_test("{a!q}", "hello world") - - def test_optional(self): - self._run_test("{name}{title1}", "NameTitle") - self._run_test("{name}{title1:?//}", "NameTitle") - self._run_test("{name}{title1:? **/''/}", "Name **Title''") - - self._run_test("{name}{title2}", "Name") - self._run_test("{name}{title2:?//}", "Name") - self._run_test("{name}{title2:? **/''/}", "Name") - - self._run_test("{name}{title3}", "NameNone") - self._run_test("{name}{title3:?//}", "Name") - self._run_test("{name}{title3:? **/''/}", "Name") - - self._run_test("{name}{title4}", "Name0") - self._run_test("{name}{title4:?//}", "Name") - self._run_test("{name}{title4:? **/''/}", "Name") - - def test_missing(self): - replacement = "None" - - self._run_test("{missing}", replacement) - self._run_test("{missing.attr}", replacement) - self._run_test("{missing[key]}", replacement) - self._run_test("{missing:?a//}", "") - - self._run_test("{name[missing]}", replacement) - self._run_test("{name[missing].attr}", replacement) - self._run_test("{name[missing][key]}", replacement) - self._run_test("{name[missing]:?a//}", "") - - def test_missing_custom_default(self): - replacement = default = "foobar" - self._run_test("{missing}" , replacement, default) - self._run_test("{missing.attr}", replacement, default) - self._run_test("{missing[key]}", replacement, default) - self._run_test("{missing:?a//}", "a" + default, default) - - def test_alternative(self): - self._run_test("{a|z}" , "hElLo wOrLd") - self._run_test("{z|a}" , "hElLo wOrLd") - self._run_test("{z|y|a}" , "hElLo wOrLd") - self._run_test("{z|y|x|a}", "hElLo wOrLd") - self._run_test("{z|n|a|y}", "hElLo wOrLd") - - self._run_test("{z|a!C}" , "Hello World") - self._run_test("{z|a:Rh/C/}" , "CElLo wOrLd") - self._run_test("{z|a!C:RH/C/}", "Cello World") - self._run_test("{z|y|x:?</>/}", "") - - self._run_test("{d[c]|d[b]|d[a]}", "foo") - self._run_test("{d[a]|d[b]|d[c]}", "foo") - self._run_test("{d[z]|d[y]|d[x]}", "None") - - def test_indexing(self): - self._run_test("{l[0]}" , "a") - self._run_test("{a[6]}" , "w") - - def test_slicing(self): - v = self.kwdict["a"] - self._run_test("{a[1:10]}" , v[1:10]) - self._run_test("{a[-10:-1]}", v[-10:-1]) - self._run_test("{a[5:]}" , v[5:]) - self._run_test("{a[50:]}", v[50:]) - self._run_test("{a[:5]}" , v[:5]) - self._run_test("{a[:50]}", v[:50]) - self._run_test("{a[:]}" , v) - self._run_test("{a[1:10:2]}" , v[1:10:2]) - self._run_test("{a[-10:-1:2]}", v[-10:-1:2]) - self._run_test("{a[5::2]}" , v[5::2]) - self._run_test("{a[50::2]}", v[50::2]) - self._run_test("{a[:5:2]}" , v[:5:2]) - self._run_test("{a[:50:2]}", v[:50:2]) - self._run_test("{a[::]}" , v) - - def test_maxlen(self): - v = self.kwdict["a"] - self._run_test("{a:L5/foo/}" , "foo") - self._run_test("{a:L50/foo/}", v) - self._run_test("{a:L50/foo/>50}", " " * 39 + v) - self._run_test("{a:L50/foo/>51}", "foo") - self._run_test("{a:Lab/foo/}", "foo") - - def test_join(self): - self._run_test("{l:J}" , "abc") - self._run_test("{l:J,}" , "a,b,c") - self._run_test("{l:J,/}" , "a,b,c") - self._run_test("{l:J,/>20}" , " a,b,c") - self._run_test("{l:J - }" , "a - b - c") - self._run_test("{l:J - /}" , "a - b - c") - self._run_test("{l:J - />20}", " a - b - c") - - self._run_test("{a:J/}" , self.kwdict["a"]) - self._run_test("{a:J, /}" , ", ".join(self.kwdict["a"])) - - def test_replace(self): - self._run_test("{a:Rh/C/}" , "CElLo wOrLd") - self._run_test("{a!l:Rh/C/}", "Cello world") - self._run_test("{a!u:Rh/C/}", "HELLO WORLD") - - self._run_test("{a!l:Rl/_/}", "he__o wor_d") - self._run_test("{a!l:Rl//}" , "heo word") - self._run_test("{name:Rame/othing/}", "Nothing") - - def test_chain_special(self): - # multiple replacements - self._run_test("{a:Rh/C/RE/e/RL/l/}", "Cello wOrld") - self._run_test("{d[b]!s:R1/Q/R2/A/R0/Y/}", "Y") - - # join-and-replace - self._run_test("{l:J-/Rb/E/}", "a-E-c") - - # optional-and-maxlen - self._run_test("{d[a]:?</>/L1/too long/}", "<too long>") - self._run_test("{d[c]:?</>/L5/too long/}", "") - - def _run_test(self, format_string, result, default=None): - formatter = util.Formatter(format_string, default) - output = formatter.format_map(self.kwdict) - self.assertEqual(output, result, format_string) - - class TestOther(unittest.TestCase): def test_bencode(self): @@ -534,20 +371,17 @@ class TestOther(unittest.TestCase): self.assertRegex(token, r"^[0-9a-f]+$") def test_format_value(self): - self.assertEqual(util.format_value(0) , "0B") - self.assertEqual(util.format_value(1) , "1B") - self.assertEqual(util.format_value(12) , "12B") - self.assertEqual(util.format_value(123) , "123B") - self.assertEqual(util.format_value(1234) , "1.23kB") - self.assertEqual(util.format_value(12345) , "12.34kB") - self.assertEqual(util.format_value(123456) , "123.45kB") - self.assertEqual(util.format_value(1234567) , "1.23MB") - self.assertEqual(util.format_value(12345678) , "12.34MB") - self.assertEqual(util.format_value(123456789) , "123.45MB") - self.assertEqual(util.format_value(1234567890), "1.23GB") - - self.assertEqual(util.format_value(123 , "B/s"), "123B/s") - self.assertEqual(util.format_value(123456, "B/s"), "123.45kB/s") + self.assertEqual(util.format_value(0) , "0") + self.assertEqual(util.format_value(1) , "1") + self.assertEqual(util.format_value(12) , "12") + self.assertEqual(util.format_value(123) , "123") + self.assertEqual(util.format_value(1234) , "1.23k") + self.assertEqual(util.format_value(12345) , "12.34k") + self.assertEqual(util.format_value(123456) , "123.45k") + self.assertEqual(util.format_value(1234567) , "1.23M") + self.assertEqual(util.format_value(12345678) , "12.34M") + self.assertEqual(util.format_value(123456789) , "123.45M") + self.assertEqual(util.format_value(1234567890), "1.23G") def test_combine_dict(self): self.assertEqual( |
