From 45abac71f482e739fb21ecf54734183900666da6 Mon Sep 17 00:00:00 2001 From: Johnny Date: Wed, 4 Dec 2019 19:01:41 +0000 Subject: [PATCH 1/2] Adds test for home kwarg in create() (#1921) --- evennia/objects/tests.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/evennia/objects/tests.py b/evennia/objects/tests.py index 592f2cda26..1f84466686 100644 --- a/evennia/objects/tests.py +++ b/evennia/objects/tests.py @@ -9,23 +9,29 @@ class DefaultObjectTest(EvenniaTest): def test_object_create(self): description = "A home for a grouch." + home = self.room1.dbref + obj, errors = DefaultObject.create( - "trashcan", self.account, description=description, ip=self.ip + "trashcan", self.account, description=description, ip=self.ip, home=home ) self.assertTrue(obj, errors) self.assertFalse(errors, errors) 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(self): description = "A furry green monster, reeking of garbage." + home = self.room1.dbref + obj, errors = DefaultCharacter.create( - "oscar", self.account, description=description, ip=self.ip + "oscar", self.account, description=description, ip=self.ip, home=home ) self.assertTrue(obj, errors) self.assertFalse(errors, errors) self.assertEqual(description, obj.db.desc) self.assertEqual(obj.db.creator_ip, self.ip) + self.assertEqual(obj.db_home, self.room1) def test_room_create(self): description = "A dimly-lit alley behind the local Chinese restaurant." From 6859b2ac0ebfd98b3c46d88541435330c2c7bf75 Mon Sep 17 00:00:00 2001 From: Johnny Date: Wed, 4 Dec 2019 19:18:39 +0000 Subject: [PATCH 2/2] 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."