Пример #1
0
 def setUp(self):
     self.engine = create_engine('sqlite:///:memory:')
     self.store = SqlStore(self.engine)
     msgs = [{
         "i": 0,
         "topic": "org.foo.bar",
         "msg_id": "11111111-1111-1111-1111-111111111111",
         "timestamp": 2,
         "seq_id": 1,
         "msg": {
             "foo": "bar"
         },
     }, {
         "i": 1,
         "topic": "org.foo.bar",
         "msg_id": "22222222-2222-2222-2222-222222222222",
         "timestamp": 10,
         "seq_id": 2,
         "msg": {
             "foo": "baz"
         },
     }]
     session = self.store.session_class()
     for m in msgs:
         session.add(
             SqlMessage(seq_id=m['seq_id'],
                        uuid=m['msg_id'],
                        timestamp=datetime.fromtimestamp(m['timestamp']),
                        topic=m['topic'],
                        msg=json.dumps(m)))
     session.commit()
Пример #2
0
 def setUp(self):
     self.engine = create_engine('sqlite:///:memory:')
     self.store = SqlStore(self.engine)
     msgs = [
         {
             "i": 0,
             "topic": "org.foo.bar",
             "msg_id": "11111111-1111-1111-1111-111111111111",
             "timestamp": 2,
             "seq_id": 1,
             "msg": {"foo": "bar"},
         },
         {
             "i": 1,
             "topic": "org.foo.bar",
             "msg_id": "22222222-2222-2222-2222-222222222222",
             "timestamp": 10,
             "seq_id": 2,
             "msg": {"foo": "baz"},
         }
     ]
     session = self.store.session_class()
     for m in msgs:
         session.add(SqlMessage(
             seq_id=m['seq_id'],
             uuid=m['msg_id'],
             timestamp=datetime.fromtimestamp(m['timestamp']),
             topic=m['topic'],
             msg=json.dumps(m)
         ))
     session.commit()
Пример #3
0
class TestSqlStore(unittest.TestCase):
    def setUp(self):
        self.engine = create_engine('sqlite:///:memory:')
        self.store = SqlStore(self.engine)
        msgs = [{
            "i": 0,
            "topic": "org.foo.bar",
            "msg_id": "11111111-1111-1111-1111-111111111111",
            "timestamp": 2,
            "seq_id": 1,
            "msg": {
                "foo": "bar"
            },
        }, {
            "i": 1,
            "topic": "org.foo.bar",
            "msg_id": "22222222-2222-2222-2222-222222222222",
            "timestamp": 10,
            "seq_id": 2,
            "msg": {
                "foo": "baz"
            },
        }]
        session = self.store.session_class()
        for m in msgs:
            session.add(
                SqlMessage(seq_id=m['seq_id'],
                           uuid=m['msg_id'],
                           timestamp=datetime.fromtimestamp(m['timestamp']),
                           topic=m['topic'],
                           msg=json.dumps(m)))
        session.commit()

    def test_add(self):
        orig_msg = {
            "i": 2,
            "topic": "org.foo.bar",
            "msg_id": "33333333-3333-3333-3333-333333333333",
            "timestamp": 20,
            "msg": {
                "foo": "foo"
            }
        }
        # make a copy to avoid squewing the comparison
        ret = self.store.add(dict(orig_msg))

        orig_msg['seq_id'] = 3
        self.assertDictEqual(ret, orig_msg)

        session = self.store.session_class()
        sql_msg = session.query(SqlMessage)\
            .filter(SqlMessage.seq_id == 3).one()
        self.assertDictEqual(json.loads(sql_msg.msg), orig_msg)

    def test_get_seq_id(self):
        first = self.store.get({"seq_id": 1})
        assert len(first) == 1 and first[0]['i'] == 0

    def test_get_time(self):
        first, second = self.store.get({"time": [0, 15]})
        assert ((first['i'] == 0 and second['i'] == 1)
                or (first['i'] == 1 and second['i'] == 0))

    @raises(ValueError)
    def test_get_wrong_seq_id(self):
        first = self.store.get({"seq_id": 18})

    @raises(ValueError)
    def test_get_illformed_time(self):
        first, second = self.store.get({"time": [0, 15, 3]})
Пример #4
0
class TestSqlStore(unittest.TestCase):
    def setUp(self):
        self.engine = create_engine('sqlite:///:memory:')
        self.store = SqlStore(self.engine)
        msgs = [
            {
                "i": 0,
                "topic": "org.foo.bar",
                "msg_id": "11111111-1111-1111-1111-111111111111",
                "timestamp": 2,
                "seq_id": 1,
                "msg": {"foo": "bar"},
            },
            {
                "i": 1,
                "topic": "org.foo.bar",
                "msg_id": "22222222-2222-2222-2222-222222222222",
                "timestamp": 10,
                "seq_id": 2,
                "msg": {"foo": "baz"},
            }
        ]
        session = self.store.session_class()
        for m in msgs:
            session.add(SqlMessage(
                seq_id=m['seq_id'],
                uuid=m['msg_id'],
                timestamp=datetime.fromtimestamp(m['timestamp']),
                topic=m['topic'],
                msg=json.dumps(m)
            ))
        session.commit()

    def test_add(self):
        orig_msg = {
            "i": 2,
            "topic": "org.foo.bar",
            "msg_id": "33333333-3333-3333-3333-333333333333",
            "timestamp": 20,
            "msg": {"foo": "foo"}
        }
        # make a copy to avoid squewing the comparison
        ret = self.store.add(dict(orig_msg))

        orig_msg['seq_id'] = 3
        self.assertDictEqual(ret, orig_msg)

        session = self.store.session_class()
        sql_msg = session.query(SqlMessage)\
            .filter(SqlMessage.seq_id == 3).one()
        self.assertDictEqual(json.loads(sql_msg.msg), orig_msg)

    def test_get_seq_id(self):
        first = self.store.get({"seq_id": 1})
        assert len(first) == 1 and first[0]['i'] == 0

    def test_get_time(self):
        first, second = self.store.get({"time": [0, 15]})
        assert (
            (first['i'] == 0 and second['i'] == 1) or
            (first['i'] == 1 and second['i'] == 0))

    @raises(ValueError)
    def test_get_wrong_seq_id(self):
        first = self.store.get({"seq_id": 18})

    @raises(ValueError)
    def test_get_illformed_time(self):
        first, second = self.store.get({"time": [0, 15, 3]})