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}')
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']]
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, [])
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, [])
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'