def test_resolve_top_level_list_without_index(self): ws_response = WSResponse().with_attribute("//colour", "blue") test_data = [{ "colour": "red" }, { "colour": "green" }, { "colour": "blue" }] self.assertTrue(ws_response.is_match(test_data))
def test_resolved_attribute_by_list_without_index_no_match(self): ws_response = WSResponse().with_attribute("body//colour", "yellow") test_data = { "body": [{ "colour": "red" }, { "colour": "green" }, { "colour": "blue" }] } self.assertFalse(ws_response.is_match(test_data))
def test_resolved_attribute_by_list_index(self): ws_response = WSResponse().with_attribute("body/0/colour", "red") test_data = { "body": [{ "colour": "red" }, { "colour": "green" }, { "colour": "blue" }] } self.assertTrue(ws_response.is_match(test_data))
def test_resolved_recursive_attribute_match(self): ws_response = WSResponse().with_attribute("body/first/second/third", "value") test_data = { "type": "new_request", "body": { "first": { "second": { "third": "value", "fourth": "not_value" } } } } self.assertTrue(ws_response.is_match(test_data))
def test_resolve_by_key_when_list_fails(self): ws_response = WSResponse().with_attribute("body/colour", "red") test_data = {"body": ["red", "green", "blue"]} self.assertFalse(ws_response.is_match(test_data))
def test_resolve_by_index_when_dict_fails(self): ws_response = WSResponse().with_attribute("body/0/colour", "red") test_data = {"body": {"colour": "red"}} self.assertFalse(ws_response.is_match(test_data))
def test_resolved_attribute_by_just_list_index(self): ws_response = WSResponse().with_attribute("body/0/", "red") test_data = {"body": ["red", "green", "blue"]} self.assertTrue(ws_response.is_match(test_data))
def test_resolved_attribute_by_list_index_not_enough_elements(self): ws_response = WSResponse().with_attribute("body/0/colour", "red") test_data = {"body": []} self.assertFalse(ws_response.is_match(test_data))