def test(store): """ Bug report from Stefan Karlsson on Dec 3 2001. Obj refs can be incorrectly stored to the database as zeroes for newly created objects. """ from Bar import Bar from Foo import Foo from BarReq import BarReq # Since we're the second empty test, double check that the db is really empty assert len(store.fetchObjectsOfClass(Bar)) == 0 assert len(store.fetchObjectsOfClass(Foo)) == 0 bar = Bar() foo = Foo() store.addObject(bar) store.addObject(foo) bar.setFoo(foo) store.saveChanges() bars = store.fetchObjectsOfClass(Bar) assert len(bars) == 1 bar2 = bars[0] assert bar2 is bar assert bar.foo() is not None # the sign of the bug in question assert bar.foo() is foo # what we should expect store.clear() bar = store.fetchObjectsOfClass(Bar)[0] assert bar.foo() is not None