From 754dcef4f7eb0b86806ce2bd77d0dd5208345423 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sun, 24 Apr 2011 11:45:26 +0900 Subject: [PATCH] handle the case where learning cards have a grade higher than their config --- anki/sched.py | 6 +++++- tests/test_sched.py | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/anki/sched.py b/anki/sched.py index 2e80259a2..3755fc7d1 100644 --- a/anki/sched.py +++ b/anki/sched.py @@ -327,7 +327,11 @@ limit %d""" % (self._groupLimit(), self.reportLimit), lim=self.dayCutoff) self._logLrn(card, ease, conf, leaving, type) def _delayForGrade(self, conf, grade): - return conf['delays'][grade]*60 + try: + delay = conf['delays'][grade] + except IndexError: + delay = conf['delays'][-1] + return delay*60 def _lrnConf(self, card): conf = self._cardConf(card) diff --git a/tests/test_sched.py b/tests/test_sched.py index 1f300502a..cf826e909 100644 --- a/tests/test_sched.py +++ b/tests/test_sched.py @@ -71,6 +71,20 @@ def test_newOrder(): # cards should be sorted by id assert d.sched.newQueue == list(reversed(sorted(d.sched.newQueue))) +def test_newBoxes(): + d = getEmptyDeck() + f = d.newFact() + f['Front'] = u"one" + d.addFact(f) + d.reset() + c = d.sched.getCard() + d.sched.answerCard(c, 2) + d.sched.answerCard(c, 2) + assert c.grade == 2 + d.sched._cardConf(c)['new']['delays'] = [0.5] + # should handle gracefully + d.sched.answerCard(c, 2) + def test_learn(): d = getEmptyDeck() # add a fact