Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

78 lines
2.3 KiB
Python
Raw Normal View History

from datetime import datetime, timedelta, timezone
import pytest
from metadata.generated.schema.type.basic import Timestamp
from metadata.utils.time_utils import timedelta_to_string, timestamp_to_datetime
@pytest.mark.parametrize(
"parameter,expected",
[
(
timedelta(days=1, hours=1, minutes=1, seconds=1),
"1 day 1 hour 1 minute 1 second",
),
(timedelta(days=1), "1 day"),
(
timedelta(seconds=0),
"0 seconds",
),
(timedelta(days=1), "1 day"),
(timedelta(hours=1000000.123456), "41666 days 16 hours 7 minutes 24 seconds"),
],
)
def test_timedelta_to_string(parameter, expected):
assert timedelta_to_string(parameter).startswith(expected)
@pytest.mark.parametrize(
"timestamp, expected_datetime",
[
(
Timestamp(root=1638316800000),
datetime(2021, 12, 1, 0, 0, tzinfo=timezone.utc),
),
(
Timestamp(root=1609459200000),
datetime(2021, 1, 1, 0, 0, tzinfo=timezone.utc),
),
(Timestamp(root=0), datetime(1970, 1, 1, 0, 0, tzinfo=timezone.utc)),
],
)
def test_timestamp_to_datetime(timestamp, expected_datetime):
assert timestamp_to_datetime(timestamp) == expected_datetime
from datetime import datetime, timedelta, timezone
import pytest
from metadata.utils.time_utils import datetime_to_timestamp
@pytest.mark.parametrize(
"datetime_value, milliseconds, expected_timestamp",
[
# Naive datetime (assumed to be in UTC)
(datetime(2021, 12, 1, 0, 0, 0), False, 1638316800),
(datetime(2021, 12, 1, 0, 0, 0), True, 1638316800000),
# Timezone-aware datetime (UTC)
(datetime(2021, 12, 1, 0, 0, 0, tzinfo=timezone.utc), False, 1638316800),
(datetime(2021, 12, 1, 0, 0, 0, tzinfo=timezone.utc), True, 1638316800000),
# Timezone-aware datetime (non-UTC)
(
datetime(2021, 12, 1, 0, 0, 0, tzinfo=timezone(timedelta(hours=1))),
False,
1638313200,
),
(
datetime(2021, 12, 1, 0, 0, 0, tzinfo=timezone(timedelta(hours=1))),
True,
1638313200000,
),
],
)
def test_datetime_to_timestamp(datetime_value, milliseconds, expected_timestamp):
assert datetime_to_timestamp(datetime_value, milliseconds) == expected_timestamp