From 1f6580c4c8e3e3e2b334e2bd3bee54aa3c8ba753 Mon Sep 17 00:00:00 2001
From: "Antoine R. Dumont (@ardumont)" <ardumont@softwareheritage.org>
Date: Tue, 23 Nov 2021 10:58:14 +0100
Subject: [PATCH] cvs.tasks: Fix type

This fixes build [1]

[1] https://jenkins.softwareheritage.org/view/swh-draft/job/DLDSVN/job/tests/1304/console
---
 swh/loader/cvs/tasks.py            |  3 +++
 swh/loader/cvs/tests/test_tasks.py | 25 +++++++++++++++++++++++++
 2 files changed, 28 insertions(+)
 create mode 100644 swh/loader/cvs/tests/test_tasks.py

diff --git a/swh/loader/cvs/tasks.py b/swh/loader/cvs/tasks.py
index bd0bfc8..63867dc 100644
--- a/swh/loader/cvs/tasks.py
+++ b/swh/loader/cvs/tasks.py
@@ -13,7 +13,10 @@ from .loader import CvsLoader
 
 
 def convert_to_datetime(date: Optional[str]) -> Optional[datetime]:
+    if date is None:
+        return None
     try:
+        assert isinstance(date, str)
         return iso8601.parse_date(date)
     except Exception:
         return None
diff --git a/swh/loader/cvs/tests/test_tasks.py b/swh/loader/cvs/tests/test_tasks.py
new file mode 100644
index 0000000..332c43e
--- /dev/null
+++ b/swh/loader/cvs/tests/test_tasks.py
@@ -0,0 +1,25 @@
+# Copyright (C) 2019-2021  The Software Heritage developers
+# See the AUTHORS file at the top-level directory of this distribution
+# License: GNU General Public License version 3, or any later version
+# See top-level LICENSE file for more information
+
+from datetime import datetime, timezone
+
+import pytest
+
+from swh.loader.cvs.tasks import convert_to_datetime
+
+
+@pytest.mark.parametrize(
+    "date,expected_result",
+    [
+        (None, None),
+        (
+            "2021-11-23 09:41:02.434195+00:00",
+            datetime(2021, 11, 23, 9, 41, 2, 434195, tzinfo=timezone.utc),
+        ),
+        ("23112021", None,),  # failure to parse
+    ],
+)
+def test_convert_to_datetime(date, expected_result):
+    assert convert_to_datetime(date) == expected_result
-- 
GitLab