make sure revlog is removed on immediate delete

This commit is contained in:
Damien Elmes 2011-03-13 18:46:25 +09:00
parent f96a495b53
commit 1dc3a0ad4a
2 changed files with 6 additions and 0 deletions

View file

@ -317,6 +317,7 @@ select id from facts where id not in (select distinct fid from cards)""")
if self.schemaDirty():
# immediate delete?
self.db.execute("delete from cards where id in %s" % sids)
self.db.execute("delete from revlog where cid in %s" % sids)
# remove any dangling facts
self._deleteDanglingFacts()
else:

View file

@ -54,11 +54,16 @@ def test_delete():
cid = f.cards()[0].id
# when the schema is dirty, deletion should be immediate
assert deck.schemaDirty() == True
deck.reset()
deck.sched.answerCard(deck.sched.getCard(), 2)
assert deck.db.scalar("select count() from revlog") == 1
deck.deleteCard(cid)
assert deck.cardCount() == 0
assert deck.factCount() == 0
assert deck.db.scalar("select count() from facts") == 0
assert deck.db.scalar("select count() from cards") == 0
assert deck.db.scalar("select count() from fsums") == 0
assert deck.db.scalar("select count() from revlog") == 0
# add the fact back
deck.addFact(f)
assert deck.cardCount() == 1