From 5b39f70aa14cac635b6084170e9d0bd3f548b911 Mon Sep 17 00:00:00 2001 From: Dennis Fink Date: Mon, 10 Aug 2026 20:00:28 +0200 Subject: test: simplify mocks and localize test fixtures Replace shared HTTPX and DNS fixtures with targeted unittest.mock patches close to the tests that need them. Keep conftest focused on application and client setup, while moving receiver-specific helpers into the receiver test module. --- tests/test_url_security.py | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'tests/test_url_security.py') diff --git a/tests/test_url_security.py b/tests/test_url_security.py index fba6d7d..b10e6ff 100644 --- a/tests/test_url_security.py +++ b/tests/test_url_security.py @@ -1,3 +1,5 @@ +from unittest.mock import Mock, patch + import pytest from webmentions_ssg.url_security import ( @@ -6,14 +8,7 @@ from webmentions_ssg.url_security import ( ) -class FakeAnswers: - def __init__(self, *addresses: str): - self._addresses = addresses - - def addresses(self): - return iter(self._addresses) - - +@patch("webmentions_ssg.url_security.dns.resolver.resolve_name") @pytest.mark.parametrize( ("url", "resolved_addresses"), [ @@ -29,14 +24,11 @@ class FakeAnswers: ], ) def test_ensure_public_url_rejects_non_public_addresses( - monkeypatch: pytest.MonkeyPatch, + resolve_name: Mock, url: str, resolved_addresses: list[str], ) -> None: - monkeypatch.setattr( - "webmentions_ssg.url_security.dns.resolver.resolve_name", - lambda hostname: FakeAnswers(*resolved_addresses), - ) + resolve_name.return_value.addresses.return_value = resolved_addresses with pytest.raises(NonPublicAddressError): ensure_public_url(url) -- cgit v1.3.1