aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/tests/test_musicbrainz.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node/tests/test_musicbrainz.py')
-rw-r--r--packages/meshbay-node/tests/test_musicbrainz.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/packages/meshbay-node/tests/test_musicbrainz.py b/packages/meshbay-node/tests/test_musicbrainz.py
index 843a691..cff7fea 100644
--- a/packages/meshbay-node/tests/test_musicbrainz.py
+++ b/packages/meshbay-node/tests/test_musicbrainz.py
@@ -246,3 +246,20 @@ async def test_calls_are_paced_at_least_min_interval_apart():
assert elapsed >= _MIN_INTERVAL_SECS * 0.9
await client.close()
+
+
+@pytest.mark.asyncio
+async def test_a_missing_contact_is_reported_once_not_silently(caplog):
+ """Staying inert is the policy; staying quiet about it left an operator with
+ blank Music tiles and nothing to search for."""
+ def handle(request: httpx.Request) -> httpx.Response: # pragma: no cover
+ raise AssertionError("no request may be sent without a contact")
+
+ client = MusicBrainzClient(owner_email="", transport=httpx.MockTransport(handle))
+ with caplog.at_level("WARNING"):
+ await client.search_release("Anyone", "Anything")
+ await client.search_release("Anyone Else", "Anything Else")
+
+ warnings = [r for r in caplog.records if "MusicBrainz lookups are inert" in r.message]
+ assert len(warnings) == 1, "warn once per client, not once per lookup"
+ await client.close()