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

View file

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