diff --git a/src/commercetools/testing/__init__.py b/src/commercetools/testing/__init__.py index f7d31816..067189a5 100644 --- a/src/commercetools/testing/__init__.py +++ b/src/commercetools/testing/__init__.py @@ -113,7 +113,7 @@ def register(self, adapter): @contextmanager def backend_mocker(*args, **kwargs): - with requests_mock.Mocker(real_http=True) as m: + with requests_mock.Mocker(real_http=True, case_sensitive=True) as m: repo = BackendRepository() repo.register(m) yield repo diff --git a/src/commercetools/testing/server.py b/src/commercetools/testing/server.py index 4a708c5b..3edf49cb 100644 --- a/src/commercetools/testing/server.py +++ b/src/commercetools/testing/server.py @@ -39,7 +39,7 @@ def __init__(self, repository=None): def __call__(self, environ, start_response): request = self._create_request(environ) - request_mock = _RequestObjectProxy(request.prepare()) + request_mock = _RequestObjectProxy(request.prepare(), case_sensitive=True) if request_mock.body is None: request_mock.body = "" diff --git a/tests/test_mock_server.py b/tests/test_mock_server.py index cd49572d..0fc0c3e9 100644 --- a/tests/test_mock_server.py +++ b/tests/test_mock_server.py @@ -1,13 +1,19 @@ -import pytest +import os + import requests from commercetools import Client -from commercetools.types import LocalizedString, ProductDraft +from commercetools.types import ( + ChannelDraft, + ChannelResourceIdentifier, + ChannelRoleEnum, + LocalizedString, + ProductDraft, + StoreDraft, +) def test_http_server(commercetools_client, commercetools_http_server): - import os - os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1" client = Client( @@ -30,3 +36,38 @@ def test_http_server(commercetools_client, commercetools_http_server): assert response.status_code == 200, response.text data = response.json() assert data["masterData"]["staged"]["name"]["nl"] == "Testje" + + +def test_http_server_expanding(commercetools_client, commercetools_http_server): + os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1" + + client = Client( + project_key="unittest", + client_id="client-id", + client_secret="client-secret", + scope=[], + url=commercetools_http_server.api_url, + token_url=f"{commercetools_http_server.api_url}/oauth/token", + ) + + client.channels.create( + ChannelDraft(key="FOO", roles=[ChannelRoleEnum.PRODUCT_DISTRIBUTION]) + ) + + store = client.stores.create( + StoreDraft( + key="FOO", distribution_channels=[ChannelResourceIdentifier(key="FOO")] + ) + ) + + url = commercetools_http_server.api_url + f"/unittest/stores/{store.id}" + response = requests.get( + url, + params={"expand": "distributionChannels[*]"}, + headers={"Authorization": "Bearer token"}, + ) + + assert response.status_code == 200, response.text + data = response.json() + + assert data["distributionChannels"][0]["obj"]["key"] == "FOO"