diff --git a/evennia/commands/default/building.py b/evennia/commands/default/building.py index f0ae108f00..54536ff355 100644 --- a/evennia/commands/default/building.py +++ b/evennia/commands/default/building.py @@ -612,12 +612,12 @@ class CmdDesc(COMMAND_DEFAULT_CLASS): self.edit_handler() return - if self.rhs: + if '=' in self.args: # We have an = obj = caller.search(self.lhs) if not obj: return - desc = self.rhs + desc = self.rhs or '' else: obj = caller.location or self.msg("|rYou can't describe oblivion.|n") if not obj: diff --git a/evennia/commands/default/tests.py b/evennia/commands/default/tests.py index 19277c168a..386aef0905 100644 --- a/evennia/commands/default/tests.py +++ b/evennia/commands/default/tests.py @@ -315,6 +315,24 @@ class TestBuilding(CommandTest): def test_desc(self): self.call(building.CmdDesc(), "Obj2=TestDesc", "The description was set on Obj2(#5).") + def test_empty_desc(self): + """ + empty desc sets desc as '' + """ + o2d = self.obj2.db.desc + r1d = self.room1.db.desc + self.call(building.CmdDesc(), "Obj2=", "The description was set on Obj2(#5).") + assert self.obj2.db.desc == '' and self.obj2.db.desc != o2d + assert self.room1.db.desc == r1d + + def test_desc_default_to_room(self): + """no rhs changes room's desc""" + o2d = self.obj2.db.desc + r1d = self.room1.db.desc + self.call(building.CmdDesc(), "Obj2", "The description was set on Room(#1).") + assert self.obj2.db.desc == o2d + assert self.room1.db.desc == 'Obj2' and self.room1.db.desc != r1d + def test_wipe(self): confirm = building.CmdDestroy.confirm building.CmdDestroy.confirm = False