Improve future interoperability with responses-module (#4753)
This commit is contained in:
parent
2407e969ac
commit
01ae8c01a6
3
.github/workflows/build.yml
vendored
3
.github/workflows/build.yml
vendored
@ -221,6 +221,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
needs: lint
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
python-version: [ 3.8 ]
|
||||
responses-version: [0.11.0, 0.12.0, 0.12.1, 0.13.0, 0.15.0, 0.17.0]
|
||||
@ -251,7 +252,7 @@ jobs:
|
||||
pip install "coverage<=4.5.4"
|
||||
- name: Test core-logic with responses==${{ matrix.responses-version }}
|
||||
run: |
|
||||
pytest -sv --cov=moto --cov-report xml ./tests/test_core
|
||||
pytest -sv --cov=moto --cov-report xml ./tests/test_core ./tests/test_apigateway/test_apigateway_integration.py
|
||||
- name: "Upload coverage to Codecov"
|
||||
if: ${{ github.repository == 'spulec/moto'}}
|
||||
uses: codecov/codecov-action@v1
|
||||
|
@ -918,7 +918,6 @@ class RestAPI(CloudFormationModel):
|
||||
method=http_method,
|
||||
callback=self.resource_callback,
|
||||
content_type="text/plain",
|
||||
match_querystring=False,
|
||||
)
|
||||
responses_mock.add(callback_response)
|
||||
|
||||
|
@ -13,6 +13,9 @@ except ImportError:
|
||||
from importlib_metadata import version
|
||||
|
||||
|
||||
RESPONSES_VERSION = version("responses")
|
||||
|
||||
|
||||
class CallbackResponse(responses.CallbackResponse):
|
||||
"""
|
||||
Need to subclass so we can change a couple things
|
||||
@ -71,7 +74,7 @@ class CallbackResponse(responses.CallbackResponse):
|
||||
if not match_querystring:
|
||||
other = other.split("?", 1)[0]
|
||||
|
||||
if responses._is_string(url):
|
||||
if isinstance(url, str):
|
||||
if responses._has_unicode(url):
|
||||
url = responses._clean_unicode(url)
|
||||
if not isinstance(other, str):
|
||||
@ -151,7 +154,6 @@ def get_response_mock():
|
||||
"""
|
||||
responses_mock = None
|
||||
|
||||
RESPONSES_VERSION = version("responses")
|
||||
if LooseVersion(RESPONSES_VERSION) < LooseVersion("0.12.1"):
|
||||
responses_mock = responses.RequestsMock(assert_all_requests_are_fired=False)
|
||||
responses_mock._find_match = types.MethodType(
|
||||
@ -169,3 +171,17 @@ def get_response_mock():
|
||||
|
||||
responses_mock.add_passthru("http")
|
||||
return responses_mock
|
||||
|
||||
|
||||
def reset_responses_mock(responses_mock):
|
||||
if LooseVersion(RESPONSES_VERSION) < LooseVersion("0.12.1"):
|
||||
responses_mock.reset()
|
||||
elif LooseVersion(RESPONSES_VERSION) >= LooseVersion("0.17.0"):
|
||||
from .responses_custom_registry import CustomRegistry
|
||||
|
||||
responses_mock.reset()
|
||||
# No way to set the registry directly (yet..)
|
||||
responses_mock._set_registry(CustomRegistry)
|
||||
responses_mock.add_passthru("http")
|
||||
else:
|
||||
responses_mock.reset()
|
||||
|
@ -22,6 +22,7 @@ from .custom_responses_mock import (
|
||||
get_response_mock,
|
||||
CallbackResponse,
|
||||
not_implemented_callback,
|
||||
reset_responses_mock,
|
||||
)
|
||||
from .utils import (
|
||||
convert_httpretty_response,
|
||||
@ -317,7 +318,7 @@ def patch_resource(resource):
|
||||
class BotocoreEventMockAWS(BaseMockAWS):
|
||||
def reset(self):
|
||||
botocore_stubber.reset()
|
||||
responses_mock.calls.reset()
|
||||
reset_responses_mock(responses_mock)
|
||||
|
||||
def enable_patching(self):
|
||||
botocore_stubber.enabled = True
|
||||
@ -341,7 +342,6 @@ class BotocoreEventMockAWS(BaseMockAWS):
|
||||
method=method,
|
||||
url=re.compile(key),
|
||||
callback=convert_flask_to_responses_response(value),
|
||||
match_querystring=False,
|
||||
)
|
||||
)
|
||||
responses_mock.add(
|
||||
@ -349,7 +349,6 @@ class BotocoreEventMockAWS(BaseMockAWS):
|
||||
method=method,
|
||||
url=re.compile(r"https?://.+\.amazonaws.com/.*"),
|
||||
callback=not_implemented_callback,
|
||||
match_querystring=False,
|
||||
)
|
||||
)
|
||||
botocore_mock.add(
|
||||
@ -357,7 +356,6 @@ class BotocoreEventMockAWS(BaseMockAWS):
|
||||
method=method,
|
||||
url=re.compile(r"https?://.+\.amazonaws.com/.*"),
|
||||
callback=not_implemented_callback,
|
||||
match_querystring=False,
|
||||
)
|
||||
)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user