[tests:results] implement general tests for list items
This commit is contained in:
@@ -37,14 +37,17 @@ __tests__ = (
|
||||
|
||||
{
|
||||
"#url" : "https://aibooru.online/posts/18315",
|
||||
"#comment" : "ugoira ()",
|
||||
"#comment" : "ugoira (#7630)",
|
||||
"#category": ("Danbooru", "aibooru", "post"),
|
||||
"#class" : danbooru.DanbooruPostExtractor,
|
||||
"#options" : {"ugoira": True},
|
||||
"#urls" : "https://cdn.aibooru.download/original/f9/6b/f96b2b3254884ab527fab0a7e9c39ba9.zip",
|
||||
|
||||
"_ugoira_frame_data": "len:list:60",
|
||||
"_ugoira_original" : False,
|
||||
"_ugoira_original" : False,
|
||||
"_ugoira_frame_data[*]": {
|
||||
"file" : r"re:^0000\d\d\.jpg$",
|
||||
"delay": int,
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
|
||||
@@ -301,12 +301,29 @@ __tests__ = (
|
||||
"uploader_id": 67005,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://danbooru.donmai.us/posts/3613024",
|
||||
"#category": ("Danbooru", "danbooru", "post"),
|
||||
"#class" : danbooru.DanbooruPostExtractor,
|
||||
"#options" : {"ugoira": False},
|
||||
"#urls" : "https://cdn.donmai.us/sample/5e/e5/sample-5ee54a2d95ed36376ec1d8f6ddbdece9.webm",
|
||||
|
||||
"!_ugoira_original" : ...,
|
||||
"!_ugoira_frame_data": ...,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://danbooru.donmai.us/posts/3613024",
|
||||
"#category": ("Danbooru", "danbooru", "post"),
|
||||
"#class" : danbooru.DanbooruPostExtractor,
|
||||
"#options" : {"ugoira": True},
|
||||
"#pattern" : r"https?://.+\.zip$",
|
||||
"#urls" : "https://cdn.donmai.us/original/5e/e5/5ee54a2d95ed36376ec1d8f6ddbdece9.zip",
|
||||
|
||||
"_ugoira_original" : False,
|
||||
"_ugoira_frame_data[*]": {
|
||||
"file" : r"re:^0000\d\d\.jpg$",
|
||||
"delay": int,
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
|
||||
@@ -241,6 +241,12 @@ class TestExtractorResults(unittest.TestCase):
|
||||
if key not in kwdict:
|
||||
continue
|
||||
|
||||
if key.endswith("[*]"):
|
||||
key = key[:-3]
|
||||
subtest = True
|
||||
else:
|
||||
subtest = False
|
||||
|
||||
path = "{}.{}".format(parent, key) if parent else key
|
||||
|
||||
if key.startswith("!"):
|
||||
@@ -248,7 +254,15 @@ class TestExtractorResults(unittest.TestCase):
|
||||
continue
|
||||
|
||||
self.assertIn(key, kwdict, msg=path)
|
||||
self._test_kwdict_value(kwdict[key], test, path)
|
||||
value = kwdict[key]
|
||||
|
||||
if subtest:
|
||||
self.assertNotIsInstance(value, str, msg=path)
|
||||
for idx, item in enumerate(value):
|
||||
subpath = "{}[{}]".format(path, idx)
|
||||
self._test_kwdict_value(item, test, subpath)
|
||||
else:
|
||||
self._test_kwdict_value(value, test, path)
|
||||
|
||||
def _test_kwdict_value(self, value, test, path):
|
||||
if isinstance(test, dict):
|
||||
|
||||
Reference in New Issue
Block a user