Source code for evennia.contrib.rpg.character_creator.tests

-from unittest.mock import patch
-
-from django.conf import settings
-from django.test import override_settings
-
-from evennia import DefaultCharacter
-from evennia.commands.default import account
+from evennia import DefaultCharacter
 from evennia.utils import inherits_from
 from evennia.utils.test_resources import BaseEvenniaCommandTest
 
@@ -104,35 +98,45 @@
 
[docs]class TestCharacterCreator(BaseEvenniaCommandTest):
[docs] def setUp(self): super().setUp() - self.account.swap_typeclass(character_creator.ContribChargenAccount)
+ self.account.swap_typeclass(character_creator.ContribChargenAccount) + self.account.unpuppet_all()
-
[docs] def test_ooc_look(self): +
[docs] def test_account_look(self): self.account.characters.add(self.char1) - self.account.unpuppet_all() - self.char1.db.chargen_step = "start" - with patch("evennia.commands.default.account._AUTO_PUPPET_ON_LOGIN", new=False): - # check that correct output is returning - output = self.call( - account.CmdOOCLook(), + # check that correct output is returning + output = self.account.at_look(target=self.account.characters.all(), session=self.session) + # check that char1 is recognized as in progress + self.assertIn("in progress", output)
+ +
[docs] def test_char_create(self): + with self.settings(START_LOCATION=f"#{self.room1.id}"): + self.call( + character_creator.ContribCmdCharCreate(), "", - "Account TestAccount (you are Out-of-Character)", caller=self.account, ) - # check that char1 is recognized as in progress - self.assertIn("in progress", output)
+ # verify menu was initialized + menu = self.session.ndb._menutree + self.assertNotEqual(menu, None) + # verify character was created + new_char = self.session.new_char + self.assertTrue(inherits_from(new_char, DefaultCharacter)) + # verify character's "start location" was set + self.assertEqual(self.session.new_char.db.prelogout_location, self.room1) -
[docs] @override_settings(CHARGEN_MENU="evennia.contrib.rpg.character_creator.example_menu") - def test_char_create(self): + # exit the menu, verify it resumes + menu.parse_input("q") + del self.session.new_char + self.assertEqual(self.session.ndb._menutree, None) self.call( character_creator.ContribCmdCharCreate(), "", caller=self.account, ) - menu = self.session.ndb._menutree - self.assertNotEqual(menu, None) - self.assertTrue(inherits_from(self.session.new_char, DefaultCharacter))
+ # should be the same new char + self.assertEqual(new_char, self.session.new_char)