Example #1
0
def test_rename_dst():

    env = Env()
    with env.getClusterConnectionIfNeeded() as r:

        assert r.execute_command('TS.CREATE', 'a{2}')
        assert r.execute_command('TS.CREATE', 'b{2}')
        assert r.execute_command('TS.CREATERULE', 'a{2}', 'b{2}',
                                 'AGGREGATION', 'AVG', 5000)

        env.assertTrue(r.execute_command('RENAME', 'b{2}', 'b1{2}'))
        aInfo = TSInfo(r.execute_command('TS.INFO', 'a{2}'))
        env.assertEqual(aInfo.sourceKey, None)
        env.assertEqual(aInfo.rules[0][0], b'b1{2}')

        assert r.execute_command('TS.CREATE', 'c{2}')
        assert r.execute_command('TS.CREATERULE', 'a{2}', 'c{2}',
                                 'AGGREGATION', 'COUNT', 2000)

        assert r.execute_command('TS.CREATE', 'd{2}')
        assert r.execute_command('TS.CREATERULE', 'a{2}', 'd{2}',
                                 'AGGREGATION', 'SUM', 3000)

        env.assertTrue(r.execute_command('RENAME', 'c{2}', 'c1{2}'))
        aInfo = TSInfo(r.execute_command('TS.INFO', 'a{2}'))
        env.assertEqual(aInfo.sourceKey, None)
        env.assertEqual(aInfo.rules[0][0], b'b1{2}')
        env.assertEqual(aInfo.rules[1][0], b'c1{2}')
        env.assertEqual(aInfo.rules[2][0], b'd{2}')
Example #2
0
def test_ts_create_encoding():
    for ENCODING in ['compressed','uncompressed']:
        e = Env()
        e.flush()
        with e.getClusterConnectionIfNeeded() as r:
            r.execute_command('ts.create', 't1', 'ENCODING', ENCODING)
            e.assertEqual(TSInfo(r.execute_command('TS.INFO', 't1')).chunk_type, ENCODING.encode())
            # backwards compatible check
            r.execute_command('ts.create', 't1_bc', ENCODING)
            e.assertEqual(TSInfo(r.execute_command('TS.INFO', 't1_bc')).chunk_type, ENCODING.encode())
def test_compressed():
    Env().skipOnCluster()
    env = Env(moduleArgs='CHUNK_TYPE compressed; COMPACTION_POLICY max:1s:1m')
    with env.getConnection() as r:
        r.execute_command('FLUSHALL')
        r.execute_command('TS.ADD', 't1', '1', 1.0)
        assert TSInfo(r.execute_command('TS.INFO', 't1_MAX_1000')).chunk_type == b'compressed'
def test_encoding_uncompressed():
    Env().skipOnCluster()
    skip_on_rlec()
    env = Env(moduleArgs='ENCODING UNCOMPRESSED; COMPACTION_POLICY max:1s:1m')
    with env.getConnection() as r:
        r.execute_command('FLUSHALL')
        r.execute_command('TS.ADD', 't1', '1', 1.0)
        assert TSInfo(r.execute_command(
            'TS.INFO', 't1_MAX_1000')).chunk_type == b'uncompressed'
def test_compressed_debug():
    Env().skipOnCluster()
    
    env = Env(moduleArgs='CHUNK_TYPE compressed COMPACTION_POLICY max:1s:1m')
    with env.getConnection() as r:
        r.execute_command('FLUSHALL')
        r.execute_command('TS.ADD', 't1', '1', 1.0)
        r.execute_command('TS.ADD', 't1', '3000', 1.0)
        r.execute_command('TS.ADD', 't1', '5000', 1.0)

        assert TSInfo(r.execute_command('TS.INFO', 't1_MAX_1000', 'DEBUG')).chunks == [[b'startTimestamp', 0, b'endTimestamp', 3000, b'samples', 2, b'size', 4096, b'bytesPerSample', b'2048']]
Example #6
0
def test_rename_src():
    env = Env()
    with env.getClusterConnectionIfNeeded() as r:

        assert r.execute_command('TS.CREATE', 'a1{1}')
        assert r.execute_command('TS.CREATE', 'b{1}')

        env.assertTrue(r.execute_command('RENAME', 'a1{1}', 'a2{1}'))
        aInfo = TSInfo(r.execute_command('TS.INFO', 'a2{1}'))
        env.assertEqual(aInfo.sourceKey, None)
        env.assertEqual(aInfo.rules, [])
        
        assert r.execute_command('TS.CREATERULE', 'a2{1}', 'b{1}', 'AGGREGATION', 'AVG', 5000)
        bInfo = TSInfo(r.execute_command('TS.INFO', 'b{1}'))
        env.assertEqual(bInfo.sourceKey, b'a2{1}')
        env.assertEqual(bInfo.rules, [])

        env.assertTrue(r.execute_command('RENAME', 'a2{1}', 'a3{1}'))
        bInfo = TSInfo(r.execute_command('TS.INFO', 'b{1}'))
        env.assertEqual(bInfo.sourceKey, b'a3{1}')
        env.assertEqual(bInfo.rules, [])
Example #7
0
def test_rename_none_ts():

    env = Env()
    with env.getClusterConnectionIfNeeded() as r:

        assert r.execute_command('TS.CREATE', 'a{4}')
        assert r.execute_command('SET', 'key1{4}', 'val1')
        assert r.execute_command('SET', 'key2{4}', 'val2')

        env.assertTrue(r.execute_command('RENAME', 'key1{4}', 'key3{4}'))
        env.assertTrue(r.execute_command('RENAME', 'key2{4}', 'key1{4}'))

        assert r.execute_command('SET', 'key1{4}', 'val3')
        assert r.execute_command('SET', 'key3{4}', 'val4')

        aInfo = TSInfo(r.execute_command('TS.INFO', 'a{4}'))
        env.assertEqual(aInfo.sourceKey, None)
        env.assertEqual(aInfo.rules, [])
Example #8
0
def test_sanity():
    start_ts = 1511885909
    samples_count = 1500
    with Env().getClusterConnectionIfNeeded() as r:
        assert r.execute_command('TS.CREATE', 'tester', 'RETENTION', '0',
                                 'CHUNK_SIZE', '1024', 'LABELS', 'name',
                                 'brown', 'color', 'pink')
        _insert_data(r, 'tester', start_ts, samples_count, 5)

        expected_result = [[start_ts + i, str(5).encode('ascii')]
                           for i in range(samples_count)]
        actual_result = r.execute_command('TS.range', 'tester', start_ts,
                                          start_ts + samples_count)
        assert expected_result == actual_result
        expected_result = [
            b'totalSamples', 1500, b'memoryUsage', 1166, b'firstTimestamp',
            start_ts, b'chunkCount', 1, b'labels',
            [[b'name', b'brown'], [b'color', b'pink']], b'lastTimestamp',
            start_ts + samples_count - 1, b'chunkSize', 1024, b'retentionTime',
            0, b'sourceKey', None, b'rules', []
        ]
        assert TSInfo(expected_result) == _get_ts_info(r, 'tester')
def test_uncompressed():
    env = Env(moduleArgs='CHUNK_TYPE UNCOMPRESSED COMPACTION_POLICY max:1s:1m')
    with env.getConnection() as r:
        r.execute_command('FLUSHALL')
        r.execute_command('TS.ADD', 't1', '1', 1.0)
        assert TSInfo(r.execute_command('TS.INFO', 't1_MAX_1000')).chunk_type == b'uncompressed'