mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00
Return a copy of note type in ModelManager.get() (#3865)
* Return a copy of note type in ModelManager.get()
* Update tests
* Revert "Return a copy of note type in ModelManager.get()"
This reverts commit 04ef186336
.
* Add note to .get()
This commit is contained in:
parent
45bb56808a
commit
f4a0598f2f
4 changed files with 28 additions and 9 deletions
|
@ -151,7 +151,10 @@ class ModelManager(DeprecatedNamesMixin):
|
|||
return None
|
||||
|
||||
def get(self, id: NotetypeId) -> NotetypeDict | None:
|
||||
"Get model with ID, or None."
|
||||
"""Get model with ID, or None.
|
||||
|
||||
This returns a reference to a cached dict. Copy the returned model before modifying it if you're not calling .update_dict() afterward.
|
||||
"""
|
||||
# deal with various legacy input types
|
||||
if id is None:
|
||||
return None
|
||||
|
|
|
@ -48,7 +48,9 @@ def test_remove():
|
|||
deck1 = col.decks.id("deck1")
|
||||
note = col.newNote()
|
||||
note["Front"] = "1"
|
||||
note.note_type()["did"] = deck1
|
||||
note_type = note.note_type()
|
||||
note_type["did"] = deck1
|
||||
col.models.update_dict(note_type)
|
||||
col.addNote(note)
|
||||
c = note.cards()[0]
|
||||
assert c.did == deck1
|
||||
|
|
|
@ -35,7 +35,9 @@ def setup1():
|
|||
note = col.newNote()
|
||||
note["Front"] = "baz"
|
||||
note["Back"] = "qux"
|
||||
note.note_type()["did"] = col.decks.id("new col")
|
||||
note_type = note.note_type()
|
||||
note_type["did"] = col.decks.id("new col")
|
||||
col.models.update_dict(note_type)
|
||||
col.addNote(note)
|
||||
|
||||
|
||||
|
|
|
@ -85,7 +85,9 @@ def test_newLimits():
|
|||
note = col.newNote()
|
||||
note["Front"] = str(i)
|
||||
if i > 4:
|
||||
note.note_type()["did"] = deck2
|
||||
note_type = note.note_type()
|
||||
note_type["did"] = deck2
|
||||
col.models.update_dict(note_type)
|
||||
col.addNote(note)
|
||||
# give the child deck a different configuration
|
||||
c2 = col.decks.add_config_returning_id("new conf")
|
||||
|
@ -936,7 +938,9 @@ def test_deckDue():
|
|||
# and one that's a child
|
||||
note = col.newNote()
|
||||
note["Front"] = "two"
|
||||
default1 = note.note_type()["did"] = col.decks.id("Default::1")
|
||||
note_type = note.note_type()
|
||||
default1 = note_type["did"] = col.decks.id("Default::1")
|
||||
col.models.update_dict(note_type)
|
||||
col.addNote(note)
|
||||
# make it a review card
|
||||
c = note.cards()[0]
|
||||
|
@ -946,12 +950,16 @@ def test_deckDue():
|
|||
# add one more with a new deck
|
||||
note = col.newNote()
|
||||
note["Front"] = "two"
|
||||
note.note_type()["did"] = col.decks.id("foo::bar")
|
||||
note_type = note.note_type()
|
||||
note_type["did"] = col.decks.id("foo::bar")
|
||||
col.models.update_dict(note_type)
|
||||
col.addNote(note)
|
||||
# and one that's a sibling
|
||||
note = col.newNote()
|
||||
note["Front"] = "three"
|
||||
note.note_type()["did"] = col.decks.id("foo::baz")
|
||||
note_type = note.note_type()
|
||||
note_type["did"] = col.decks.id("foo::baz")
|
||||
col.models.update_dict(note_type)
|
||||
col.addNote(note)
|
||||
assert len(col.decks.all_names_and_ids()) == 5
|
||||
tree = col.sched.deck_due_tree().children
|
||||
|
@ -991,12 +999,16 @@ def test_deckFlow():
|
|||
# and one that's a child
|
||||
note = col.newNote()
|
||||
note["Front"] = "two"
|
||||
note.note_type()["did"] = col.decks.id("Default::2")
|
||||
note_type = note.note_type()
|
||||
note_type["did"] = col.decks.id("Default::2")
|
||||
col.models.update_dict(note_type)
|
||||
col.addNote(note)
|
||||
# and another that's higher up
|
||||
note = col.newNote()
|
||||
note["Front"] = "three"
|
||||
default1 = note.note_type()["did"] = col.decks.id("Default::1")
|
||||
note_type = note.note_type()
|
||||
default1 = note_type["did"] = col.decks.id("Default::1")
|
||||
col.models.update_dict(note_type)
|
||||
col.addNote(note)
|
||||
assert col.sched.counts() == (3, 0, 0)
|
||||
# should get top level one first, then ::1, then ::2
|
||||
|
|
Loading…
Reference in a new issue