Source code for evennia.contrib.game_systems.storage.tests

from evennia.commands.default.tests import BaseEvenniaCommandTest
from evennia.utils.create import create_object

from . import storage


[docs]class TestStorage(BaseEvenniaCommandTest):
[docs] def setUp(self): super().setUp() self.obj1.location = self.char1 self.room1.tags.add("storage_1", "storage_location") self.room2.tags.add("shared_storage_2", "storage_location")
[docs] def test_store_and_retrieve(self): self.call( storage.CmdStore(), "", "Store what?", caller=self.char1, ) self.call( storage.CmdStore(), "obj", f"You store {self.obj1.get_display_name(self.char1)} here.", caller=self.char1, ) self.call( storage.CmdList(), "", f"Stored here:\n{self.obj1.get_display_name(self.char1)}", caller=self.char1, ) self.call( storage.CmdRetrieve(), "obj2", "Could not find 'obj2'.", caller=self.char1, ) self.call( storage.CmdRetrieve(), "obj", f"You retrieve {self.obj1.get_display_name(self.char1)}.", caller=self.char1, )
[docs] def test_store_retrieve_while_not_in_storeroom(self): self.char2.location = self.char1 self.call(storage.CmdStore(), "obj", "You cannot store anything here.", caller=self.char2) self.call( storage.CmdRetrieve(), "obj", "You cannot retrieve anything here.", caller=self.char2 )
[docs] def test_store_retrieve_nonexistent_obj(self): self.call(storage.CmdStore(), "asdasd", "Could not find 'asdasd'.", caller=self.char1) self.call(storage.CmdRetrieve(), "asdasd", "Could not find 'asdasd'.", caller=self.char1)
[docs] def test_list_nothing_stored(self): self.call( storage.CmdList(), "", "You find nothing stored here.", caller=self.char1, )
[docs] def test_shared_storage(self): self.char1.location = self.room2 self.char2.location = self.room2 self.call( storage.CmdStore(), "obj", f"You store {self.obj1.get_display_name(self.char1)} here.", caller=self.char1, ) self.call( storage.CmdRetrieve(), "obj", f"You retrieve {self.obj1.get_display_name(self.char1)}.", caller=self.char2, )
[docs] def test_remove_add_storage(self): self.char1.permissions.add("builder") self.call( storage.CmdStorage(), "", "This is already a storage location: storage/delete to remove the tag.", caller=self.char1, ) self.call( storage.CmdStore(), "obj", f"You store {self.obj1.get_display_name(self.char1)} here.", caller=self.char1, ) self.assertEqual(self.obj1.location, None) self.call( storage.CmdStorage(), "/delete", "You remove the storage capabilities of the room.", caller=self.char1, ) self.assertEqual(self.obj1.location, self.room1) self.call( storage.CmdStorage(), "", f"This is now a storage location with id: {self.room1.id}.", caller=self.char1, ) self.call( storage.CmdStorage(), "/delete", "You remove the storage capabilities of the room.", caller=self.char1, ) self.call( storage.CmdStorage(), "/shared", f"This is now a storage location with id: shared{self.room1.id}.", caller=self.char1, )