mirror of
https://github.com/ankitects/anki.git
synced 2025-11-10 14:47:12 -05:00
when importing, tag cards as new, add unit test
This commit is contained in:
parent
724c1354a8
commit
77a6488f6d
4 changed files with 40 additions and 1 deletions
|
|
@ -12,6 +12,8 @@ from anki import DeckStorage
|
||||||
from anki.importing import Importer
|
from anki.importing import Importer
|
||||||
from anki.sync import SyncClient, SyncServer, BulkMediaSyncer
|
from anki.sync import SyncClient, SyncServer, BulkMediaSyncer
|
||||||
from anki.lang import _
|
from anki.lang import _
|
||||||
|
from anki.utils import ids2str
|
||||||
|
import time
|
||||||
|
|
||||||
class Anki10Importer(Importer):
|
class Anki10Importer(Importer):
|
||||||
|
|
||||||
|
|
@ -59,6 +61,17 @@ class Anki10Importer(Importer):
|
||||||
self.deck.updateProgress()
|
self.deck.updateProgress()
|
||||||
fids = [f[0] for f in res['added-facts']['facts']]
|
fids = [f[0] for f in res['added-facts']['facts']]
|
||||||
self.deck.addTags(fids, self.tagsToAdd)
|
self.deck.addTags(fids, self.tagsToAdd)
|
||||||
|
# mark import material as newly added
|
||||||
|
self.deck.s.statement(
|
||||||
|
"update cards set modified = :t where id in %s" %
|
||||||
|
ids2str([x[0] for x in res['added-cards']]), t=time.time())
|
||||||
|
self.deck.s.statement(
|
||||||
|
"update facts set modified = :t where id in %s" %
|
||||||
|
ids2str([x[0] for x in res['added-facts']['facts']]), t=time.time())
|
||||||
|
self.deck.s.statement(
|
||||||
|
"update models set modified = :t where id in %s" %
|
||||||
|
ids2str([x['id'] for x in res['added-models']]), t=time.time())
|
||||||
|
# update total and refresh
|
||||||
self.total = len(res['added-facts']['facts'])
|
self.total = len(res['added-facts']['facts'])
|
||||||
src.s.rollback()
|
src.s.rollback()
|
||||||
self.deck.flushMod()
|
self.deck.flushMod()
|
||||||
|
|
|
||||||
|
|
@ -544,7 +544,6 @@ values
|
||||||
"delete from cardsDeleted where cardId in %s" %
|
"delete from cardsDeleted where cardId in %s" %
|
||||||
ids2str([c[0] for c in cards]))
|
ids2str([c[0] for c in cards]))
|
||||||
|
|
||||||
|
|
||||||
def deleteCards(self, ids):
|
def deleteCards(self, ids):
|
||||||
self.deck.deleteCards(ids)
|
self.deck.deleteCards(ids)
|
||||||
|
|
||||||
|
|
|
||||||
BIN
tests/importing/test10-3.anki
Normal file
BIN
tests/importing/test10-3.anki
Normal file
Binary file not shown.
|
|
@ -8,6 +8,7 @@ from anki import DeckStorage
|
||||||
from anki.importing import anki10, csv, mnemosyne10
|
from anki.importing import anki10, csv, mnemosyne10
|
||||||
from anki.stdmodels import BasicModel
|
from anki.stdmodels import BasicModel
|
||||||
from anki.facts import Fact
|
from anki.facts import Fact
|
||||||
|
from anki.sync import SyncClient, SyncServer
|
||||||
|
|
||||||
from anki.db import *
|
from anki.db import *
|
||||||
|
|
||||||
|
|
@ -65,3 +66,29 @@ def test_anki10():
|
||||||
i.doImport()
|
i.doImport()
|
||||||
assert i.total == 0
|
assert i.total == 0
|
||||||
deck.s.rollback()
|
deck.s.rollback()
|
||||||
|
|
||||||
|
def test_anki10_modtime():
|
||||||
|
deck1 = DeckStorage.Deck()
|
||||||
|
deck2 = DeckStorage.Deck()
|
||||||
|
client = SyncClient(deck1)
|
||||||
|
server = SyncServer(deck2)
|
||||||
|
client.setServer(server)
|
||||||
|
deck1.addModel(BasicModel())
|
||||||
|
f = deck1.newFact()
|
||||||
|
f['Front'] = u"foo"; f['Back'] = u"bar"
|
||||||
|
deck1.addFact(f)
|
||||||
|
assert deck1.cardCount == 1
|
||||||
|
assert deck2.cardCount == 0
|
||||||
|
client.sync()
|
||||||
|
assert deck1.cardCount == 1
|
||||||
|
assert deck2.cardCount == 1
|
||||||
|
file_ = unicode(os.path.join(testDir, "importing/test10-3.anki"))
|
||||||
|
file = "/tmp/test10-3.anki"
|
||||||
|
shutil.copy(file_, file)
|
||||||
|
i = anki10.Anki10Importer(deck1, file)
|
||||||
|
i.doImport()
|
||||||
|
client.sync()
|
||||||
|
assert i.total == 1
|
||||||
|
assert deck2.s.scalar("select count(*) from cards") == 2
|
||||||
|
assert deck2.s.scalar("select count(*) from facts") == 2
|
||||||
|
assert deck2.s.scalar("select count(*) from models") == 2
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue