Initial import NDC_1C
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime, timezone
|
||||
|
||||
from canonical_layer.period_snapshot import (
|
||||
normalize_dt,
|
||||
parse_dt,
|
||||
parse_record_datetime,
|
||||
window_bounds_from_key,
|
||||
window_key,
|
||||
)
|
||||
|
||||
|
||||
def test_parse_dt_odata_and_iso() -> None:
|
||||
from_odata = parse_dt("/Date(1583020800000)/")
|
||||
assert from_odata is not None
|
||||
assert from_odata.year == 2020
|
||||
assert from_odata.month == 3
|
||||
assert from_odata.day == 1
|
||||
|
||||
from_iso = parse_dt("2020-03-01T00:00:00Z")
|
||||
assert from_iso is not None
|
||||
assert from_iso.tzinfo is not None
|
||||
assert normalize_dt(from_iso).year == 2020
|
||||
|
||||
|
||||
def test_window_key_and_bounds_month() -> None:
|
||||
dt = datetime(2020, 11, 15, 12, 0, 0, tzinfo=timezone.utc)
|
||||
key = window_key(dt, granularity="month")
|
||||
assert key == "2020-11"
|
||||
|
||||
start, end = window_bounds_from_key(key, granularity="month")
|
||||
assert start.isoformat() == "2020-11-01T00:00:00+00:00"
|
||||
assert end.isoformat() == "2020-12-01T00:00:00+00:00"
|
||||
|
||||
|
||||
def test_window_key_and_bounds_week() -> None:
|
||||
dt = datetime(2020, 12, 30, 7, 0, 0, tzinfo=timezone.utc)
|
||||
key = window_key(dt, granularity="week")
|
||||
assert key.startswith("2020-W")
|
||||
|
||||
start, end = window_bounds_from_key(key, granularity="week")
|
||||
assert end > start
|
||||
|
||||
|
||||
def test_parse_record_datetime_finds_common_fields() -> None:
|
||||
row = {"Date": "2020-05-20T10:00:00Z"}
|
||||
dt = parse_record_datetime(row)
|
||||
assert dt is not None
|
||||
assert dt.year == 2020
|
||||
assert dt.month == 5
|
||||
Reference in New Issue
Block a user