Пример #1
0
    def test_unicity_simple_pk(self):
        from example.model import User

        user0 = User(name=u'Bob Marley')
        user1 = User(name=u'Peter Tosh')

        self.sqla_session.add(user0)
        self.sqla_session.add(user1)
        self.sqla_session.commit()

        self.assertNotEqual(
            self.versioner.get_multi_keys([user0]),
            self.versioner.get_multi_keys([user1]),
        )
Пример #2
0
    def setUp(self):
        os.environ['CACHING_ENABLED'] = 'false'

        # creating app to setup cache and decorate stuff.
        self.app
        from example.model import User, Session
        session = Session()
        session.add(User(id=1, name='Bob'))
        session.commit()
Пример #3
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]))
Пример #4
0
async def send(agent, count=100):
    await asyncio.gather(
        *[
            agent_worker.send(
                key="Onna",
                value=User(name=f"Onna-{age}", age=age + 1, city=City(name="Durham")),
            )
            for age in range(count)
        ]
    )
Пример #5
0
    def setUp(self):
        # creating app to setup cache and decorate stuff.
        self.app
        from example.model import User, Session
        session = Session()
        session.add(User(id=1, name='Bob'))
        session.commit()
        session.close()

        self.cache_client.client.delete('cache')
Пример #6
0
    def test_incr(self):
        from example.model import User
        user = User()

        key_cls_0 = self.versioner.get_multi_keys([User])
        key_obj_0 = self.versioner.get_multi_keys([user])

        self.versioner.incr(User)
        self.versioner.incr(user)

        key_cls_1 = self.versioner.get_multi_keys([User])
        key_obj_1 = self.versioner.get_multi_keys([user])

        self.assertNotEqual(key_cls_1, key_cls_0)
        self.assertNotEqual(key_obj_1, key_obj_0)
Пример #7
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]),
        )
Пример #8
0
async def send(count=100):
    producer = ProducerComponent(
        User,
        key_serializer=lambda key: key.encode(),
        bootstrap_servers="kafka-intra01.intra.onna.internal:9092",
    )
    await producer.start()
    try:
        print(await asyncio.gather(*[
            producer.send(
                key=f"Onna-{age}",
                value=User(
                    name=f"Onna-{age}", age=age + 1, city=City(name="Durham")),
            ) for age in range(count)
        ]))
    finally:
        await producer.stop()