def test_auto_incr(self): from example.model import User, UserNote # create user and user notes user = User(id=1, name=u'Bob') msg0 = UserNote(id=11, content='I ray') msg1 = UserNote(id=22, content='Jah') user.notes = [msg0, msg1] self.sqla_session.add(user) self.sqla_session.commit() key_user_v0 = self.versioner.get_multi_keys([user]) key_msg0_v0 = self.versioner.get_multi_keys([msg0]) key_msg1_v0 = self.versioner.get_multi_keys([msg1]) # modify user and msg0 user.name = 'Bob Marley' msg0.content = 'I RAY' self.sqla_session.commit() key_user_v1 = self.versioner.get_multi_keys([user]) key_msg0_v1 = self.versioner.get_multi_keys([msg0]) # keys are automaticaly changed self.assertNotEqual(key_user_v0, key_user_v1) self.assertNotEqual(key_msg0_v0, key_msg0_v1) # not msg1 self.assertEqual(key_msg1_v0, self.versioner.get_multi_keys([msg1])) # we can get a key via a new object instance self.assertEqual( key_msg0_v1, self.versioner.get_multi_keys([UserNote(id=11, user_id=user.id)]), ) user = self.sqla_session.query(User).get(1) # remove msg0 user.notes.pop(0) user_id = user.id self.sqla_session.commit() # msg0 key has changed key_msg0_v2 = self.versioner.get_multi_keys( [UserNote(id=11, user_id=user_id)]) self.assertNotEqual(key_msg0_v1, key_msg0_v2) # delete user which cascade delete msg1 user = self.sqla_session.query(User).get(1) self.sqla_session.delete(user) self.sqla_session.commit() self.assertNotEqual(key_user_v1, self.versioner.get_multi_keys([user])) self.assertNotEqual(key_msg1_v0, self.versioner.get_multi_keys([msg1]))
def test_auto_incr(self): from example.model import User, UserNote # create user and user notes user = User(id=1, name=u"Bob") msg0 = UserNote(id=11, content="I ray") msg1 = UserNote(id=22, content="Jah") user.notes = [msg0, msg1] self.sqla_session.add(user) self.sqla_session.commit() key_user_v0 = self.versioner.get_multi_keys([user]) key_msg0_v0 = self.versioner.get_multi_keys([msg0]) key_msg1_v0 = self.versioner.get_multi_keys([msg1]) # modify user and msg0 user.name = "Bob Marley" msg0.content = "I RAY" self.sqla_session.commit() key_user_v1 = self.versioner.get_multi_keys([user]) key_msg0_v1 = self.versioner.get_multi_keys([msg0]) # keys are automaticaly changed self.assertNotEqual(key_user_v0, key_user_v1) self.assertNotEqual(key_msg0_v0, key_msg0_v1) # not msg1 self.assertEqual(key_msg1_v0, self.versioner.get_multi_keys([msg1])) # we can get a key via a new object instance self.assertEqual(key_msg0_v1, self.versioner.get_multi_keys([UserNote(id=11, user_id=user.id)])) user = self.sqla_session.query(User).get(1) # remove msg0 user.notes.pop(0) user_id = user.id self.sqla_session.commit() # msg0 key has changed key_msg0_v2 = self.versioner.get_multi_keys([UserNote(id=11, user_id=user_id)]) self.assertNotEqual(key_msg0_v1, key_msg0_v2) # delete user which cascade delete msg1 user = self.sqla_session.query(User).get(1) self.sqla_session.delete(user) self.sqla_session.commit() self.assertNotEqual(key_user_v1, self.versioner.get_multi_keys([user])) self.assertNotEqual(key_msg1_v0, self.versioner.get_multi_keys([msg1]))
def test_unicity_composite_pk(self): from example.model import User, UserNote msg0 = UserNote(id=11, content="I ray") msg1 = UserNote(id=22, content="Jah") user = User(name=u"Bob Marley") user.notes = [msg0, msg1] self.sqla_session.add(user) self.sqla_session.commit() self.assertNotEqual(self.versioner.get_multi_keys([msg0]), self.versioner.get_multi_keys([msg1]))
def test_unicity_composite_pk(self): from example.model import User, UserNote msg0 = UserNote(id=11, content='I ray') msg1 = UserNote(id=22, content='Jah') user = User(name=u'Bob Marley') user.notes = [msg0, msg1] self.sqla_session.add(user) self.sqla_session.commit() self.assertNotEqual( self.versioner.get_multi_keys([msg0]), self.versioner.get_multi_keys([msg1]), )