[tests/results] support 'iso:…' tests

This commit is contained in:
Mike Fährmann
2025-08-14 11:53:00 +02:00
parent b9429de774
commit ca3331d19f
2 changed files with 26 additions and 10 deletions

View File

@@ -86,26 +86,27 @@ __tests__ = (
"#options" : {"max-posts": 100, "endpoint": "posts"},
"#count" : range(200, 400),
"added" : {str, None},
"archives" : [],
"attachments": list,
"captions" : None,
"content" : str,
"count" : int,
"num" : int,
"date" : "type:datetime",
"edited" : {str, None},
"embed" : dict,
"id" : str,
"poll" : None,
"date" : "type:datetime",
"published" : str,
"service" : "patreon",
"shared_file": False,
"subcategory": "patreon",
"tags" : {str, None},
"title" : str,
"user" : "881792",
"username" : "diives",
"!added" : {str, None},
"!captions" : None,
"!content" : str,
"!edited" : {str, None},
"!embed" : dict,
"!poll" : None,
"!shared_file": False,
"!tags" : {str, None},
},
{
@@ -483,7 +484,7 @@ __tests__ = (
"public_id": "soso",
"relation_id": None,
"service": "fanbox",
"updated": "2025-03-29T05:44:56.747243",
"updated": "iso:datetime",
},
"tags": [
"うごイラ",

View File

@@ -348,6 +348,21 @@ class TestExtractorResults(unittest.TestCase):
for _ in value:
len_value += 1
self.assertEqual(int(length), len_value, msg=path)
elif test.startswith("iso:"):
iso = test[4:]
if iso in ("dt", "datetime", "8601"):
msg = f"{path} / ISO 8601"
try:
dt = datetime.datetime.fromisoformat(value)
except Exception as exc:
self.fail(f"Invalid datetime '{value}': {exc} {msg}")
self.assertIsInstance(dt, datetime.datetime, msg=msg)
elif iso in ("lang", "639", "639-1"):
msg = f"{path} / ISO 639-1"
self.assertIsInstance(value, str, msg=msg)
self.assertRegex(value, r"^[a-z]{2}(-\w+)?$", msg=msg)
else:
self.fail(f"Unsupported ISO test '{test}'")
else:
self.assertEqual(test, value, msg=path)
else: