[#1928] fix nested delete bug
This commit is contained in:
parent
1a1203fcb6
commit
2dfb327f88
2 changed files with 7 additions and 3 deletions
|
|
@ -1695,9 +1695,9 @@ class CmdSetAttribute(ObjManipCommand):
|
||||||
if nested_keys:
|
if nested_keys:
|
||||||
del_key = nested_keys[-1]
|
del_key = nested_keys[-1]
|
||||||
val = obj.attributes.get(key)
|
val = obj.attributes.get(key)
|
||||||
val = self.do_nested_lookup(val, *nested_keys[:-1])
|
deep = self.do_nested_lookup(val, *nested_keys[:-1])
|
||||||
if val is not self.not_found:
|
if deep is not self.not_found:
|
||||||
del val[del_key]
|
del deep[del_key]
|
||||||
obj.attributes.add(key, val)
|
obj.attributes.add(key, val)
|
||||||
return "\nDeleted attribute '%s' (= nested) from %s." % (attr, obj.name)
|
return "\nDeleted attribute '%s' (= nested) from %s." % (attr, obj.name)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -566,6 +566,10 @@ class TestBuilding(CommandTest):
|
||||||
"Obj/test3=[{'one': 1}]", "Created attribute Obj/test3 = [{'one': 1}]")
|
"Obj/test3=[{'one': 1}]", "Created attribute Obj/test3 = [{'one': 1}]")
|
||||||
self.call(building.CmdSetAttribute(), "Obj/test3[0]['one']", "Attribute Obj/test3[0]['one'] = 1")
|
self.call(building.CmdSetAttribute(), "Obj/test3[0]['one']", "Attribute Obj/test3[0]['one'] = 1")
|
||||||
self.call(building.CmdSetAttribute(), "Obj/test3[0]", "Attribute Obj/test3[0] = {'one': 1}")
|
self.call(building.CmdSetAttribute(), "Obj/test3[0]", "Attribute Obj/test3[0] = {'one': 1}")
|
||||||
|
self.call(building.CmdSetAttribute(),
|
||||||
|
"Obj/test3[0]['one'] =", "Deleted attribute 'test3[0]['one']' (= nested) from Obj.")
|
||||||
|
self.call(building.CmdSetAttribute(), "Obj/test3[0]", "Attribute Obj/test3[0] = {}")
|
||||||
|
self.call(building.CmdSetAttribute(), "Obj/test3", "Attribute Obj/test3 = [{}]")
|
||||||
|
|
||||||
# Naughty keys
|
# Naughty keys
|
||||||
self.call(building.CmdSetAttribute(),
|
self.call(building.CmdSetAttribute(),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue