From 6859b2ac0ebfd98b3c46d88541435330c2c7bf75 Mon Sep 17 00:00:00 2001 From: Johnny Date: Wed, 4 Dec 2019 19:18:39 +0000 Subject: [PATCH] Fixes create() method failure where no account was provided. --- evennia/objects/objects.py | 7 ++++--- evennia/objects/tests.py | 8 ++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/evennia/objects/objects.py b/evennia/objects/objects.py index 43c2dcc6fe..bc9f946415 100644 --- a/evennia/objects/objects.py +++ b/evennia/objects/objects.py @@ -2076,9 +2076,10 @@ class DefaultCharacter(DefaultObject): try: # Check to make sure account does not have too many chars - if len(account.characters) >= settings.MAX_NR_CHARACTERS: - errors.append("There are too many characters associated with this account.") - return obj, errors + if account: + if len(account.characters) >= settings.MAX_NR_CHARACTERS: + errors.append("There are too many characters associated with this account.") + return obj, errors # Create the Character obj = create.create_object(**kwargs) diff --git a/evennia/objects/tests.py b/evennia/objects/tests.py index 1f84466686..29bb292c8f 100644 --- a/evennia/objects/tests.py +++ b/evennia/objects/tests.py @@ -32,6 +32,14 @@ class DefaultObjectTest(EvenniaTest): self.assertEqual(description, obj.db.desc) self.assertEqual(obj.db.creator_ip, self.ip) self.assertEqual(obj.db_home, self.room1) + + def test_character_create_noaccount(self): + obj, errors = DefaultCharacter.create( + "oscar", None, home=self.room1.dbref + ) + self.assertTrue(obj, errors) + self.assertFalse(errors, errors) + self.assertEqual(obj.db_home, self.room1) def test_room_create(self): description = "A dimly-lit alley behind the local Chinese restaurant."