From 780d52f20c39f85576a34e6a0540f9fc9c28ff44 Mon Sep 17 00:00:00 2001 From: Karel van Klink <karel.vanklink@geant.org> Date: Tue, 30 Jul 2024 13:26:26 +0200 Subject: [PATCH] Move conftest that disallows external HTTP calls to parent module --- test/conftest.py | 24 ++++++++++++++++++++++++ test/workflows/conftest.py | 25 ------------------------- 2 files changed, 24 insertions(+), 25 deletions(-) delete mode 100644 test/workflows/conftest.py diff --git a/test/conftest.py b/test/conftest.py index d450ab43..8e32c666 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -30,6 +30,7 @@ from sqlalchemy import create_engine, select, text from sqlalchemy.engine import make_url from sqlalchemy.orm import scoped_session, sessionmaker from starlette.testclient import TestClient +from urllib3_mock import Responses from gso.db.models import PartnerType from gso.main import init_gso_app @@ -516,3 +517,26 @@ def product_type_1_subscriptions_factory(product_type_1_subscription_factory): @pytest.fixture() def generic_subscription_1(product_type_1_subscription_factory): return product_type_1_subscription_factory() + + +@pytest.fixture(autouse=True) +def responses(): + responses_mock = Responses("requests.packages.urllib3") + + def _find_request(call): + mock_url = responses_mock._find_match(call.request) # noqa: SLF001 + if not mock_url: + pytest.fail(f"Call not mocked: {call.request}") + return mock_url + + def _to_tuple(url_mock): + return url_mock["url"], url_mock["method"], url_mock["match_querystring"] + + with responses_mock: + yield responses_mock + + mocked_urls = map(_to_tuple, responses_mock._urls) # noqa: SLF001 + used_urls = map(_to_tuple, map(_find_request, responses_mock.calls)) + not_used = set(mocked_urls) - set(used_urls) + if not_used: + pytest.fail(f"Found unused responses mocks: {not_used}", pytrace=False) diff --git a/test/workflows/conftest.py b/test/workflows/conftest.py deleted file mode 100644 index 9d298a77..00000000 --- a/test/workflows/conftest.py +++ /dev/null @@ -1,25 +0,0 @@ -import pytest -from urllib3_mock import Responses - - -@pytest.fixture(autouse=True) -def responses(): - responses_mock = Responses("requests.packages.urllib3") - - def _find_request(call): - mock_url = responses_mock._find_match(call.request) # noqa: SLF001 - if not mock_url: - pytest.fail(f"Call not mocked: {call.request}") - return mock_url - - def _to_tuple(url_mock): - return url_mock["url"], url_mock["method"], url_mock["match_querystring"] - - with responses_mock: - yield responses_mock - - mocked_urls = map(_to_tuple, responses_mock._urls) # noqa: SLF001 - used_urls = map(_to_tuple, map(_find_request, responses_mock.calls)) - not_used = set(mocked_urls) - set(used_urls) - if not_used: - pytest.fail(f"Found unused responses mocks: {not_used}", pytrace=False) -- GitLab