aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2021-12-01 14:44:00 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2021-12-01 14:44:00 -0500
commita5aecc343fd2886e7ae09bb3e2afeec38f175755 (patch)
tree06a284b3d73700bd38116423e2480afa516255c2 /test
parentfc8c5e642017e2b4e5299e2093e72b316479690d (diff)
New upstream version 1.19.3.upstream/1.19.3
Diffstat (limited to 'test')
-rw-r--r--test/test_formatter.py11
-rw-r--r--test/test_job.py30
-rw-r--r--test/test_results.py8
-rw-r--r--test/test_util.py68
4 files changed, 116 insertions, 1 deletions
diff --git a/test/test_formatter.py b/test/test_formatter.py
index 088b45b..8464b1b 100644
--- a/test/test_formatter.py
+++ b/test/test_formatter.py
@@ -29,6 +29,7 @@ class TestFormatter(unittest.TestCase):
"u": "&#x27;&lt; / &gt;&#x27;",
"t": 1262304000,
"dt": datetime.datetime(2010, 1, 1),
+ "ds": "2010-01-01T01:00:00+0100",
"name": "Name",
"title1": "Title",
"title2": "",
@@ -162,6 +163,11 @@ class TestFormatter(unittest.TestCase):
self._run_test("{a!l:Rl//}" , "heo word")
self._run_test("{name:Rame/othing/}", "Nothing")
+ def test_datetime(self):
+ self._run_test("{ds:D%Y-%m-%dT%H:%M:%S%z}", "2010-01-01 00:00:00")
+ self._run_test("{ds:D%Y}", "2010-01-01T01:00:00+0100")
+ self._run_test("{l:D%Y}", "None")
+
def test_chain_special(self):
# multiple replacements
self._run_test("{a:Rh/C/RE/e/RL/l/}", "Cello wOrld")
@@ -174,6 +180,9 @@ class TestFormatter(unittest.TestCase):
self._run_test("{d[a]:?</>/L1/too long/}", "<too long>")
self._run_test("{d[c]:?</>/L5/too long/}", "")
+ # parse and format datetime
+ self._run_test("{ds:D%Y-%m-%dT%H:%M:%S%z/%Y%m%d}", "20100101")
+
def test_globals_env(self):
os.environ["FORMATTER_TEST"] = value = self.kwdict["a"]
@@ -259,7 +268,7 @@ def noarg():
sys.path.pop(0)
self.assertEqual(fmt1.format_map(self.kwdict), "'Title' by Name")
- self.assertEqual(fmt2.format_map(self.kwdict), "65")
+ self.assertEqual(fmt2.format_map(self.kwdict), "89")
with self.assertRaises(TypeError):
self.assertEqual(fmt3.format_map(self.kwdict), "")
diff --git a/test/test_job.py b/test/test_job.py
index 1aeec1c..0276555 100644
--- a/test/test_job.py
+++ b/test/test_job.py
@@ -37,6 +37,31 @@ class TestJob(unittest.TestCase):
return buffer.getvalue()
+class TestDownloadJob(TestJob):
+ jobclass = job.DownloadJob
+
+ def test_extractor_filter(self):
+ extr = TestExtractor.from_url("test:")
+ tjob = self.jobclass(extr)
+
+ func = tjob._build_extractor_filter()
+ self.assertEqual(func(TestExtractor) , False)
+ self.assertEqual(func(TestExtractorParent), False)
+ self.assertEqual(func(TestExtractorAlt) , True)
+
+ config.set((), "blacklist", ":test_subcategory")
+ func = tjob._build_extractor_filter()
+ self.assertEqual(func(TestExtractor) , False)
+ self.assertEqual(func(TestExtractorParent), True)
+ self.assertEqual(func(TestExtractorAlt) , False)
+
+ config.set((), "whitelist", "test_category:test_subcategory")
+ func = tjob._build_extractor_filter()
+ self.assertEqual(func(TestExtractor) , True)
+ self.assertEqual(func(TestExtractorParent), False)
+ self.assertEqual(func(TestExtractorAlt) , False)
+
+
class TestKeywordJob(TestJob):
jobclass = job.KeywordJob
@@ -334,5 +359,10 @@ class TestExtractorException(Extractor):
return 1/0
+class TestExtractorAlt(Extractor):
+ category = "test_category_alt"
+ subcategory = "test_subcategory"
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/test/test_results.py b/test/test_results.py
index ba1e0b1..944f14d 100644
--- a/test/test_results.py
+++ b/test/test_results.py
@@ -148,6 +148,14 @@ class TestExtractorResults(unittest.TestCase):
self._test_kwdict(value, test)
elif isinstance(test, type):
self.assertIsInstance(value, test, msg=key)
+ elif isinstance(test, list):
+ subtest = False
+ for idx, item in enumerate(test):
+ if isinstance(item, dict):
+ subtest = True
+ self._test_kwdict(value[idx], item)
+ if not subtest:
+ self.assertEqual(value, test, msg=key)
elif isinstance(test, str):
if test.startswith("re:"):
self.assertRegex(value, test[3:], msg=key)
diff --git a/test/test_util.py b/test/test_util.py
index 0fbbbce..32e9784 100644
--- a/test/test_util.py
+++ b/test/test_util.py
@@ -357,6 +357,58 @@ class TestOther(unittest.TestCase):
with self.assertRaises(exception.StopExtraction):
expr()
+ def test_extractor_filter(self):
+ # empty
+ func = util.build_extractor_filter("")
+ self.assertEqual(func(TestExtractor) , True)
+ self.assertEqual(func(TestExtractorParent), True)
+ self.assertEqual(func(TestExtractorAlt) , True)
+
+ # category
+ func = util.build_extractor_filter("test_category")
+ self.assertEqual(func(TestExtractor) , False)
+ self.assertEqual(func(TestExtractorParent), False)
+ self.assertEqual(func(TestExtractorAlt) , True)
+
+ # subcategory
+ func = util.build_extractor_filter("*:test_subcategory")
+ self.assertEqual(func(TestExtractor) , False)
+ self.assertEqual(func(TestExtractorParent), True)
+ self.assertEqual(func(TestExtractorAlt) , False)
+
+ # basecategory
+ func = util.build_extractor_filter("test_basecategory")
+ self.assertEqual(func(TestExtractor) , False)
+ self.assertEqual(func(TestExtractorParent), False)
+ self.assertEqual(func(TestExtractorAlt) , False)
+
+ # category-subcategory pair
+ func = util.build_extractor_filter("test_category:test_subcategory")
+ self.assertEqual(func(TestExtractor) , False)
+ self.assertEqual(func(TestExtractorParent), True)
+ self.assertEqual(func(TestExtractorAlt) , True)
+
+ # combination
+ func = util.build_extractor_filter(
+ ["test_category", "*:test_subcategory"])
+ self.assertEqual(func(TestExtractor) , False)
+ self.assertEqual(func(TestExtractorParent), False)
+ self.assertEqual(func(TestExtractorAlt) , False)
+
+ # whitelist
+ func = util.build_extractor_filter(
+ "test_category:test_subcategory", negate=False)
+ self.assertEqual(func(TestExtractor) , True)
+ self.assertEqual(func(TestExtractorParent), False)
+ self.assertEqual(func(TestExtractorAlt) , False)
+
+ func = util.build_extractor_filter(
+ ["test_category:test_subcategory", "*:test_subcategory_parent"],
+ negate=False)
+ self.assertEqual(func(TestExtractor) , True)
+ self.assertEqual(func(TestExtractorParent), True)
+ self.assertEqual(func(TestExtractorAlt) , False)
+
def test_generate_token(self):
tokens = set()
for _ in range(100):
@@ -469,5 +521,21 @@ class TestOther(unittest.TestCase):
self.assertIs(obj["key"], obj)
+class TestExtractor():
+ category = "test_category"
+ subcategory = "test_subcategory"
+ basecategory = "test_basecategory"
+
+
+class TestExtractorParent(TestExtractor):
+ category = "test_category"
+ subcategory = "test_subcategory_parent"
+
+
+class TestExtractorAlt(TestExtractor):
+ category = "test_category_alt"
+ subcategory = "test_subcategory"
+
+
if __name__ == '__main__':
unittest.main()