Changeset View
Changeset View
Standalone View
Standalone View
swh/graphql/tests/unit/resolvers/test_scalars.py
- This file was added.
# Copyright (C) 2022 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 | |||||
import datetime | |||||
from swh.graphql.resolvers import scalars | |||||
from swh.model.model import Timestamp, TimestampWithTimezone | |||||
def test_serialize_datetime_from_datetime(): | |||||
dt = datetime.datetime(2010, 1, 15, 2, 12, 10, 2, datetime.timezone.utc) | |||||
assert scalars.serialize_datetime(dt) == "2010-01-15T02:12:10.000002+00:00" | |||||
def test_serialize_datetime_from_timestamp(): | |||||
timestamp = Timestamp(seconds=-25444, microseconds=322322) | |||||
dt = TimestampWithTimezone.from_numeric_offset( | |||||
timestamp, offset=-264, negative_utc=True | |||||
) | |||||
assert scalars.serialize_datetime(dt) == "1969-12-31T12:31:56.322322-04:24" | |||||
def test_serialize_datetime_from_too_big_timestamp(): | |||||
# date is too large for the python datetime | |||||
timestamp = Timestamp(seconds=254443232223, microseconds=3) | |||||
dt = TimestampWithTimezone.from_numeric_offset( | |||||
timestamp, offset=-264, negative_utc=True | |||||
) | |||||
assert scalars.serialize_datetime(dt) is None | |||||
def test_serialize_datetime_invalid_input(): | |||||
assert scalars.serialize_datetime("test") is None |