Example #1
0
    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]))
Example #4
0
    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]),
        )