def test_get_max_partition_from_valid_part_specs_and_none_partition_key(self):
     with self.assertRaises(AirflowException):
         HiveMetastoreHook._get_max_partition_from_part_specs(
             [{'key1': 'value1', 'key2': 'value2'}, {'key1': 'value3', 'key2': 'value4'}],
             None,
             self.VALID_FILTER_MAP,
         )
 def test_get_max_partition_from_valid_part_specs_and_invalid_filter_map(self):
     with self.assertRaises(AirflowException):
         HiveMetastoreHook._get_max_partition_from_part_specs(
             [{'key1': 'value1', 'key2': 'value2'}, {'key1': 'value3', 'key2': 'value4'}],
             'key1',
             {'key3': 'value5'},
         )
 def test_get_max_partition_from_valid_part_specs_return_type(self):
     max_partition = HiveMetastoreHook._get_max_partition_from_part_specs(
         [{'key1': 'value1', 'key2': 'value2'}, {'key1': 'value3', 'key2': 'value4'}],
         'key1',
         self.VALID_FILTER_MAP,
     )
     self.assertIsInstance(max_partition, str)
 def test_get_max_partition_from_valid_part_specs(self):
     max_partition = HiveMetastoreHook._get_max_partition_from_part_specs(
         [{'key1': 'value1', 'key2': 'value2'}, {'key1': 'value3', 'key2': 'value4'}],
         'key1',
         self.VALID_FILTER_MAP,
     )
     self.assertEqual(max_partition, 'value1')
    def test_get_max_partition_from_valid_part_specs_and_none_filter_map(self):
        max_partition = HiveMetastoreHook._get_max_partition_from_part_specs(
            [{'key1': 'value1', 'key2': 'value2'}, {'key1': 'value3', 'key2': 'value4'}], 'key1', None
        )

        # No partition will be filtered out.
        self.assertEqual(max_partition, 'value3')
 def test_get_max_partition_from_empty_part_specs(self):
     max_partition = HiveMetastoreHook._get_max_partition_from_part_specs(
         [], 'key1', self.VALID_FILTER_MAP
     )
     self.assertIsNone(max_partition)