more unit tests, fix bugs

- make sure gconf has an id
- merge deck conf
This commit is contained in:
Damien Elmes 2011-09-09 22:34:50 +09:00
parent 6cfe112f91
commit 9aad5c1166
3 changed files with 49 additions and 2 deletions

View file

@ -135,11 +135,13 @@ values(1,0,0,0,%(v)s,0,0,'','{}','','','{}');
g['name'] = _("Default")
g['conf'] = 1
g['mod'] = intTime()
gc = anki.groups.defaultConf.copy()
gc['id'] = 1
db.execute("""
update deck set conf = ?, groups = ?, gconf = ?""",
simplejson.dumps(anki.deck.defaultConf),
simplejson.dumps({'1': g}),
simplejson.dumps({'1': anki.groups.defaultConf}))
simplejson.dumps({'1': gc}))
def _updateIndices(db):
"Add indices to the DB."

View file

@ -126,6 +126,8 @@ class Syncer(object):
self.mergeFacts(lchg['facts'], rchg['facts'])
self.mergeCards(lchg['cards'], rchg['cards'])
self.mergeTags(rchg['tags'])
if 'conf' in rchg:
self.mergeConf(rchg['conf'])
def finish(self, mod=None):
# fixme: dynamic index?
@ -258,7 +260,8 @@ class Syncer(object):
def getConf(self):
return self.deck.conf
# fixme: merging conf
def mergeConf(self, conf):
self.deck.conf = conf
# Merging
##########################################################################

View file

@ -151,6 +151,48 @@ def test_cards():
assert client.sync() == "success"
assert not deck2.db.scalar("select 1 from cards where id = ?", card.id)
@nose.with_setup(setup_modified)
def test_tags():
test_sync()
assert deck1.tags.all() == deck2.tags.all()
deck1.tags.register(["abc"])
deck2.tags.register(["xyz"])
assert deck1.tags.all() != deck2.tags.all()
deck1.save(mod=intTime()+1)
deck2.save(mod=intTime()+2)
assert client.sync() == "success"
assert deck1.tags.all() == deck2.tags.all()
@nose.with_setup(setup_modified)
def test_groups():
test_sync()
assert len(deck1.groups.all()) == 1
assert len(deck1.groups.all()) == len(deck2.groups.all())
deck1.groups.id("new")
assert len(deck1.groups.all()) != len(deck2.groups.all())
time.sleep(0.1)
deck2.groups.id("new2")
deck1.save(mod=intTime()+1)
deck2.save(mod=intTime()+2)
assert client.sync() == "success"
assert deck1.tags.all() == deck2.tags.all()
assert len(deck1.groups.all()) == len(deck2.groups.all())
assert len(deck1.groups.all()) == 3
assert deck1.groups.conf(1)['maxTaken'] == 60
deck2.groups.conf(1)['maxTaken'] = 30
deck2.groups.save(deck2.groups.conf(1))
deck2.save(mod=intTime()+2)
assert client.sync() == "success"
assert deck1.groups.conf(1)['maxTaken'] == 30
@nose.with_setup(setup_modified)
def test_conf():
test_sync()
assert deck2.conf['topGroup'] == 1
deck1.conf['topGroup'] = 2
deck1.save(mod=intTime()+2)
assert client.sync() == "success"
assert deck2.conf['topGroup'] == 2
def _test_speed():
t = time.time()