def test_unlock_subpage(): enc = Encyclopaedia() e = EncEntry( parent=enc, name="Test Name", text=["Test Text"], locked=False, ) ee = EncEntry(parent=e, name="A Sub-Page", text=["Test Text"], locked=True) # Unlock the sub-page ee.locked = False assert ee.locked is False
def test_unlock_entry(): enc = Encyclopaedia() e = EncEntry( parent=enc, name="Test Name", text=["Test Text"], locked=True, ) assert e in enc.all_entries assert e not in enc.unlocked_entries # Unlock the first entry e.locked = False assert e.locked is False assert e in enc.all_entries assert e in enc.unlocked_entries
def test_locked_persistent_set(): """When locked status is controlled by a persistent variable Then the EncEntry's locked attribute should be linked to a persistent variable. """ enc = Encyclopaedia() about_zeus = EncEntry( parent=enc, name="Zeus", text=["Test Text"], locked=True, locked_persistent=True, ) about_zeus.locked = False assert persistent.Zeus_locked is False assert about_zeus.locked == persistent.Zeus_locked
def test_unlock_callback(): enc = Encyclopaedia() global baz baz = 0 @enc.on("entry_unlocked") def foobar(enc): global baz baz += 1 e = EncEntry( parent=enc, name="Test Name", text=["Test Text"], locked=True, ) # Unlock the first entry e.locked = False assert e.locked is False assert 1 == baz