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