diff --git a/backend/app/tasks/maintenance.py b/backend/app/tasks/maintenance.py index fbf94bf..2af679c 100644 --- a/backend/app/tasks/maintenance.py +++ b/backend/app/tasks/maintenance.py @@ -1244,9 +1244,9 @@ def sync_memberships() -> str: """ import asyncio + from ..services.artist_membership_service import rescan as membership_rescan from ..services.credential_crypto import CredentialCrypto from ..services.credential_service import CredentialService - from ..services.artist_membership_service import rescan as membership_rescan from ..services.membership_roster import sync_platform from ..services.patreon_client import PatreonClient from ._async_session import async_session_factory diff --git a/tests/test_artist_membership_suggestions.py b/tests/test_artist_membership_suggestions.py index fd2eeb0..2a9bbe6 100644 --- a/tests/test_artist_membership_suggestions.py +++ b/tests/test_artist_membership_suggestions.py @@ -181,13 +181,21 @@ async def test_an_artist_with_no_sources_at_all_is_never_proposed(db): @pytest.mark.asyncio async def test_a_weak_name_needs_the_declaration(db): artist = await _artist_with_discord(db, "Maewix", "maewix") - m = await _membership(db, display_name="Maewix Studios Official") + # BOTH identity fields must be weak, or the test contradicts itself: the + # first draft left the default vanity exactly matching the artist slug, so + # the name signal was legitimately 1.0 and the code was right to propose. + # CI caught it — a test bug, not a code bug. + m = await _membership( + db, display_name="Maewix Studios Official", + details={"campaign": {"vanity": "maewixstudios"}}, + url="https://www.patreon.com/maewixstudios", + ) await db.commit() assert await ArtistMembershipService(db).match_membership(m.id) == 0 db.add(Post( artist_id=artist.id, source_id=None, external_post_id="p1", - description='my patreon', + description='mine', post_date=datetime.now(UTC), )) await db.commit()