def test_get_upstream_partitions_for_partition_range_monthly_downstream_daily_upstream(): downstream_partitions_def = MonthlyPartitionsDefinition(start_date="2021-05-01") upstream_partitions_def = DailyPartitionsDefinition(start_date="2021-05-01") result = TimeWindowPartitionMapping().get_upstream_partitions_for_partition_range( PartitionKeyRange("2021-05-01", "2021-07-01"), downstream_partitions_def, upstream_partitions_def, ) assert result == PartitionKeyRange("2021-05-01", "2021-07-31")
def test_get_upstream_partitions_for_partition_range_same_partitioning_different_formats(): downstream_partitions_def = DailyPartitionsDefinition(start_date="2021-05-05") upstream_partitions_def = DailyPartitionsDefinition(start_date="2021/05/05", fmt="%Y/%m/%d") result = TimeWindowPartitionMapping().get_upstream_partitions_for_partition_range( PartitionKeyRange("2021-05-07", "2021-05-09"), downstream_partitions_def, upstream_partitions_def, ) assert result == PartitionKeyRange("2021/05/07", "2021/05/09")
def test_get_upstream_partitions_for_partition_range_daily_downstream_hourly_upstream(): downstream_partitions_def = DailyPartitionsDefinition(start_date="2021-05-05") upstream_partitions_def = HourlyPartitionsDefinition(start_date="2021-05-05-00:00") result = TimeWindowPartitionMapping().get_upstream_partitions_for_partition_range( PartitionKeyRange("2021-05-07", "2021-05-07"), downstream_partitions_def, upstream_partitions_def, ) assert result == PartitionKeyRange("2021-05-07-00:00", "2021-05-07-23:00") result = TimeWindowPartitionMapping().get_upstream_partitions_for_partition_range( PartitionKeyRange("2021-05-07", "2021-05-09"), downstream_partitions_def, upstream_partitions_def, ) assert result == PartitionKeyRange("2021-05-07-00:00", "2021-05-09-23:00")
def test_get_upstream_partitions_for_partition_range_same_partitioning(): downstream_partitions_def = DailyPartitionsDefinition(start_date="2021-05-05") upstream_partitions_def = DailyPartitionsDefinition(start_date="2021-05-05") # single partition key partition_key_range = PartitionKeyRange("2021-05-07", "2021-05-07") result = TimeWindowPartitionMapping().get_upstream_partitions_for_partition_range( partition_key_range, downstream_partitions_def, upstream_partitions_def, ) assert partition_key_range == result # range of partition keys partition_key_range = PartitionKeyRange("2021-05-07", "2021-05-09") result = TimeWindowPartitionMapping().get_upstream_partitions_for_partition_range( partition_key_range, downstream_partitions_def, upstream_partitions_def, ) assert partition_key_range == result