mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
ensure top level properties updated on rename
This commit is contained in:
parent
f37f4aff96
commit
1ce5a7552e
2 changed files with 18 additions and 2 deletions
|
@ -181,7 +181,14 @@ class GroupManager(object):
|
|||
grp['name'] = grp['name'].replace(g['name']+ "::",
|
||||
newName + "::")
|
||||
self.save(grp)
|
||||
# then update provided group
|
||||
# adjust top level conf
|
||||
if "::" in newName and "::" not in g['name']:
|
||||
for k in defaultTopConf.keys():
|
||||
del g[k]
|
||||
elif "::" not in newName and "::" in g['name']:
|
||||
for k,v in defaultTopConf.items():
|
||||
g[k] = v
|
||||
# adjust name and save
|
||||
g['name'] = newName
|
||||
self.save(g)
|
||||
# finally, ensure we have parents
|
||||
|
|
|
@ -84,4 +84,13 @@ def test_rename():
|
|||
for n in "yo", "yo::two", "yo::two::three":
|
||||
assert n in d.groups.allNames()
|
||||
|
||||
|
||||
def test_topRename():
|
||||
d = getEmptyDeck()
|
||||
id = d.groups.id("hello::world")
|
||||
# when moving to or from top level, properties should be updated
|
||||
assert 'newSpread' in d.groups.get(d.groups.id("hello"))
|
||||
assert 'newSpread' not in d.groups.get(d.groups.id("hello::world"))
|
||||
d.groups.rename(d.groups.get(d.groups.id("hello")), "foo::bar")
|
||||
assert 'newSpread' not in d.groups.get(d.groups.id("foo::bar"))
|
||||
d.groups.rename(d.groups.get(d.groups.id("foo::bar")), "hello")
|
||||
assert 'newSpread' in d.groups.get(d.groups.id("hello"))
|
||||
|
|
Loading…
Reference in a new issue