diff --git a/setup.py b/setup.py index c22f693..8044906 100644 --- a/setup.py +++ b/setup.py @@ -71,7 +71,7 @@ ], test_suite='pytest', tests_require=[ - 'httpretty>=1.1.4', + 'responses>=0.25.7', 'pylint==2.17.4', 'pytest>=7.4.0' ], diff --git a/test/test_all.py b/test/test_all.py index d4dea20..9ebccc5 100644 --- a/test/test_all.py +++ b/test/test_all.py @@ -3,9 +3,8 @@ from pathlib import Path import os -import httpretty +import responses -from httpretty import httprettified from opencage.geocoder import OpenCageGeocode # reduce maximum backoff retry time from 120s to 1s @@ -22,51 +21,54 @@ def _any_result_around(results, lat=None, lon=None): return True return False -@httprettified +@responses.activate def test_gb_postcode(): - httpretty.register_uri( - httpretty.GET, + responses.add( + responses.GET, geocoder.url, - body=Path('test/fixtures/uk_postcode.json').read_text(encoding="utf-8") + body=Path('test/fixtures/uk_postcode.json').read_text(encoding="utf-8"), + status=200 ) results = geocoder.geocode("EC1M 5RF") assert _any_result_around(results, lat=51.5201666, lon=-0.0985142) -@httprettified +@responses.activate def test_australia(): - httpretty.register_uri( - httpretty.GET, + responses.add( + responses.GET, geocoder.url, - body=Path('test/fixtures/mudgee_australia.json').read_text(encoding="utf-8") + body=Path('test/fixtures/mudgee_australia.json').read_text(encoding="utf-8"), + status=200 ) results = geocoder.geocode("Mudgee, Australia") assert _any_result_around(results, lat=-32.5980702, lon=149.5886383) -@httprettified +@responses.activate def test_munster(): - httpretty.register_uri( - httpretty.GET, + responses.add( + responses.GET, geocoder.url, - body=Path('test/fixtures/muenster.json').read_text(encoding="utf-8") + body=Path('test/fixtures/muenster.json').read_text(encoding="utf-8"), + status=200 ) results = geocoder.geocode("Münster") assert _any_result_around(results, lat=51.9625101, lon=7.6251879) -@httprettified +@responses.activate def test_donostia(): - httpretty.register_uri( - httpretty.GET, + responses.add( + responses.GET, geocoder.url, - body=Path('test/fixtures/donostia.json').read_text(encoding="utf-8") - + body=Path('test/fixtures/donostia.json').read_text(encoding="utf-8"), + status=200 ) - results =geocoder.geocode("Donostia") + results = geocoder.geocode("Donostia") assert _any_result_around(results, lat=43.300836, lon=-1.9809529) # test that the results are in unicode diff --git a/test/test_error_blocked.py b/test/test_error_blocked.py index 66e374f..afb70f7 100644 --- a/test/test_error_blocked.py +++ b/test/test_error_blocked.py @@ -1,19 +1,18 @@ from pathlib import Path import pytest -import httpretty +import responses -from httpretty import httprettified from opencage.geocoder import OpenCageGeocode from opencage.geocoder import ForbiddenError geocoder = OpenCageGeocode('2e10e5e828262eb243ec0b54681d699a') # will always return 403 -@httprettified +@responses.activate def test_api_key_blocked(): - httpretty.register_uri( - httpretty.GET, + responses.add( + responses.GET, geocoder.url, body=Path('test/fixtures/403_apikey_disabled.json').read_text(encoding="utf-8"), status=403, diff --git a/test/test_error_invalid_input.py b/test/test_error_invalid_input.py index 01e8c6f..e0ff04e 100644 --- a/test/test_error_invalid_input.py +++ b/test/test_error_invalid_input.py @@ -1,19 +1,19 @@ import pytest -import httpretty +import responses -from httpretty import httprettified from opencage.geocoder import OpenCageGeocode from opencage.geocoder import InvalidInputError geocoder = OpenCageGeocode('abcde') -@httprettified +@responses.activate def test_must_be_unicode_string(): - httpretty.register_uri( - httpretty.GET, + responses.add( + responses.GET, geocoder.url, - body='{"results":{}}' + body='{"results":{}}', + status=200 ) # Should not give errors diff --git a/test/test_error_not_authorized.py b/test/test_error_not_authorized.py index cdf2bf5..4183cf5 100644 --- a/test/test_error_not_authorized.py +++ b/test/test_error_not_authorized.py @@ -1,18 +1,17 @@ from pathlib import Path -import httpretty import pytest +import responses -from httpretty import httprettified from opencage.geocoder import OpenCageGeocode from opencage.geocoder import NotAuthorizedError geocoder = OpenCageGeocode('unauthorized-key') -@httprettified +@responses.activate def test_api_key_not_authorized(): - httpretty.register_uri( - httpretty.GET, + responses.add( + responses.GET, geocoder.url, body=Path('test/fixtures/401_not_authorized.json').read_text(encoding="utf-8"), status=401, diff --git a/test/test_error_ratelimit_exceeded.py b/test/test_error_ratelimit_exceeded.py index 627f95b..2522fd0 100644 --- a/test/test_error_ratelimit_exceeded.py +++ b/test/test_error_ratelimit_exceeded.py @@ -1,34 +1,34 @@ from pathlib import Path -import httpretty import pytest +import responses -from httpretty import httprettified from opencage.geocoder import OpenCageGeocode from opencage.geocoder import RateLimitExceededError geocoder = OpenCageGeocode('abcde') -@httprettified +@responses.activate def test_no_rate_limit(): - httpretty.register_uri( - httpretty.GET, + responses.add( + responses.GET, geocoder.url, - body=Path('test/fixtures/no_ratelimit.json').read_text(encoding="utf-8") + body=Path('test/fixtures/no_ratelimit.json').read_text(encoding="utf-8"), + status=200 ) # shouldn't raise an exception geocoder.geocode("whatever") -@httprettified +@responses.activate def test_rate_limit_exceeded(): # 4372eff77b8343cebfc843eb4da4ddc4 will always return 402 - httpretty.register_uri( - httpretty.GET, + responses.add( + responses.GET, geocoder.url, body=Path('test/fixtures/402_rate_limit_exceeded.json').read_text(encoding="utf-8"), status=402, - adding_headers={ + headers={ 'X-RateLimit-Limit': '2500', 'X-RateLimit-Remaining': '0', 'X-RateLimit-Reset': '1402185600' diff --git a/test/test_error_unknown.py b/test/test_error_unknown.py index fa5853f..be310cf 100644 --- a/test/test_error_unknown.py +++ b/test/test_error_unknown.py @@ -1,18 +1,18 @@ import pytest -import httpretty +import responses -from httpretty import httprettified from opencage.geocoder import OpenCageGeocode from opencage.geocoder import UnknownError geocoder = OpenCageGeocode('abcde') -@httprettified +@responses.activate def test_http_500_status(): - httpretty.register_uri( - httpretty.GET, + responses.add( + responses.GET, geocoder.url, + body='{}', status=500, ) @@ -21,14 +21,14 @@ def test_http_500_status(): assert str(excinfo.value) == '500 status code from API' -@httprettified +@responses.activate def test_non_json(): "These kinds of errors come from webserver and may not be JSON" - httpretty.register_uri( - httpretty.GET, + responses.add( + responses.GET, geocoder.url, body='