From f8de9a484e7e6d2820acd7d1b45077a7e7f6a9b0 Mon Sep 17 00:00:00 2001 From: Cal Date: Tue, 28 May 2024 12:20:54 -0600 Subject: [PATCH] avoid erroneous multimatch --- evennia/contrib/rpg/rpsystem/rpsystem.py | 2 +- evennia/contrib/rpg/rpsystem/tests.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/evennia/contrib/rpg/rpsystem/rpsystem.py b/evennia/contrib/rpg/rpsystem/rpsystem.py index b85237e2ad..ed044f0eca 100644 --- a/evennia/contrib/rpg/rpsystem/rpsystem.py +++ b/evennia/contrib/rpg/rpsystem/rpsystem.py @@ -1352,7 +1352,7 @@ class ContribRPObject(DefaultObject): results.extend( [ obj - for obj in search_obj(searched_obj.key, candidates=candidates, **kwargs) + for obj in search_obj(searched_obj.key, candidates=[searched_obj], **kwargs) if obj not in results ] ) diff --git a/evennia/contrib/rpg/rpsystem/tests.py b/evennia/contrib/rpg/rpsystem/tests.py index abef83a4ce..964ab4d3c7 100644 --- a/evennia/contrib/rpg/rpsystem/tests.py +++ b/evennia/contrib/rpg/rpsystem/tests.py @@ -356,6 +356,10 @@ class TestRPSystem(BaseEvenniaTest): result = self.speaker.get_search_result("something", candidates) self.assertIn(self.obj1, result) self.assertIn(self.obj2, result) + # search by sdesc with 2-disambiguator: only second object should be found + result = self.speaker.get_search_result("2-something", candidates) + self.assertNotIn(self.obj1, result) + self.assertIn(self.obj2, result) # search empty candidates: no objects should be found result = self.speaker.get_search_result("something", candidates=[]) self.assertNotIn(self.obj1, result)