geocodio-library-python 0.6.0__tar.gz → 0.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/CHANGELOG.md +7 -1
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/PKG-INFO +1 -1
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/pyproject.toml +1 -1
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/smoke_lists.py +2 -2
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/src/geocodio/_version.py +1 -1
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/src/geocodio/client.py +1 -1
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/src/geocodio/models.py +4 -4
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/e2e/test_api.py +7 -7
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/unit/test_distance.py +8 -8
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/unit/test_errors.py +1 -1
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/unit/test_geocode.py +9 -9
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/unit/test_reverse.py +5 -5
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/uv.lock +1 -1
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/.github/workflows/ci.yml +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/.github/workflows/publish.yml +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/.github/workflows/test-act-event-ci.json +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/.github/workflows/test-act-event-publish.json +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/.gitignore +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/LICENSE +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/README.md +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/requirements-dev.txt +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/setup.cfg +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/smoke.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/src/geocodio/__init__.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/src/geocodio/distance.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/src/geocodio/exceptions.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/test_pypi_release.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/__init__.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/conftest.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/e2e/__init__.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/e2e/test_batch_reverse.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/e2e/test_distance.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/e2e/test_lists_api.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/test_workflows.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/unit/__init__.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/unit/test_client.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/unit/test_exceptions.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/unit/test_geocoding.py +0 -0
- {geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/unit/test_models.py +0 -0
|
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.7.0] - 2026-03-12
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Updated default API version to v1.11
|
|
14
|
+
|
|
10
15
|
## [0.6.0] - 2026-02-24
|
|
11
16
|
|
|
12
17
|
### Changed
|
|
@@ -64,7 +69,8 @@ When ready to release:
|
|
|
64
69
|
5. Push tags: `git push --tags`
|
|
65
70
|
6. GitHub Actions will automatically publish to PyPI
|
|
66
71
|
|
|
67
|
-
[Unreleased]: https://github.com/Geocodio/geocodio-library-python/compare/v0.
|
|
72
|
+
[Unreleased]: https://github.com/Geocodio/geocodio-library-python/compare/v0.7.0...HEAD
|
|
73
|
+
[0.7.0]: https://github.com/Geocodio/geocodio-library-python/compare/v0.6.0...v0.7.0
|
|
68
74
|
[0.6.0]: https://github.com/Geocodio/geocodio-library-python/compare/v0.5.1...v0.6.0
|
|
69
75
|
[0.5.1]: https://github.com/Geocodio/geocodio-library-python/compare/v0.5.0...v0.5.1
|
|
70
76
|
[0.5.0]: https://github.com/Geocodio/geocodio-library-python/compare/v0.4.0...v0.5.0
|
|
@@ -57,7 +57,7 @@ def main():
|
|
|
57
57
|
logger.info("Creating a new list...")
|
|
58
58
|
file_content = "Zip\n20003\n20001"
|
|
59
59
|
# --- Capture request details ---
|
|
60
|
-
logger.info("REQUEST: POST /v1.
|
|
60
|
+
logger.info("REQUEST: POST /v1.11/lists")
|
|
61
61
|
logger.info(f"Request params: {{'api_key': '***', 'direction': 'forward', 'format': '{{A}}'}}")
|
|
62
62
|
logger.info(f"Request files: {{'file': ('smoke_test_list.csv', {repr(file_content)})}}")
|
|
63
63
|
new_list_response = client.create_list(
|
|
@@ -66,7 +66,7 @@ def main():
|
|
|
66
66
|
format_="{{A}}"
|
|
67
67
|
)
|
|
68
68
|
# --- Capture response details ---
|
|
69
|
-
logger.info("RESPONSE: POST /v1.
|
|
69
|
+
logger.info("RESPONSE: POST /v1.11/lists")
|
|
70
70
|
print_headers_and_body("Response", {
|
|
71
71
|
"id": new_list_response.id,
|
|
72
72
|
"file": new_list_response.file,
|
|
@@ -43,7 +43,7 @@ from geocodio.exceptions import InvalidRequestError, AuthenticationError, Geocod
|
|
|
43
43
|
|
|
44
44
|
|
|
45
45
|
class Geocodio:
|
|
46
|
-
BASE_PATH = "/v1.
|
|
46
|
+
BASE_PATH = "/v1.11" # keep in sync with Geocodio's current version
|
|
47
47
|
DEFAULT_SINGLE_TIMEOUT = 5.0
|
|
48
48
|
DEFAULT_BATCH_TIMEOUT = 1800.0 # 30 minutes
|
|
49
49
|
LIST_API_TIMEOUT = 60.0
|
|
@@ -82,8 +82,8 @@ class Timezone(ApiModelMixin):
|
|
|
82
82
|
@dataclass(slots=True, frozen=True)
|
|
83
83
|
class CongressionalDistrict(ApiModelMixin):
|
|
84
84
|
name: str
|
|
85
|
-
district_number:
|
|
86
|
-
congress_number: str
|
|
85
|
+
district_number: Any = None
|
|
86
|
+
congress_number: Optional[str] = None
|
|
87
87
|
ocd_id: Optional[str] = None
|
|
88
88
|
extras: Dict[str, Any] = field(default_factory=dict, repr=False)
|
|
89
89
|
|
|
@@ -95,8 +95,8 @@ class StateLegislativeDistrict(ApiModelMixin):
|
|
|
95
95
|
"""
|
|
96
96
|
|
|
97
97
|
name: str
|
|
98
|
-
district_number:
|
|
99
|
-
chamber: str # 'house' or 'senate'
|
|
98
|
+
district_number: Any = None
|
|
99
|
+
chamber: Optional[str] = None # 'house' or 'senate'
|
|
100
100
|
ocd_id: Optional[str] = None
|
|
101
101
|
proportion: Optional[float] = None # Proportion of overlap with the address
|
|
102
102
|
extras: Dict[str, Any] = field(default_factory=dict, repr=False)
|
|
@@ -111,7 +111,7 @@ def test_integration_with_fields(client):
|
|
|
111
111
|
if fields.congressional_districts:
|
|
112
112
|
cd = fields.congressional_districts[0]
|
|
113
113
|
assert cd.name is not None
|
|
114
|
-
assert
|
|
114
|
+
assert cd.district_number is not None
|
|
115
115
|
assert cd.congress_number is not None
|
|
116
116
|
|
|
117
117
|
if fields.census2020:
|
|
@@ -205,23 +205,23 @@ def test_integration_with_state_legislative_districts(client):
|
|
|
205
205
|
if fields.state_legislative_districts:
|
|
206
206
|
district = fields.state_legislative_districts[0]
|
|
207
207
|
assert district.name is not None
|
|
208
|
-
assert
|
|
208
|
+
assert district.district_number is not None
|
|
209
209
|
assert district.chamber in ["house", "senate"]
|
|
210
210
|
if district.ocd_id:
|
|
211
211
|
assert isinstance(district.ocd_id, str)
|
|
212
212
|
if district.proportion:
|
|
213
|
-
assert isinstance(district.proportion, float)
|
|
213
|
+
assert isinstance(district.proportion, (int, float))
|
|
214
214
|
|
|
215
215
|
# Check upcoming state legislative districts
|
|
216
216
|
if fields.state_legislative_districts_next:
|
|
217
217
|
district = fields.state_legislative_districts_next[0]
|
|
218
218
|
assert district.name is not None
|
|
219
|
-
assert
|
|
219
|
+
assert district.district_number is not None
|
|
220
220
|
assert district.chamber in ["house", "senate"]
|
|
221
221
|
if district.ocd_id:
|
|
222
222
|
assert isinstance(district.ocd_id, str)
|
|
223
223
|
if district.proportion:
|
|
224
|
-
assert isinstance(district.proportion, float)
|
|
224
|
+
assert isinstance(district.proportion, (int, float))
|
|
225
225
|
|
|
226
226
|
|
|
227
227
|
def test_integration_with_school_districts(client):
|
|
@@ -249,7 +249,7 @@ def test_integration_with_school_districts(client):
|
|
|
249
249
|
district = fields.school_districts[0]
|
|
250
250
|
assert district.name is not None
|
|
251
251
|
if district.district_number:
|
|
252
|
-
assert
|
|
252
|
+
assert district.district_number is not None
|
|
253
253
|
if district.lea_id:
|
|
254
254
|
assert isinstance(district.lea_id, str)
|
|
255
255
|
if district.nces_id:
|
|
@@ -676,7 +676,7 @@ def test_integration_with_congressional_district_variants(client):
|
|
|
676
676
|
if fields.congressional_districts:
|
|
677
677
|
for district in fields.congressional_districts:
|
|
678
678
|
assert district.name is not None
|
|
679
|
-
assert
|
|
679
|
+
assert district.district_number is not None
|
|
680
680
|
assert district.congress_number is not None
|
|
681
681
|
if district.ocd_id:
|
|
682
682
|
assert isinstance(district.ocd_id, str)
|
|
@@ -213,7 +213,7 @@ class TestDistance:
|
|
|
213
213
|
"""Test basic distance calculation."""
|
|
214
214
|
def response_callback(request):
|
|
215
215
|
assert request.method == "GET"
|
|
216
|
-
assert "/v1.
|
|
216
|
+
assert "/v1.11/distance" in str(request.url)
|
|
217
217
|
return httpx.Response(200, json=sample_distance_response())
|
|
218
218
|
|
|
219
219
|
httpx_mock.add_callback(callback=response_callback)
|
|
@@ -464,7 +464,7 @@ def sample_job_status_response():
|
|
|
464
464
|
"name": "My Job",
|
|
465
465
|
"status": "COMPLETED",
|
|
466
466
|
"progress": 100,
|
|
467
|
-
"download_url": "https://api.geocod.io/v1.
|
|
467
|
+
"download_url": "https://api.geocod.io/v1.11/distance-jobs/123/download",
|
|
468
468
|
"total_calculations": 4,
|
|
469
469
|
"calculations_completed": 4,
|
|
470
470
|
"origins_count": 2,
|
|
@@ -502,7 +502,7 @@ def sample_jobs_list_response():
|
|
|
502
502
|
"current_page": 1,
|
|
503
503
|
"from": 1,
|
|
504
504
|
"to": 2,
|
|
505
|
-
"path": "/v1.
|
|
505
|
+
"path": "/v1.11/distance-jobs",
|
|
506
506
|
"per_page": 10
|
|
507
507
|
}
|
|
508
508
|
|
|
@@ -656,7 +656,7 @@ class TestGeocodeWithDistance:
|
|
|
656
656
|
"""Test geocode with destination parameter."""
|
|
657
657
|
def response_callback(request):
|
|
658
658
|
url_str = str(request.url)
|
|
659
|
-
assert "/v1.
|
|
659
|
+
assert "/v1.11/geocode" in url_str
|
|
660
660
|
assert "destinations%5B%5D" in url_str or "destinations[]" in url_str.replace("%5B", "[").replace("%5D", "]")
|
|
661
661
|
return httpx.Response(200, json=sample_geocode_with_distance_response())
|
|
662
662
|
|
|
@@ -673,7 +673,7 @@ class TestGeocodeWithDistance:
|
|
|
673
673
|
"""Test geocode with distance mode parameter."""
|
|
674
674
|
def response_callback(request):
|
|
675
675
|
url_str = str(request.url)
|
|
676
|
-
assert "/v1.
|
|
676
|
+
assert "/v1.11/geocode" in url_str
|
|
677
677
|
assert "distance_mode=driving" in url_str
|
|
678
678
|
return httpx.Response(200, json=sample_geocode_with_distance_response())
|
|
679
679
|
|
|
@@ -689,7 +689,7 @@ class TestGeocodeWithDistance:
|
|
|
689
689
|
"""Test geocode with distance units parameter."""
|
|
690
690
|
def response_callback(request):
|
|
691
691
|
url_str = str(request.url)
|
|
692
|
-
assert "/v1.
|
|
692
|
+
assert "/v1.11/geocode" in url_str
|
|
693
693
|
assert "distance_units=km" in url_str
|
|
694
694
|
return httpx.Response(200, json=sample_geocode_with_distance_response())
|
|
695
695
|
|
|
@@ -714,7 +714,7 @@ class TestReverseWithDistance:
|
|
|
714
714
|
"""Test reverse geocode with destination parameter."""
|
|
715
715
|
def response_callback(request):
|
|
716
716
|
url_str = str(request.url)
|
|
717
|
-
assert "/v1.
|
|
717
|
+
assert "/v1.11/reverse" in url_str
|
|
718
718
|
assert "destinations%5B%5D" in url_str or "destinations[]" in url_str.replace("%5B", "[").replace("%5D", "]")
|
|
719
719
|
return httpx.Response(200, json=sample_geocode_with_distance_response())
|
|
720
720
|
|
|
@@ -731,7 +731,7 @@ class TestReverseWithDistance:
|
|
|
731
731
|
"""Test reverse geocode with distance mode parameter."""
|
|
732
732
|
def response_callback(request):
|
|
733
733
|
url_str = str(request.url)
|
|
734
|
-
assert "/v1.
|
|
734
|
+
assert "/v1.11/reverse" in url_str
|
|
735
735
|
assert "distance_mode=straightline" in url_str
|
|
736
736
|
return httpx.Response(200, json=sample_geocode_with_distance_response())
|
|
737
737
|
|
|
@@ -9,7 +9,7 @@ def _add_err(httpx_mock, status_code):
|
|
|
9
9
|
# this should actually make the request and see and error response
|
|
10
10
|
# but we are mocking it here for testing purposes
|
|
11
11
|
httpx_mock.add_response(
|
|
12
|
-
url=httpx.URL("https://api.test/v1.
|
|
12
|
+
url=httpx.URL("https://api.test/v1.11/geocode", params={"q": "bad input"}),
|
|
13
13
|
match_headers={"Authorization": "Bearer TEST_KEY"},
|
|
14
14
|
json={"error": "boom"},
|
|
15
15
|
status_code=status_code,
|
|
@@ -57,7 +57,7 @@ def test_geocode_single(client, httpx_mock):
|
|
|
57
57
|
|
|
58
58
|
httpx_mock.add_callback(
|
|
59
59
|
callback=response_callback,
|
|
60
|
-
url=httpx.URL("https://api.test/v1.
|
|
60
|
+
url=httpx.URL("https://api.test/v1.11/geocode", params={"q": "1109 N Highland St, Arlington, VA"}),
|
|
61
61
|
match_headers={"Authorization": "Bearer TEST_KEY"},
|
|
62
62
|
)
|
|
63
63
|
|
|
@@ -140,7 +140,7 @@ def test_geocode_batch(client, httpx_mock):
|
|
|
140
140
|
|
|
141
141
|
httpx_mock.add_callback(
|
|
142
142
|
callback=batch_response_callback,
|
|
143
|
-
url=httpx.URL("https://api.test/v1.
|
|
143
|
+
url=httpx.URL("https://api.test/v1.11/geocode"),
|
|
144
144
|
match_headers={"Authorization": "Bearer TEST_KEY"},
|
|
145
145
|
)
|
|
146
146
|
|
|
@@ -172,7 +172,7 @@ def test_geocode_structured_address(client, httpx_mock):
|
|
|
172
172
|
|
|
173
173
|
httpx_mock.add_callback(
|
|
174
174
|
callback=response_callback,
|
|
175
|
-
url=httpx.URL("https://api.test/v1.
|
|
175
|
+
url=httpx.URL("https://api.test/v1.11/geocode", params={
|
|
176
176
|
"street": "1109 N Highland St",
|
|
177
177
|
"city": "Arlington",
|
|
178
178
|
"state": "VA"
|
|
@@ -229,7 +229,7 @@ def test_geocode_with_fields(client, httpx_mock):
|
|
|
229
229
|
|
|
230
230
|
httpx_mock.add_callback(
|
|
231
231
|
callback=response_callback,
|
|
232
|
-
url=httpx.URL("https://api.test/v1.
|
|
232
|
+
url=httpx.URL("https://api.test/v1.11/geocode", params={
|
|
233
233
|
"q": "1109 Highland St, Arlington, VA",
|
|
234
234
|
"fields": "timezone,cd"
|
|
235
235
|
}),
|
|
@@ -292,7 +292,7 @@ def test_geocode_with_limit(client, httpx_mock):
|
|
|
292
292
|
|
|
293
293
|
httpx_mock.add_callback(
|
|
294
294
|
callback=response_callback,
|
|
295
|
-
url=httpx.URL("https://api.test/v1.
|
|
295
|
+
url=httpx.URL("https://api.test/v1.11/geocode", params={
|
|
296
296
|
"q": "1109 Highland St, Arlington, VA",
|
|
297
297
|
"limit": "2"
|
|
298
298
|
}),
|
|
@@ -371,7 +371,7 @@ def test_geocode_batch_with_nested_response(client, httpx_mock):
|
|
|
371
371
|
|
|
372
372
|
httpx_mock.add_callback(
|
|
373
373
|
callback=batch_response_callback,
|
|
374
|
-
url=httpx.URL("https://api.test/v1.
|
|
374
|
+
url=httpx.URL("https://api.test/v1.11/geocode"),
|
|
375
375
|
match_headers={"Authorization": "Bearer TEST_KEY"},
|
|
376
376
|
)
|
|
377
377
|
|
|
@@ -478,7 +478,7 @@ def test_geocode_batch_with_fields(client, httpx_mock):
|
|
|
478
478
|
|
|
479
479
|
httpx_mock.add_callback(
|
|
480
480
|
callback=batch_response_callback,
|
|
481
|
-
url=httpx.URL("https://api.test/v1.
|
|
481
|
+
url=httpx.URL("https://api.test/v1.11/geocode", params={"fields": "timezone,cd"}),
|
|
482
482
|
match_headers={"Authorization": "Bearer TEST_KEY"},
|
|
483
483
|
)
|
|
484
484
|
|
|
@@ -558,7 +558,7 @@ def test_geocode_with_census_fields(client, httpx_mock):
|
|
|
558
558
|
|
|
559
559
|
httpx_mock.add_callback(
|
|
560
560
|
callback=response_callback,
|
|
561
|
-
url=httpx.URL("https://api.test/v1.
|
|
561
|
+
url=httpx.URL("https://api.test/v1.11/geocode", params={
|
|
562
562
|
"street": "1640 Main St",
|
|
563
563
|
"city": "Sheldon",
|
|
564
564
|
"state": "VT",
|
|
@@ -671,7 +671,7 @@ def test_geocode_with_stateleg_fields(client, httpx_mock):
|
|
|
671
671
|
|
|
672
672
|
httpx_mock.add_callback(
|
|
673
673
|
callback=response_callback,
|
|
674
|
-
url=httpx.URL("https://api.test/v1.
|
|
674
|
+
url=httpx.URL("https://api.test/v1.11/geocode", params={
|
|
675
675
|
"q": "600 Santa Ray Ave, Oakland CA 94610",
|
|
676
676
|
"fields": "stateleg"
|
|
677
677
|
}),
|
|
@@ -32,7 +32,7 @@ def test_reverse_single_coordinate(client, httpx_mock):
|
|
|
32
32
|
|
|
33
33
|
httpx_mock.add_callback(
|
|
34
34
|
callback=response_callback,
|
|
35
|
-
url=httpx.URL("https://api.test/v1.
|
|
35
|
+
url=httpx.URL("https://api.test/v1.11/reverse", params={"q": "38.886672,-77.094735"}),
|
|
36
36
|
match_headers={"Authorization": "Bearer TEST_KEY"},
|
|
37
37
|
)
|
|
38
38
|
|
|
@@ -110,7 +110,7 @@ def test_reverse_batch_coordinates(client, httpx_mock):
|
|
|
110
110
|
|
|
111
111
|
httpx_mock.add_callback(
|
|
112
112
|
callback=batch_response_callback,
|
|
113
|
-
url=httpx.URL("https://api.test/v1.
|
|
113
|
+
url=httpx.URL("https://api.test/v1.11/reverse"),
|
|
114
114
|
match_headers={"Authorization": "Bearer TEST_KEY"},
|
|
115
115
|
)
|
|
116
116
|
|
|
@@ -162,7 +162,7 @@ def test_reverse_with_fields(client, httpx_mock):
|
|
|
162
162
|
|
|
163
163
|
httpx_mock.add_callback(
|
|
164
164
|
callback=response_callback,
|
|
165
|
-
url=httpx.URL("https://api.test/v1.
|
|
165
|
+
url=httpx.URL("https://api.test/v1.11/reverse", params={
|
|
166
166
|
"q": "38.886672,-77.094735",
|
|
167
167
|
"fields": "timezone,cd"
|
|
168
168
|
}),
|
|
@@ -225,7 +225,7 @@ def test_reverse_with_limit(client, httpx_mock):
|
|
|
225
225
|
|
|
226
226
|
httpx_mock.add_callback(
|
|
227
227
|
callback=response_callback,
|
|
228
|
-
url=httpx.URL("https://api.test/v1.
|
|
228
|
+
url=httpx.URL("https://api.test/v1.11/reverse", params={
|
|
229
229
|
"q": "38.886672,-77.094735",
|
|
230
230
|
"limit": "2"
|
|
231
231
|
}),
|
|
@@ -244,7 +244,7 @@ def test_reverse_with_limit(client, httpx_mock):
|
|
|
244
244
|
def test_reverse_invalid_coordinate(client, httpx_mock):
|
|
245
245
|
# Arrange: stub the API call with error response
|
|
246
246
|
httpx_mock.add_response(
|
|
247
|
-
url=httpx.URL("https://api.test/v1.
|
|
247
|
+
url=httpx.URL("https://api.test/v1.11/reverse", params={
|
|
248
248
|
"q": "invalid,coordinate"
|
|
249
249
|
}),
|
|
250
250
|
match_headers={"Authorization": "Bearer TEST_KEY"},
|
|
File without changes
|
{geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/.github/workflows/publish.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/e2e/test_batch_reverse.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/unit/test_exceptions.py
RENAMED
|
File without changes
|
{geocodio_library_python-0.6.0 → geocodio_library_python-0.7.0}/tests/unit/test_geocoding.py
RENAMED
|
File without changes
|
|
File without changes
|