def test_deserialize_binding_no_mandatory_params_should_give_error(self): # We need to do import here in order generic patches work rules = { 'class_name': 'cli', 'origin': 'test', 'binding_rules': [{ "bindings": ["51c577679078b9023b3a2c4b"], "group_rules": [{ 'operation': 'eq', 'input_context_param': 'ob', 'value': ['es'] }, { 'operation': 'range', 'input_context_param': 'uuid', 'value': [1, 20] }] }] } class_name = rules.pop('class_name') serializer = BindingsSerializer(data=rules) self.assertEquals(False, serializer.is_valid(), "Deserialization invalid") self.assertEquals('required', serializer.errors['class_name'][0], 'Invalid error message') rules.pop('origin') rules['class_name'] = class_name serializer = BindingsSerializer(data=rules) self.assertEquals(False, serializer.is_valid(), "Deserialization invalid") self.assertEquals('required', serializer.errors['origin'][0], 'Invalid error message')
def test_deserialize_binding_max_size_binding_id_should_fail(self): # We need to do import here in order generic patches work rules = { 'class_name': 'cli', 'origin': 'test', 'binding_rules': [{ "bindings": [ "51c577679078b9023b3a2c4b51c577679078b9023b3a2c4b51c577679078b902" ], "group_rules": [{ 'operation': 'eq', 'input_context_param': 'ob', 'value': ['es'] }, { 'operation': 'range', 'input_context_param': 'uuid', 'value': [1, 20] }] }] } serializer = BindingsSerializer(data=rules) self.assertEquals(False, serializer.is_valid(), "Deserialization invalid") self.assertEquals('invalid', serializer.errors['binding_rules'][0]['bindings'][0])
def test_deserialize_binding_should_work(self): # We need to do import here in order generic patches work rules = { 'class_name': 'cli', 'origin': 'test', 'binding_rules': [{ "bindings": ["51c577679078b9023b3a2c4b"], "group_rules": [{ 'operation': 'eq', 'input_context_param': 'ob', 'value': ['es'] }, { 'operation': 'range', 'input_context_param': 'uuid', 'value': [1, 20] }] }] } serializer = BindingsSerializer(data=rules) self.assertEquals(True, serializer.is_valid(), "Deserialization invalid") des_object = serializer.object self.assertEquals('cli', des_object['class_name']) self.assertEquals('test', des_object['origin'])
def test_deserialize_binding_without_group_rules_should_work(self): # We need to do import here in order generic patches work rules = { 'class_name': 'cli', 'origin': 'test', 'binding_rules': [{ "bindings": ["51c577679078b9023b3a2c4b"] }] } serializer = BindingsSerializer(data=rules) self.assertEquals(True, serializer.is_valid(), "Deserialization invalid") des_object = serializer.object self.assertEquals('cli', des_object['class_name']) self.assertEquals('test', des_object['origin'])
def test_deserialize_binding_in_empty_values_should_give_error(self): # We need to do import here in order generic patches work rules = { 'class_name': 'cli', 'origin': 'test', 'binding_rules': [{ "bindings": ["51c577679078b9023b3a2c4b"], "group_rules": [{ 'operation': 'in', 'input_context_param': 'ob', 'value': ["", "es"] }] }] } serializer = BindingsSerializer(data=rules) self.assertEquals(False, serializer.is_valid()) self.assertEquals( u'invalid', serializer.errors['binding_rules'][0]['group_rules'][0] ['value'][0], 'Invalid error message')
def test_deserialize_binding_regex_invalid_should_give_error(self): # We need to do import here in order generic patches work rules = { 'class_name': 'cli', 'origin': 'test', 'binding_rules': [{ "bindings": ["51c577679078b9023b3a2c4b"], "group_rules": [{ 'operation': 'regex', 'input_context_param': 'ob', 'value': ["*"] }] }] } serializer = BindingsSerializer(data=rules) self.assertEquals(False, serializer.is_valid()) self.assertEquals( "Invalid parameter value: ['*']", serializer.errors['binding_rules'][0]['group_rules'][0]['value'] [0])