Пример #1
0
 def test_tag_keys_dynamic_field_validation_failure(self):
     """Test that invalid tag keys are not valid fields."""
     tag_keys = ["valid_tag"]
     query_params = {"bad_tag": "value"}
     serializer = FilterSerializer(data=query_params, tag_keys=tag_keys)
     with self.assertRaises(serializers.ValidationError):
         serializer.is_valid(raise_exception=True)
Пример #2
0
 def test_filter_params_invalid_time_scope_monthly(self):
     """Test parse of filter params for invalid month time_scope_units."""
     filter_params = {
         'resolution': 'monthly',
         'time_scope_value': '-10',
         'time_scope_units': 'month'
     }
     serializer = FilterSerializer(data=filter_params)
     with self.assertRaises(serializers.ValidationError):
         serializer.is_valid(raise_exception=True)
Пример #3
0
 def test_parse_filter_params_success(self):
     """Test parse of a filter param successfully."""
     filter_params = {
         'resolution': 'daily',
         'time_scope_value': '-10',
         'time_scope_units': 'day',
         'resource_scope': []
     }
     serializer = FilterSerializer(data=filter_params)
     self.assertTrue(serializer.is_valid())
Пример #4
0
 def test_parse_filter_params_success(self):
     """Test parse of a filter param successfully."""
     filter_params = {
         "resolution": "daily",
         "time_scope_value": "-10",
         "time_scope_units": "day",
         "resource_scope": [],
     }
     serializer = FilterSerializer(data=filter_params)
     self.assertTrue(serializer.is_valid())
Пример #5
0
 def test_filter_params_invalid_time_scope_monthly(self):
     """Test parse of filter params for invalid month time_scope_units."""
     filter_params = {
         "resolution": "monthly",
         "time_scope_value": "-10",
         "time_scope_units": "month"
     }
     serializer = FilterSerializer(data=filter_params)
     with self.assertRaises(serializers.ValidationError):
         serializer.is_valid(raise_exception=True)
Пример #6
0
 def test_filter_params_with_and_string_success(self):
     """Test that the and: prefix is allowed with a string of items."""
     filter_params = {
         "resolution": "daily",
         "time_scope_value": "-10",
         "time_scope_units": "day",
         "and:product_family": "fam1,fam2",
         "resource_scope": [],
     }
     serializer = FilterSerializer(data=filter_params)
     self.assertTrue(serializer.is_valid())
Пример #7
0
 def test_filter_params_with_or_list_success_multi_item(self):
     """Test that the or: prefix is allowed with a list."""
     filter_params = {
         'resolution': 'daily',
         'time_scope_value': '-10',
         'time_scope_units': 'day',
         'or:region': ['region1', 'region2'],
         'resource_scope': []
     }
     serializer = FilterSerializer(data=filter_params)
     self.assertTrue(serializer.is_valid())
Пример #8
0
 def test_filter_params_with_or_string_success_multi_item(self):
     """Test that the or: prefix is allowed with a string of items."""
     filter_params = {
         "resolution": "daily",
         "time_scope_value": "-10",
         "time_scope_units": "day",
         "or:az": "az1,az2",
         "resource_scope": [],
     }
     serializer = FilterSerializer(data=filter_params)
     self.assertTrue(serializer.is_valid())
Пример #9
0
 def test_filter_params_with_and_list_success_single_item(self):
     """Test that the and: prefix succeeds with one item."""
     filter_params = {
         'resolution': 'daily',
         'time_scope_value': '-10',
         'time_scope_units': 'day',
         'and:account': ['account1'],
         'resource_scope': []
     }
     serializer = FilterSerializer(data=filter_params)
     self.assertTrue(serializer.is_valid())
Пример #10
0
 def test_filter_params_with_and_string_success(self):
     """Test that the and: prefix is allowed with a string of items."""
     filter_params = {
         'resolution': 'daily',
         'time_scope_value': '-10',
         'time_scope_units': 'day',
         'and:product_family': 'fam1,fam2',
         'resource_scope': []
     }
     serializer = FilterSerializer(data=filter_params)
     self.assertTrue(serializer.is_valid())
Пример #11
0
 def test_filter_params_with_and_list_success_single_item(self):
     """Test that the and: prefix succeeds with one item."""
     filter_params = {
         "resolution": "daily",
         "time_scope_value": "-10",
         "time_scope_units": "day",
         "and:account": ["account1"],
         "resource_scope": [],
     }
     serializer = FilterSerializer(data=filter_params)
     self.assertTrue(serializer.is_valid())
Пример #12
0
 def test_filter_params_with_or_list_success_multi_item(self):
     """Test that the or: prefix is allowed with a list."""
     filter_params = {
         "resolution": "daily",
         "time_scope_value": "-10",
         "time_scope_units": "day",
         "or:region": ["region1", "region2"],
         "resource_scope": [],
     }
     serializer = FilterSerializer(data=filter_params)
     self.assertTrue(serializer.is_valid())
Пример #13
0
 def test_filter_params_with_or_string_success_multi_item(self):
     """Test that the or: prefix is allowed with a string of items."""
     filter_params = {
         'resolution': 'daily',
         'time_scope_value': '-10',
         'time_scope_units': 'day',
         'or:az': 'az1,az2',
         'resource_scope': []
     }
     serializer = FilterSerializer(data=filter_params)
     self.assertTrue(serializer.is_valid())
Пример #14
0
 def test_filter_params_with_and_failure_bad_param(self):
     """Test that and/or does not work on a field it is not allowed on."""
     filter_params = {
         'resolution': 'daily',
         'time_scope_value': '-10',
         'time_scope_units': 'day',
         'and:resolution': 'daily',
         'resource_scope': []
     }
     serializer = FilterSerializer(data=filter_params)
     with self.assertRaises(serializers.ValidationError):
         serializer.is_valid(raise_exception=True)
Пример #15
0
 def test_filter_params_invalid_fields(self):
     """Test parse of filter params for invalid fields."""
     filter_params = {
         "resolution": "daily",
         "time_scope_value": "-10",
         "time_scope_units": "day",
         "resource_scope": [],
         "invalid": "param",
     }
     serializer = FilterSerializer(data=filter_params)
     with self.assertRaises(serializers.ValidationError):
         serializer.is_valid(raise_exception=True)
Пример #16
0
 def test_filter_params_invalid_fields(self):
     """Test parse of filter params for invalid fields."""
     filter_params = {
         'resolution': 'daily',
         'time_scope_value': '-10',
         'time_scope_units': 'day',
         'resource_scope': [],
         'invalid': 'param'
     }
     serializer = FilterSerializer(data=filter_params)
     with self.assertRaises(serializers.ValidationError):
         serializer.is_valid(raise_exception=True)
Пример #17
0
 def test_filter_params_with_and_failure_bad_param(self):
     """Test that and/or does not work on a field it is not allowed on."""
     filter_params = {
         "resolution": "daily",
         "time_scope_value": "-10",
         "time_scope_units": "day",
         "and:resolution": "daily",
         "resource_scope": [],
     }
     serializer = FilterSerializer(data=filter_params)
     with self.assertRaises(serializers.ValidationError):
         serializer.is_valid(raise_exception=True)
Пример #18
0
 def test_all_filter_op_fields(self):
     """Test that the allowed fields pass."""
     for field in FilterSerializer._opfields:
         field = "and:" + field
         filter_param = {field: ["1", "2"]}
         serializer = FilterSerializer(data=filter_param)
         self.assertTrue(serializer.is_valid())
     for field in FilterSerializer._opfields:
         field = "or:" + field
         filter_param = {field: ["1", "2"]}
         serializer = FilterSerializer(data=filter_param)
         self.assertTrue(serializer.is_valid())
Пример #19
0
 def test_tag_keys_dynamic_field_validation_success(self):
     """Test that tag keys are validated as fields."""
     tag_keys = ["valid_tag"]
     query_params = {"valid_tag": "value"}
     serializer = FilterSerializer(data=query_params, tag_keys=tag_keys)
     self.assertTrue(serializer.is_valid())
Пример #20
0
 def test_parse_filter_params_no_time(self):
     """Test parse of a filter param no time filter."""
     filter_params = {"resource_scope": ["S3"]}
     serializer = FilterSerializer(data=filter_params)
     self.assertTrue(serializer.is_valid())