+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,
+
)
+