diff --git a/src/functional_tests/test_room_role_select.py b/src/functional_tests/test_room_role_select.py index 701c5ff..f03624e 100644 --- a/src/functional_tests/test_room_role_select.py +++ b/src/functional_tests/test_room_role_select.py @@ -14,11 +14,14 @@ from apps.lyric.models import User def _equip_earthman_deck(user): - """Equip the Earthman DeckVariant so the role-select no-deck guard passes.""" - deck = DeckVariant.objects.filter(name__icontains="Earthman").first() - if deck: - user.equipped_deck = deck - user.save(update_fields=["equipped_deck"]) + # get_or_create: TransactionTestCase.flush() wipes migration-seeded DeckVariants + # between tests, so subsequent tests in the same run can't find it via filter(). + deck, _ = DeckVariant.objects.get_or_create( + slug="earthman", + defaults={"name": "Earthman", "card_count": 106, "is_default": True}, + ) + user.equipped_deck = deck + user.save(update_fields=["equipped_deck"]) def _fill_room_via_orm(room, emails):