diff --git a/evennia/contrib/rpsystem.py b/evennia/contrib/rpsystem.py index 79d7e01c15..e2f9a43faf 100644 --- a/evennia/contrib/rpsystem.py +++ b/evennia/contrib/rpsystem.py @@ -899,7 +899,7 @@ class RecogHandler(object): # RP typeclasses #------------------------------------------------------------ -class RPObject(DefaultObject): +class ContribRPObject(DefaultObject): """ This class is meant as a mix-in or parent for objects in an rp-heavy game. It implements the base functionality for poses. @@ -909,7 +909,7 @@ class RPObject(DefaultObject): """ Called at initial creation. """ - super(RPObject, self).at_object_creation + super(ContribRPObject, self).at_object_creation # emoting/recog data self.db.pose = "" @@ -964,7 +964,7 @@ class RPObject(DefaultObject): self.msg("There is nothing here called '%s'." % searchdata) return # fall back to normal search - return super(RPObject, self).search(searchdata, **kwargs) + return super(ContribRPObject, self).search(searchdata, **kwargs) def get_display_name(self, looker, **kwargs): @@ -998,7 +998,7 @@ class RPObject(DefaultObject): return "%s%s%s" % (sdesc, idstr, pose) -class RPRoom(DefaultRoom): +class ContribRPRoom(DefaultRoom): """ Rooms don't have sdescs nor poses of their own, so we just modify `return_appearance` here to make sure it properly displays poses @@ -1038,7 +1038,7 @@ class RPRoom(DefaultRoom): return string -class RPCharacter(DefaultCharacter, RPObject): +class ContribRPCharacter(DefaultCharacter, ContribRPObject): """ This is a character class that has poses, sdesc and recog. """ @@ -1086,7 +1086,7 @@ class RPCharacter(DefaultCharacter, RPObject): """ Called at initial creation. """ - super(RPCharacter, self).at_object_creation() + super(ContribRPCharacter, self).at_object_creation() self.db._sdesc = "" self.db._sdesc_regex = "" diff --git a/evennia/contrib/tests.py b/evennia/contrib/tests.py index e696f1579c..0375f1117d 100644 --- a/evennia/contrib/tests.py +++ b/evennia/contrib/tests.py @@ -65,15 +65,15 @@ sdesc2 = "Another nice colliding sdesc-guy for tests" recog01 = "Mr Receiver" recog02 = "Mr Receiver2" recog10 = "Mr Sender" -emote = "With a flair, /me looks at /first and /colliding. She says \"This is a test.\"" +emote = "With a flair, /me looks at /first and /colliding sdesc-guy. She says \"This is a test.\"" class TestRPSystem(EvenniaTest): def setUp(self): super(TestRPSystem, self).setUp() - self.room = create_object(rpsystem.RPRoom, key="Location") - self.speaker = create_object(rpsystem.RPCharacter, key="Sender", location=self.room) - self.receiver1 = create_object(rpsystem.RPCharacter, key="Receiver1", location=self.room) - self.receiver2 = create_object(rpsystem.RPCharacter, key="Receiver2", location=self.room) + self.room = create_object(rpsystem.ContribRPRoom, key="Location") + self.speaker = create_object(rpsystem.ContribRPCharacter, key="Sender", location=self.room) + self.receiver1 = create_object(rpsystem.ContribRPCharacter, key="Receiver1", location=self.room) + self.receiver2 = create_object(rpsystem.ContribRPCharacter, key="Receiver2", location=self.room) def test_ordered_permutation_regex(self): self.assertEqual(rpsystem.ordered_permutation_regex(sdesc0), @@ -106,7 +106,7 @@ class TestRPSystem(EvenniaTest): def test_parse_language(self): self.assertEqual(rpsystem.parse_language(self.speaker, emote), - ('With a flair, /me looks at /first and /colliding. She says {##0}', + ('With a flair, /me looks at /first and /colliding sdesc-guy. She says {##0}', {'##0': (None, '"This is a test."')}) ) def parse_sdescs_and_recogs(self): @@ -122,7 +122,7 @@ class TestRPSystem(EvenniaTest): self.speaker.recog.add(self.receiver1, recog01) self.assertEqual(rpsystem.parse_sdescs_and_recogs(speaker, candidates, emote), result) - def send_emote(self): + def test_send_emote(self): speaker = self.speaker receiver1 = self.receiver1 receiver2 = self.receiver2 @@ -141,4 +141,12 @@ class TestRPSystem(EvenniaTest): self.assertEqual(self.out2, 'With a flair, {bA nice sender of emotes{n looks at {bThe first ' \ 'receiver of emotes.{n and {bReceiver2{n. She says {b{w"This is a test."{n{n') + def test_rpsearch(self): + self.speaker.sdesc.add(sdesc0) + self.receiver1.sdesc.add(sdesc1) + self.receiver2.sdesc.add(sdesc2) + self.speaker.msg = lambda text, **kwargs: setattr(self, "out0", text) + self.assertEqual(self.speaker.search("receiver of emotes"), self.receiver1) + self.assertEqual(self.speaker.search("colliding"), self.receiver2) +