個人とチームの2つのテーブルがあります。それぞれが他と多対多の関係にあります。
関数でこれを行います(テストの各関数の前に、私の場合は3回setUp
呼び出されます)
p = Person(fname=u"John", lname=u"Doe")
Team(name=u"Anon", persons=[p])
session.commit()
そして私の機能(テストの各機能の後にtearDown
呼び出されます)
Person.query.delete()
Team.query.delete()
session.commit()
最初のテストはパスしますがsetUp
、2 回目に が呼び出されると、次のようになりました。
IntegrityError: (IntegrityError) columns person_id, team_id are not unique u'INSERT INTO team_persons__person_teams (person_id, team_id) VALUES (?, ?)' (5, 1)
delete が最初に行を実際に削除しなかったようです。なぜこれが起こるのか分かりません。