diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_config.py | 1 | ||||
| -rw-r--r-- | test/test_cookies.py | 48 | ||||
| -rw-r--r-- | test/test_extractor.py | 55 | ||||
| -rw-r--r-- | test/test_results.py | 9 |
4 files changed, 83 insertions, 30 deletions
diff --git a/test/test_config.py b/test/test_config.py index 1d49d77..be58456 100644 --- a/test/test_config.py +++ b/test/test_config.py @@ -168,6 +168,7 @@ class TestConfig(unittest.TestCase): options = ( (("b",) , "c", [1, 2, 3]), (("e", "f"), "g", 234), + (("e", "f"), "g", 234), ) self.assertEqual(config.get(("b",) , "c"), "text") diff --git a/test/test_cookies.py b/test/test_cookies.py index 60c83ff..9ba562c 100644 --- a/test/test_cookies.py +++ b/test/test_cookies.py @@ -153,19 +153,49 @@ class TestCookieUtils(unittest.TestCase): self.assertFalse(extr.cookies_check(("a",))) self.assertFalse(extr.cookies_check(("a", "b"))) - extr.cookies.set("a", "1") - self.assertFalse(extr.cookies_check(("a",))) + extr.cookies.set("nd_a", "1") + self.assertFalse(extr.cookies_check(("nd_a",))) - extr.cookies.set("a", "1", domain=extr.cookies_domain) - self.assertTrue(extr.cookies_check(("a",))) + extr.cookies.set("cd_a", "1", domain=extr.cookies_domain) + self.assertTrue(extr.cookies_check(("cd_a",))) - extr.cookies.set("a", "1", domain="www" + extr.cookies_domain) + extr.cookies.set("wd_a", "1", domain="www" + extr.cookies_domain) + self.assertFalse(extr.cookies_check(("wd_a",))) self.assertEqual(len(extr.cookies), 3) - self.assertTrue(extr.cookies_check(("a",))) - extr.cookies.set("b", "2", domain=extr.cookies_domain) - extr.cookies.set("c", "3", domain=extr.cookies_domain) - self.assertTrue(extr.cookies_check(("a", "b", "c"))) + extr.cookies.set("cd_b", "2", domain=extr.cookies_domain) + extr.cookies.set("cd_c", "3", domain=extr.cookies_domain) + self.assertFalse(extr.cookies_check(("nd_a", "cd_b", "cd_c"))) + self.assertTrue(extr.cookies_check(("cd_a", "cd_b", "cd_c"))) + self.assertFalse(extr.cookies_check(("wd_a", "cd_b", "cd_c"))) + self.assertEqual(len(extr.cookies), 5) + + def test_check_cookies_domain_sub(self): + extr = _get_extractor("test") + self.assertFalse(extr.cookies, "empty") + extr.cookies_domain = ".example.org" + + self.assertFalse(extr.cookies_check(("a",), subdomains=True)) + self.assertFalse(extr.cookies_check(("a", "b"), subdomains=True)) + + extr.cookies.set("nd_a", "1") + self.assertFalse(extr.cookies_check(("nd_a",), subdomains=True)) + + extr.cookies.set("cd_a", "1", domain=extr.cookies_domain) + self.assertTrue(extr.cookies_check(("cd_a",), subdomains=True)) + + extr.cookies.set("wd_a", "1", domain="www" + extr.cookies_domain) + self.assertTrue(extr.cookies_check(("wd_a",), subdomains=True)) + + extr.cookies.set("cd_b", "2", domain=extr.cookies_domain) + extr.cookies.set("cd_c", "3", domain=extr.cookies_domain) + self.assertEqual(len(extr.cookies), 5) + self.assertFalse(extr.cookies_check( + ("nd_a", "cd_b", "cd_c"), subdomains=True)) + self.assertTrue(extr.cookies_check( + ("cd_a", "cd_b", "cd_c"), subdomains=True)) + self.assertTrue(extr.cookies_check( + ("wd_a", "cd_b", "cd_c"), subdomains=True)) def test_check_cookies_expires(self): extr = _get_extractor("test") diff --git a/test/test_extractor.py b/test/test_extractor.py index cc85fb2..dfc5ff8 100644 --- a/test/test_extractor.py +++ b/test/test_extractor.py @@ -104,27 +104,39 @@ class TestExtractorModule(unittest.TestCase): @unittest.skipIf(not results, "no test data") def test_categories(self): for result in results.all(): - url = result["#url"] - cls = result["#class"] - try: - extr = cls.from_url(url) - except ImportError as exc: - if exc.name in ("youtube_dl", "yt_dlp"): - print("Skipping '{}' category checks".format(cls.category)) - continue - raise - self.assertTrue(extr, url) - - categories = result.get("#category") - if categories: - base, cat, sub = categories + if result.get("#fail"): + try: + self.assertCategories(result) + except AssertionError: + pass + else: + self.fail(result["#url"] + ": Test did not fail") else: - cat = cls.category - sub = cls.subcategory - base = cls.basecategory - self.assertEqual(extr.category, cat, url) - self.assertEqual(extr.subcategory, sub, url) - self.assertEqual(extr.basecategory, base, url) + self.assertCategories(result) + + def assertCategories(self, result): + url = result["#url"] + cls = result["#class"] + + try: + extr = cls.from_url(url) + except ImportError as exc: + if exc.name in ("youtube_dl", "yt_dlp"): + print("Skipping '{}' category checks".format(cls.category)) + return + raise + self.assertTrue(extr, url) + + categories = result.get("#category") + if categories: + base, cat, sub = categories + else: + cat = cls.category + sub = cls.subcategory + base = cls.basecategory + self.assertEqual(extr.category, cat, url) + self.assertEqual(extr.subcategory, sub, url) + self.assertEqual(extr.basecategory, base, url) @unittest.skipIf(not results, "no test data") def test_unique_pattern_matches(self): @@ -133,7 +145,8 @@ class TestExtractorModule(unittest.TestCase): append = test_urls.append for result in results.all(): - append((result["#url"], result["#class"])) + if not result.get("#fail"): + append((result["#url"], result["#class"])) # iterate over all testcase URLs for url, extr1 in test_urls: diff --git a/test/test_results.py b/test/test_results.py index 3136743..28db6c3 100644 --- a/test/test_results.py +++ b/test/test_results.py @@ -92,6 +92,15 @@ class TestExtractorResults(unittest.TestCase): self.assertGreaterEqual(value, range.start, msg=msg) def _run_test(self, result): + if result.get("#fail"): + del result["#fail"] + try: + self._run_test(result) + except AssertionError: + return + else: + self.fail("Test did not fail") + base, cat, sub = result_categories(result) result.pop("#comment", None) result.pop("#category", None) |
