Files
more_dots/tests/test_datetime_utils.py
T
2026-03-24 18:07:22 +08:00

48 lines
1.5 KiB
Python

from datetime import datetime
import pytest
from services.common.datetime_utils import DateTimeGenerator
def test_datetime_generator_supports_10_digit_timestamp():
bundle = DateTimeGenerator.bundle("1710912000")
assert bundle.epoch_seconds == 1710912000
assert bundle.epoch_millis == 1710912000000
def test_datetime_generator_supports_13_digit_timestamp():
bundle = DateTimeGenerator.bundle("1710912000123")
assert bundle.epoch_millis == 1710912000123
def test_datetime_generator_supports_yyyymmdd():
bundle = DateTimeGenerator.bundle("20260320")
assert bundle.yyyymmdd == "20260320"
assert bundle.date_str == "2026-03-20"
def test_datetime_generator_supports_date_and_datetime_formats():
from_date = DateTimeGenerator.bundle("2026-03-20")
from_dt = DateTimeGenerator.bundle("2026-03-20 11:27:53")
assert from_date.date_str == "2026-03-20"
assert from_dt.datetime_str == "2026-03-20 11:27:53"
def test_datetime_generator_supports_iso_and_datetime_objects():
from_iso = DateTimeGenerator.bundle("2026-03-20T11:27:53")
from_obj = DateTimeGenerator.bundle(datetime(2026, 3, 20, 11, 27, 53))
assert from_iso.date_str == "2026-03-20"
assert from_obj.datetime_str == "2026-03-20 11:27:53"
def test_datetime_generator_invalid_value_behaviour():
fallback = DateTimeGenerator.bundle("not-a-date")
assert fallback.epoch_millis > 0
with pytest.raises(ValueError):
DateTimeGenerator.bundle("not-a-date", default_to_now=False)