make sure field & card models are not duplicated

This commit is contained in:
Damien Elmes 2009-01-14 15:35:16 +09:00
parent 93332079b5
commit dd5e7c45b4
2 changed files with 9 additions and 0 deletions

View file

@ -63,6 +63,7 @@ class FieldModel(object):
for p in class_mapper(FieldModel).iterate_properties:
setattr(new, p.key, getattr(self, p.key))
new.id = genID()
new.model = None
return new
mapper(FieldModel, fieldModelsTable)
@ -120,6 +121,7 @@ class CardModel(object):
for p in class_mapper(CardModel).iterate_properties:
setattr(new, p.key, getattr(self, p.key))
new.id = genID()
new.model = None
return new
mapper(CardModel, cardModelsTable)

View file

@ -138,6 +138,8 @@ def test_modelAddDelete():
def test_modelCopy():
deck = DeckStorage.Deck()
m = JapaneseModel()
assert len(m.fieldModels) == 3
assert len(m.cardModels) == 2
deck.addModel(m)
f = deck.newFact()
f['Expression'] = u'1'
@ -147,6 +149,11 @@ def test_modelCopy():
assert m2.id != m.id
assert m2.fieldModels[0].id != m.fieldModels[0].id
assert m2.cardModels[0].id != m.cardModels[0].id
assert len(m2.fieldModels) == 3
assert len(m.fieldModels) == 3
assert len(m2.fieldModels) == len(m.fieldModels)
assert len(m.cardModels) == 2
assert len(m2.cardModels) == 2
def test_media():
deck = DeckStorage.Deck()