diff --git a/test/results/kemono.py b/test/results/kemono.py index 252badc9..3a09b2b5 100644 --- a/test/results/kemono.py +++ b/test/results/kemono.py @@ -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": [ "うごイラ", diff --git a/test/test_results.py b/test/test_results.py index aa06c7c6..05b98bff 100644 --- a/test/test_results.py +++ b/test/test_results.py @@ -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: