-
Notifications
You must be signed in to change notification settings - Fork 0
/
response_mocks.py
63 lines (51 loc) · 1.76 KB
/
response_mocks.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
"""A few classes for mock HTTP responses from Google and Here geocode services.
Author: Dan Haggerty
Date: Feb. 2, 2018
"""
import json
class MockGoogleResponse(object):
"""Mock class for Google gecoding API response.
Params:
code (int): the status code of the response
search_results (list<tuple<float, float>>): lat/lng results list
"""
def __init__(self, code=200, search_results=None):
search_results = search_results or []
results = []
for result in search_results:
results.append({
'geometry': {
'location': {
'lat': result[0],
'lng': result[1],
},
},
})
self.data = {'results': results}
self.code = code
def read(self):
"""Gets a JSON string containing the response data."""
return json.dumps(self.data)
class MockHereResponse(object):
"""Mock class for Here Geocoder API response.
Params:
code (int): the status code of the response
search_results (list<tuple<float, float>>): lat/lng results list
"""
def __init__(self, code=200, search_results=None):
search_results = search_results or []
results = []
for result in search_results:
results.append({
'Location': {
'DisplayPosition': {
'Latitude': result[0],
'Longitude': result[1],
}
}
})
self.data = {'Response': {'View': [{'Result': results}]}}
self.code = code
def read(self):
"""Gets a JSON string containing the response data."""
return json.dumps(self.data)