mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
add tests for leech handling
This commit is contained in:
parent
908dccc2c0
commit
a7ec356e0d
2 changed files with 21 additions and 7 deletions
|
@ -9,6 +9,7 @@ from heapq import *
|
|||
from anki.utils import parseTags, ids2str, intTime
|
||||
from anki.lang import _
|
||||
from anki.consts import *
|
||||
from anki.hooks import runHook
|
||||
|
||||
# the standard Anki scheduler
|
||||
class Scheduler(object):
|
||||
|
@ -276,7 +277,7 @@ queue = 1 %s and due <= :lim limit %d)""" % (
|
|||
self.revQueue = self.db.all("""
|
||||
select id from cards where
|
||||
queue = 1 %s and due <= :lim order by %s limit %d""" % (
|
||||
self._groupLimit("rev"), self.revOrder(), self.queueLimit),
|
||||
self._groupLimit("rev"), self._revOrder(), self.queueLimit),
|
||||
lim=self.today)
|
||||
if self.deck.qconf['revCardOrder'] == REV_CARDS_RANDOM:
|
||||
random.shuffle(self.revQueue)
|
||||
|
@ -293,15 +294,11 @@ queue = 1 %s and due <= :lim order by %s limit %d""" % (
|
|||
self._resetReview()
|
||||
return self.revQueue
|
||||
|
||||
def revOrder(self):
|
||||
def _revOrder(self):
|
||||
return ("ivl desc",
|
||||
"ivl",
|
||||
"due")[self.deck.qconf['revCardOrder']]
|
||||
|
||||
# FIXME: rewrite
|
||||
def showFailedLast(self):
|
||||
return self.collapseTime or not self.delay0
|
||||
|
||||
# Answering a review card
|
||||
##########################################################################
|
||||
|
||||
|
@ -424,7 +421,8 @@ queue = 1 %s and due <= :lim order by %s limit %d""" % (
|
|||
f.flush()
|
||||
# handle
|
||||
if conf['leechAction'][0] == "suspend":
|
||||
self.deck.suspendCard(card)
|
||||
self.suspendCards([card.id])
|
||||
card.queue = -1
|
||||
# notify UI
|
||||
runHook("leech", card)
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import time
|
|||
from tests.shared import assertException, getEmptyDeck
|
||||
from anki.stdmodels import BasicModel
|
||||
from anki.utils import stripHTML, intTime
|
||||
from anki.hooks import addHook
|
||||
|
||||
def test_basics():
|
||||
d = getEmptyDeck()
|
||||
|
@ -199,3 +200,18 @@ def test_reviews():
|
|||
assert c.due == d.sched.today + 351
|
||||
# factor should have been increased
|
||||
assert c.factor == 2650
|
||||
# leech handling
|
||||
##################################################
|
||||
c = copy.copy(cardcopy)
|
||||
c.lapses = 15
|
||||
c.flush()
|
||||
# steup hook
|
||||
hooked = []
|
||||
def onLeech(card):
|
||||
hooked.append(1)
|
||||
addHook("leech", onLeech)
|
||||
d.sched.answerCard(c, 1)
|
||||
assert hooked
|
||||
assert c.queue == -1
|
||||
c.load()
|
||||
assert c.queue == -1
|
||||
|
|
Loading…
Reference in a new issue