diff --git a/ate/response.py b/ate/response.py index d46a57fd..83caedb9 100644 --- a/ate/response.py +++ b/ate/response.py @@ -89,13 +89,14 @@ class ResponseObject(object): try: value = variables_mapping[validator_key] validator_dict["value"] = value + expected_value = validator_dict["expected"] except KeyError: raise exception.ParamsError("invalid validator %s" % validator_key) match_expected = utils.match_expected( value, - validator_dict["expected"], - validator_dict["comparator"] + expected_value, + validator_dict.get("comparator", "eq") ) if not match_expected: diff --git a/test/test_response.py b/test/test_response.py index 73ba023b..c4d02723 100644 --- a/test/test_response.py +++ b/test/test_response.py @@ -182,3 +182,31 @@ class TestResponse(ApiServerUnittest): diff_content_dict = resp_obj.validate(validators, variables_mapping) self.assertTrue(resp_obj.success) self.assertEqual(diff_content_dict, {}) + + def test_validate_exception(self): + url = "http://127.0.0.1:5000/" + resp = requests.get(url) + resp_obj = response.ResponseObject(resp) + + # expected value missed in validators + validators = { + "resp_status_code": {"comparator": "eq", "expected": 201}, + "resp_body_success": {"comparator": "eq"} + } + variables_mapping = { + "resp_status_code": 200, + "resp_body_success": True + } + with self.assertRaises(exception.ParamsError): + resp_obj.validate(validators, variables_mapping) + + # expected value missed in validators + validators = { + "resp_status_code": {"comparator": "eq", "expected": 201}, + "resp_body_success": {"comparator": "eq", "expected": True} + } + variables_mapping = { + "resp_status_code": 200 + } + with self.assertRaises(exception.ParamsError): + resp_obj.validate(validators, variables_mapping)