From 813a285ac8d87a3dc14e926002119e7be22fe86c Mon Sep 17 00:00:00 2001 From: Johnny Date: Wed, 4 Dec 2019 03:42:03 +0000 Subject: [PATCH] Fixes str rendering of message objects where sender does not have a 'key' attribute. --- evennia/comms/models.py | 5 +++-- evennia/comms/tests.py | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/evennia/comms/models.py b/evennia/comms/models.py index 8026a664ce..886843b69d 100644 --- a/evennia/comms/models.py +++ b/evennia/comms/models.py @@ -400,9 +400,10 @@ class Msg(SharedMemoryModel): def __str__(self): "This handles what is shown when e.g. printing the message" - senders = ",".join(obj.key for obj in self.senders) + senders = ",".join(getattr(obj, 'key', str(obj)) for obj in self.senders) + receivers = ",".join( - ["[%s]" % obj.key for obj in self.channels] + [obj.key for obj in self.receivers] + ["[%s]" % getattr(obj, 'key', str(obj)) for obj in self.channels] + [getattr(obj, 'key', str(obj)) for obj in self.receivers] ) return "%s->%s: %s" % (senders, receivers, crop(self.message, width=40)) diff --git a/evennia/comms/tests.py b/evennia/comms/tests.py index 73e03e6aee..a2acb3257f 100644 --- a/evennia/comms/tests.py +++ b/evennia/comms/tests.py @@ -1,5 +1,6 @@ from evennia.utils.test_resources import EvenniaTest from evennia import DefaultChannel +from evennia.utils.create import create_message class ObjectCreationTest(EvenniaTest): @@ -10,3 +11,8 @@ class ObjectCreationTest(EvenniaTest): self.assertTrue(obj, errors) self.assertFalse(errors, errors) self.assertEqual(description, obj.db.desc) + + def test_message_create(self): + msg = create_message('peewee herman', 'heh-heh!', header='mail time!') + self.assertTrue(msg) + self.assertEqual(str(msg), 'peewee herman->: heh-heh!')