UNLOCK_ALL_PHONES: tester accounts see every island unlocked (map and server rule)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-12 11:12:13 +03:30
parent 33478179e2
commit 3187f69714
3 changed files with 52 additions and 0 deletions

View File

@@ -190,6 +190,19 @@ class NodeIsUnlockedMatchesHomeTests(_World, TestCase):
self._assert_matches_home('بعد از درس‌های جزیره‌ی دو')
self.assertEqual(self.statuses()['سه'], 'unlocked')
def test_tester_phone_has_every_node_unlocked_on_map_and_server(self):
"""UNLOCK_ALL_PHONES: نقشه و قفلِ سرور هر دو باز؛ کاربرِ دیگر همان قفلِ عادی را دارد.
فقط قفلِ ترتیب را سنجیده؛ اشتراکِ فصل‌ها دست نمی‌خورد (تستش جای دیگر است)."""
from django.test import override_settings
self.assertEqual(self.statuses()['سه'], 'locked')
self.assertFalse(node_is_unlocked(self.user.id, self.n3))
with override_settings(UNLOCK_ALL_PHONES=frozenset({self.user.phone})):
self.assertNotIn('locked', self.statuses().values())
self.assertTrue(node_is_unlocked(self.user.id, self.n3))
with override_settings(UNLOCK_ALL_PHONES=frozenset({'09129999999'})):
self.assertEqual(self.statuses()['سه'], 'locked')
self.assertFalse(node_is_unlocked(self.user.id, self.n3))
def test_a_node_missing_from_the_tree_is_locked_and_logged(self):
ghost = Node(id=999999, unit=self.unit, title='شبح', order=9)
with self.assertLogs('content.views', level='WARNING'):