Merge pull request #2000 from strikaco/msgrender

Fixes Msg str rendering where no key attribute exists for sender
This commit is contained in:
Griatch 2019-12-16 19:04:07 +01:00 committed by GitHub
commit 93e00dd593
2 changed files with 9 additions and 2 deletions

View file

@ -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))

View file

@ -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!')