bdd: remove OrderedDict

dicts are guaranteed to keep insertion order by since Python 3.7, making
use of ORderedDict mute.
This commit is contained in:
Sarah Hoffmann
2023-03-09 16:08:39 +01:00
parent 9a5f75dba7
commit d17ec56e54

View File

@@ -7,7 +7,6 @@
""" """
Classes wrapping HTTP responses from the Nominatim API. Classes wrapping HTTP responses from the Nominatim API.
""" """
from collections import OrderedDict
import re import re
import json import json
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
@@ -70,8 +69,8 @@ class GenericResponse:
else: else:
code = m.group(2) code = m.group(2)
self.header['json_func'] = m.group(1) self.header['json_func'] = m.group(1)
self.result = json.JSONDecoder(object_pairs_hook=OrderedDict).decode(code) self.result = json.JSONDecoder().decode(code)
if isinstance(self.result, OrderedDict): if isinstance(self.result, dict):
if 'error' in self.result: if 'error' in self.result:
self.result = [] self.result = []
else: else:
@@ -102,7 +101,7 @@ class GenericResponse:
elif value.startswith("^"): elif value.startswith("^"):
assert re.fullmatch(value, self.result[idx][field]), \ assert re.fullmatch(value, self.result[idx][field]), \
BadRowValueAssert(self, idx, field, value) BadRowValueAssert(self, idx, field, value)
elif isinstance(self.result[idx][field], OrderedDict): elif isinstance(self.result[idx][field], dict):
assert self.result[idx][field] == eval('{' + value + '}'), \ assert self.result[idx][field] == eval('{' + value + '}'), \
BadRowValueAssert(self, idx, field, value) BadRowValueAssert(self, idx, field, value)
else: else:
@@ -115,7 +114,7 @@ class GenericResponse:
field = self.result[idx] field = self.result[idx]
for p in path: for p in path:
assert isinstance(field, OrderedDict) assert isinstance(field, dict)
assert p in field assert p in field
field = field[p] field = field[p]
@@ -123,7 +122,7 @@ class GenericResponse:
assert Almost(value) == float(field) assert Almost(value) == float(field)
elif value.startswith("^"): elif value.startswith("^"):
assert re.fullmatch(value, field) assert re.fullmatch(value, field)
elif isinstance(field, OrderedDict): elif isinstance(field, dict):
assert field, eval('{' + value + '}') assert field, eval('{' + value + '}')
else: else:
assert str(field) == str(value) assert str(field) == str(value)