diff options
Diffstat (limited to 'packages/meshbay-node/tests/test_musicbrainz.py')
| -rw-r--r-- | packages/meshbay-node/tests/test_musicbrainz.py | 17 |
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() |