Example #1
0
    def test_consumer_group_stream_creation(self):
        cg = db.consumer_group('cg1', ['stream-a', 'stream-b'])
        self.assertFalse(db.exists('stream-a'))
        self.assertFalse(db.exists('stream-b'))

        cg.create()

        # The streams were created (by adding and then deleting a message).
        self.assertTrue(db.exists('stream-a'))
        self.assertTrue(db.exists('stream-b'))

        # The streams that were automatically created will not have any data.
        self.assertEqual(db.xlen('stream-a'), 0)
        self.assertEqual(db.xlen('stream-b'), 0)

        # If a stream already exists that's OK.
        db.xadd('stream-c', {'data': 'dummy'}, id=b'1')
        cg = db.consumer_group('cg2', ['stream-c', 'stream-d'])
        self.assertTrue(db.exists('stream-c'))
        self.assertEqual(db.type('stream-c'), b'stream')
        self.assertFalse(db.exists('stream-d'))

        cg.create()
        self.assertTrue(db.exists('stream-d'))
        self.assertEqual(db.type('stream-c'), b'stream')
        self.assertEqual(db.type('stream-d'), b'stream')
        self.assertEqual(db.xlen('stream-c'), 1)
        self.assertEqual(db.xlen('stream-d'), 0)

        # If a stream key already exists and is a different type, fail.
        db.lpush('l1', 'item-1')
        db.hset('h1', 'key', 'data')
        db.sadd('s1', 'item-1')
        db.set('k1', 'v1')
        db.zadd('z1', {'item-1': 1.0})
        for key in ('l1', 'h1', 's1', 'k1', 'z1'):
            cg = db.consumer_group('cg-%s' % key, keys=[key])
            self.assertRaises(ValueError, cg.create)
Example #2
0
    def test_consumer_group_stream_creation(self):
        cg = db.consumer_group('cg1', ['stream-a', 'stream-b'])
        self.assertFalse(db.exists('stream-a'))
        self.assertFalse(db.exists('stream-b'))

        cg.create()

        # The streams were created (by adding and then deleting a message).
        self.assertTrue(db.exists('stream-a'))
        self.assertTrue(db.exists('stream-b'))

        # The streams that were automatically created will not have any data.
        self.assertEqual(db.xlen('stream-a'), 0)
        self.assertEqual(db.xlen('stream-b'), 0)

        # If a stream already exists that's OK.
        db.xadd('stream-c', {'data': 'dummy'}, id=b'1')
        cg = db.consumer_group('cg2', ['stream-c', 'stream-d'])
        self.assertTrue(db.exists('stream-c'))
        self.assertEqual(db.type('stream-c'), b'stream')
        self.assertFalse(db.exists('stream-d'))

        cg.create()
        self.assertTrue(db.exists('stream-d'))
        self.assertEqual(db.type('stream-c'), b'stream')
        self.assertEqual(db.type('stream-d'), b'stream')
        self.assertEqual(db.xlen('stream-c'), 1)
        self.assertEqual(db.xlen('stream-d'), 0)

        # If a stream key already exists and is a different type, fail.
        db.lpush('l1', 'item-1')
        db.hset('h1', 'key', 'data')
        db.sadd('s1', 'item-1')
        db.set('k1', 'v1')
        db.zadd('z1', {'item-1': 1.0})
        for key in ('l1', 'h1', 's1', 'k1', 'z1'):
            cg = db.consumer_group('cg-%s' % key, keys=[key])
            self.assertRaises(ValueError, cg.create)
Example #3
0
 def _create_test_data(self):
     return (db.xadd('sa', {'k': 'a1'},
                     b'1'), db.xadd('sb', {'k': 'b1'},
                                    b'2'), db.xadd('sa', {'k': 'a2'}, b'3'),
             db.xadd('sb', {'k': 'b2'},
                     b'4'), db.xadd('sb', {'k': 'b3'}, b'5'))
Example #4
0
 def _create_test_data(self):
     return (db.xadd('sa', {'k': 'a1'}, b'1'),
             db.xadd('sb', {'k': 'b1'}, b'2'),
             db.xadd('sa', {'k': 'a2'}, b'3'),
             db.xadd('sb', {'k': 'b2'}, b'4'),
             db.xadd('sb', {'k': 'b3'}, b'5'))