2022-04-26 23:54:19 +09:00
|
|
|
import datetime
|
|
|
|
|
2022-12-29 22:19:05 +01:00
|
|
|
from datahub.ingestion.source.bigquery_v2.profiler import BigqueryProfiler
|
2022-04-26 23:54:19 +09:00
|
|
|
|
|
|
|
|
|
|
|
def test_get_partition_range_from_partition_id():
|
|
|
|
# yearly partition check
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id(
|
2022-04-26 23:54:19 +09:00
|
|
|
"2022", datetime.datetime(2022, 1, 1)
|
|
|
|
) == (datetime.datetime(2022, 1, 1), datetime.datetime(2023, 1, 1))
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id(
|
2022-04-26 23:54:19 +09:00
|
|
|
"2022", datetime.datetime(2022, 3, 12)
|
|
|
|
) == (datetime.datetime(2022, 1, 1), datetime.datetime(2023, 1, 1))
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id(
|
2022-04-26 23:54:19 +09:00
|
|
|
"2022", datetime.datetime(2021, 5, 2)
|
|
|
|
) == (datetime.datetime(2021, 1, 1), datetime.datetime(2022, 1, 1))
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id("2022", None) == (
|
2022-04-26 23:54:19 +09:00
|
|
|
datetime.datetime(2022, 1, 1),
|
|
|
|
datetime.datetime(2023, 1, 1),
|
|
|
|
)
|
|
|
|
# monthly partition check
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id(
|
2022-04-26 23:54:19 +09:00
|
|
|
"202202", datetime.datetime(2022, 2, 1)
|
|
|
|
) == (datetime.datetime(2022, 2, 1), datetime.datetime(2022, 3, 1))
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id(
|
2022-04-26 23:54:19 +09:00
|
|
|
"202202", datetime.datetime(2022, 2, 3)
|
|
|
|
) == (datetime.datetime(2022, 2, 1), datetime.datetime(2022, 3, 1))
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id(
|
2022-04-26 23:54:19 +09:00
|
|
|
"202202", datetime.datetime(2021, 12, 13)
|
|
|
|
) == (datetime.datetime(2021, 12, 1), datetime.datetime(2022, 1, 1))
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id("202202", None) == (
|
2022-04-26 23:54:19 +09:00
|
|
|
datetime.datetime(2022, 2, 1),
|
|
|
|
datetime.datetime(2022, 3, 1),
|
|
|
|
)
|
|
|
|
# daily partition check
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id(
|
2022-04-26 23:54:19 +09:00
|
|
|
"20220205", datetime.datetime(2022, 2, 5)
|
|
|
|
) == (datetime.datetime(2022, 2, 5), datetime.datetime(2022, 2, 6))
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id(
|
2022-04-26 23:54:19 +09:00
|
|
|
"20220205", datetime.datetime(2022, 2, 3)
|
|
|
|
) == (datetime.datetime(2022, 2, 3), datetime.datetime(2022, 2, 4))
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id("20220205", None) == (
|
2022-04-26 23:54:19 +09:00
|
|
|
datetime.datetime(2022, 2, 5),
|
|
|
|
datetime.datetime(2022, 2, 6),
|
|
|
|
)
|
|
|
|
# hourly partition check
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id(
|
2022-04-26 23:54:19 +09:00
|
|
|
"2022020509", datetime.datetime(2022, 2, 5, 9)
|
|
|
|
) == (datetime.datetime(2022, 2, 5, 9), datetime.datetime(2022, 2, 5, 10))
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id(
|
2022-04-26 23:54:19 +09:00
|
|
|
"2022020509", datetime.datetime(2022, 2, 3, 1)
|
|
|
|
) == (datetime.datetime(2022, 2, 3, 1), datetime.datetime(2022, 2, 3, 2))
|
2022-12-29 22:19:05 +01:00
|
|
|
assert BigqueryProfiler.get_partition_range_from_partition_id(
|
|
|
|
"2022020509", None
|
|
|
|
) == (
|
2022-04-26 23:54:19 +09:00
|
|
|
datetime.datetime(2022, 2, 5, 9),
|
|
|
|
datetime.datetime(2022, 2, 5, 10),
|
|
|
|
)
|