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']+ "::",
|
grp['name'] = grp['name'].replace(g['name']+ "::",
|
||||||
newName + "::")
|
newName + "::")
|
||||||
self.save(grp)
|
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
|
g['name'] = newName
|
||||||
self.save(g)
|
self.save(g)
|
||||||
# finally, ensure we have parents
|
# finally, ensure we have parents
|
||||||
|
|
|
@ -84,4 +84,13 @@ def test_rename():
|
||||||
for n in "yo", "yo::two", "yo::two::three":
|
for n in "yo", "yo::two", "yo::two::three":
|
||||||
assert n in d.groups.allNames()
|
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