X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/da20881096fb4f38ed0226279f4ce1cf6f95e94f..3cdfe066336ad19772d300a85d6c1feaadc074ea:/test/bdd/steps/http_responses.py diff --git a/test/bdd/steps/http_responses.py b/test/bdd/steps/http_responses.py index 161e29fd..1e7da93d 100644 --- a/test/bdd/steps/http_responses.py +++ b/test/bdd/steps/http_responses.py @@ -95,6 +95,29 @@ class GenericResponse: assert str(self.result[idx][field]) == str(value), \ BadRowValueAssert(self, idx, field, value) + def assert_address_field(self, idx, field, value): + """ Check that result rows`idx` has a field `field` with value `value` + in its address. If idx is None, then all results are checked. + """ + if idx is None: + todo = range(len(self.result)) + else: + todo = [int(idx)] + + for idx in todo: + assert 'address' in self.result[idx], \ + "Result row {} has no field 'address'.\nFull row: {}"\ + .format(idx, json.dumps(self.result[idx], indent=4)) + + address = self.result[idx]['address'] + assert field in address, \ + "Result row {} has no field '{}' in address.\nFull address: {}"\ + .format(idx, field, json.dumps(address, indent=4)) + + assert address[field] == value, \ + "\nBad value for row {} field '{}' in address. Expected: {}, got: {}.\nFull address: {}"""\ + .format(idx, field, value, address[field], json.dumps(address, indent=4)) + def match_row(self, row): """ Match the result fields against the given behave table row. """