diff options
Diffstat (limited to 'test/test_extractor.py')
| -rw-r--r-- | test/test_extractor.py | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/test/test_extractor.py b/test/test_extractor.py index d2dd643..75a0b87 100644 --- a/test/test_extractor.py +++ b/test/test_extractor.py @@ -24,6 +24,11 @@ from gallery_dl.extractor.directlink import DirectlinkExtractor # noqa E402 _list_classes = extractor._list_classes +try: + from test import results +except ImportError: + results = None + class FakeExtractor(Extractor): category = "fake" @@ -92,17 +97,29 @@ class TestExtractorModule(unittest.TestCase): with self.assertRaises(TypeError): FakeExtractor.from_url(invalid) - def test_unique_pattern_matches(self): - try: - import test.results - except ImportError: - raise unittest.SkipTest("no test data") + @unittest.skipIf(not results, "no test data") + def test_categories(self): + for result in results.all(): + url = result["#url"] + base, cat, sub = result["#category"] + try: + extr = result["#class"].from_url(url) + except ImportError as exc: + if exc.name in ("youtube_dl", "yt_dlp"): + print("Skipping '{}' category checks".format(cat)) + continue + raise + 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): # collect testcase URLs test_urls = [] append = test_urls.append - for result in test.results.all(): + for result in results.all(): append((result["#url"], result["#class"])) # iterate over all testcase URLs |
