12
12
13
13
from __future__ import print_function
14
14
import random
15
-
15
+ from collections import OrderedDict
16
16
import datetime
17
17
import distutils .spawn
18
18
from functools import partial
@@ -360,22 +360,40 @@ def test_write_points_check_read(self):
360
360
''' same as test_write_check_read() but with write_points \o/ '''
361
361
self .test_write_points ()
362
362
time .sleep (1 ) # same as test_write_check_read()
363
+ rsp = self .cli .query ('SELECT * FROM cpu_load_short' )
363
364
self .assertEqual (
364
- {'cpu_load_short' : [
365
- {'value' : 0.64 , 'time' : '2009-11-10T23:00:00Z' }]},
366
- self .cli .query ('SELECT * FROM cpu_load_short' ))
365
+ [{'values' : [['2009-11-10T23:00:00Z' , 0.64 ]],
366
+ 'name' : 'cpu_load_short' ,
367
+ 'columns' : ['time' , 'value' ]}],
368
+ list (rsp )
369
+ )
370
+
371
+ rsp2 = list (rsp ['cpu_load_short' ])
372
+ self .assertEqual (len (rsp2 ), 1 )
373
+ pt = rsp2 [0 ]
374
+
375
+ self .assertEqual (
376
+ ['cpu_load_short' , ['time' , 'value' ], {}, ['2009-11-10T23:00:00Z' , 0.64 ]],
377
+ [pt .serie , pt .columns , pt .tags , [pt .values .time , pt .values .value ]]
378
+ )
367
379
368
380
def test_write_multiple_points_different_series (self ):
369
381
self .assertIs (True , self .cli .write_points (dummy_points ))
370
382
time .sleep (1 )
383
+ rsp = self .cli .query ('SELECT * FROM cpu_load_short' )
384
+ lrsp = list (rsp )
371
385
self .assertEqual (
372
- {'cpu_load_short' : [
373
- {'value' : 0.64 , 'time' : '2009-11-10T23:00:00Z' }]},
374
- self .cli .query ('SELECT * FROM cpu_load_short' ))
386
+ [{'values' : [['2009-11-10T23:00:00Z' , 0.64 ]],
387
+ 'name' : 'cpu_load_short' ,
388
+ 'columns' : ['time' , 'value' ]}],
389
+ lrsp )
390
+ rsp = list (self .cli .query ('SELECT * FROM memory' ))
375
391
self .assertEqual (
376
- {'memory' : [
377
- {'time' : '2009-11-10T23:01:35Z' , 'value' : 33 }]},
378
- self .cli .query ('SELECT * FROM memory' ))
392
+ [{
393
+ 'values' : [['2009-11-10T23:01:35Z' , 33 ]],
394
+ 'name' : 'memory' , 'columns' : ['time' , 'value' ]}],
395
+ rsp
396
+ )
379
397
380
398
@unittest .skip ('Not implemented for 0.9' )
381
399
def test_write_points_batch (self ):
@@ -465,7 +483,7 @@ def test_write_points_with_precision(self):
465
483
time .sleep (sleep_time )
466
484
467
485
rsp = self .cli .query ('SELECT * FROM cpu_load_short' , database = db )
468
-
486
+ rsp = list ( rsp )[ 0 ]
469
487
# sys.stderr.write('precision=%s rsp_timestamp = %r\n' % (
470
488
# precision, rsp['cpu_load_short'][0]['time']))
471
489
m = re .match (expected_regex , rsp ['cpu_load_short' ][0 ]['time' ])
@@ -524,13 +542,10 @@ def test_create_retention_policy_default(self):
524
542
default = True )
525
543
self .assertIsNone (rsp )
526
544
rsp = self .cli .get_list_retention_policies ()
527
- self .assertEqual (
528
- [
529
- {'duration' : '0' , 'default' : False ,
530
- 'replicaN' : 1 , 'name' : 'default' },
531
- {'duration' : '24h0m0s' , 'default' : True ,
532
- 'replicaN' : 4 , 'name' : 'somename' }
533
- ],
545
+ self .assertEqual ([
546
+ {'columns' : ['name' , 'duration' , 'replicaN' , 'default' ],
547
+ 'values' : [['default' , '0' , 1 , False ],
548
+ ['somename' , '24h0m0s' , 4 , True ]]}],
534
549
rsp
535
550
)
536
551
@@ -548,23 +563,27 @@ def test_create_retention_policy(self):
548
563
)
549
564
550
565
def test_issue_143 (self ):
551
- pt = partial (point , 'serie ' , timestamp = '2015-03-30T16:16:37Z' )
566
+ pt = partial (point , 'a_serie_name ' , timestamp = '2015-03-30T16:16:37Z' )
552
567
pts = [
553
568
pt (value = 15 ),
554
569
pt (tags = {'tag_1' : 'value1' }, value = 5 ),
555
570
pt (tags = {'tag_1' : 'value2' }, value = 10 ),
556
571
]
557
572
self .cli .write_points (pts )
558
573
time .sleep (1 )
559
- rsp = self .cli .query ('SELECT * FROM serie GROUP BY tag_1' )
574
+ rsp = list ( self .cli .query ('SELECT * FROM a_serie_name GROUP BY tag_1' ) )
560
575
# print(rsp, file=sys.stderr)
561
- self .assertEqual ({
562
- ('serie' , (('tag_1' , '' ),)): [
563
- {'time' : '2015-03-30T16:16:37Z' , 'value' : 15 }],
564
- ('serie' , (('tag_1' , 'value1' ),)): [
565
- {'time' : '2015-03-30T16:16:37Z' , 'value' : 5 }],
566
- ('serie' , (('tag_1' , 'value2' ),)): [
567
- {'time' : '2015-03-30T16:16:37Z' , 'value' : 10 }]},
576
+
577
+ self .assertEqual ([
578
+ {'name' : 'a_serie_name' , 'columns' : ['time' , 'value' ],
579
+ 'values' : [['2015-03-30T16:16:37Z' , 15 ]],
580
+ 'tags' : {'tag_1' : '' }},
581
+ {'name' : 'a_serie_name' , 'columns' : ['time' , 'value' ],
582
+ 'values' : [['2015-03-30T16:16:37Z' , 5 ]],
583
+ 'tags' : {'tag_1' : 'value1' }},
584
+ {'name' : 'a_serie_name' , 'columns' : ['time' , 'value' ],
585
+ 'values' : [['2015-03-30T16:16:37Z' , 10 ]],
586
+ 'tags' : {'tag_1' : 'value2' }}],
568
587
rsp
569
588
)
570
589
@@ -579,20 +598,38 @@ def test_issue_143(self):
579
598
time .sleep (1 )
580
599
rsp = self .cli .query ('SELECT * FROM serie2 GROUP BY tag1,tag2' )
581
600
# print(rsp, file=sys.stderr)
601
+ self .assertEqual ([
602
+ {'name' : 'serie2' , 'columns' : ['time' , 'value' ],
603
+ 'values' : [['2015-03-30T16:16:37Z' , 0 ]],
604
+ 'tags' : {'tag2' : 'v1' , 'tag1' : 'value1' }},
605
+ {'name' : 'serie2' , 'columns' : ['time' , 'value' ],
606
+ 'values' : [['2015-03-30T16:16:37Z' , 5 ]],
607
+ 'tags' : {'tag2' : 'v2' , 'tag1' : 'value1' }},
608
+ {'name' : 'serie2' , 'columns' : ['time' , 'value' ],
609
+ 'values' : [['2015-03-30T16:16:37Z' , 10 ]],
610
+ 'tags' : {'tag2' : 'v1' , 'tag1' : 'value2' }}],
611
+ list (rsp )
612
+ )
613
+
614
+ d = all_tag2_equal_v1 = list (rsp [None , {'tag2' : 'v1' }])
582
615
self .assertEqual (
583
- {
584
- ('serie2' , (('tag1' , 'value1' ), ('tag2' , 'v1' ))): [
585
- {'time' : '2015-03-30T16:16:37Z' , 'value' : 0 }
586
- ],
587
- ('serie2' , (('tag1' , 'value1' ), ('tag2' , 'v2' ))): [
588
- {'time' : '2015-03-30T16:16:37Z' , 'value' : 5 }
589
- ],
590
- ('serie2' , (('tag1' , 'value2' ), ('tag2' , 'v1' ))): [
591
- {'time' : '2015-03-30T16:16:37Z' , 'value' : 10 }]
592
- },
593
- rsp
616
+ [
617
+ 2 ,
618
+ ['time' , 'value' ],
619
+ {'tag2' : 'v1' , 'tag1' : 'value1' },
620
+ ['2015-03-30T16:16:37Z' , 0 ],
621
+ {'tag2' : 'v1' , 'tag1' : 'value2' },
622
+ ['2015-03-30T16:16:37Z' , 10 ]
623
+ ],
624
+ [
625
+ len (d ),
626
+ d [0 ].columns ,
627
+ d [0 ].tags , [d [0 ].values .time , d [0 ].values .value ],
628
+ d [1 ].tags , [d [1 ].values .time , d [1 ].values .value ]
629
+ ]
594
630
)
595
631
632
+
596
633
def test_tags_json_order (self ):
597
634
n_pts = 100
598
635
n_tags = 5 # that will make 120 possible orders (fact(5) == 120)
@@ -647,6 +684,33 @@ def test_tags_json_order(self):
647
684
rsp_tags = tuple (t [0 ] for t in serie_key [1 ])
648
685
self .assertEqual (expected_ordered_tags , rsp_tags )
649
686
687
+
688
+ def test_query_multiple_series (self ):
689
+ pt = partial (point , 'serie1' , timestamp = '2015-03-30T16:16:37Z' )
690
+ pts = [
691
+ pt (tags = {'tag1' : 'value1' , 'tag2' : 'v1' }, value = 0 ),
692
+ #pt(tags={'tag1': 'value1', 'tag2': 'v2'}, value=5),
693
+ #pt(tags={'tag1': 'value2', 'tag2': 'v1'}, value=10),
694
+ ]
695
+ self .cli .write_points (pts )
696
+
697
+ pt = partial (point , 'serie2' , timestamp = '1970-03-30T16:16:37Z' )
698
+ pts = [
699
+ pt (tags = {'tag1' : 'value1' , 'tag2' : 'v1' }, value = 0 , data1 = 33 , data2 = "bla" ),
700
+ #pt(tags={'tag1': 'value1', 'tag2': 'v2'}, value=5),
701
+ #pt(tags={'tag1': 'value2', 'tag2': 'v3'}, value=10), # data2="what"),
702
+ ]
703
+ self .cli .write_points (pts )
704
+
705
+ rsp = self .cli .query ('SELECT * FROM serie1, serie2' )
706
+ print (rsp )
707
+
708
+ # same but with the tags given :
709
+ #rsp = self.cli.query('SELECT * FROM serie1, serie2 GROUP BY *')
710
+ print (rsp )
711
+
712
+
713
+
650
714
############################################################################
651
715
652
716
0 commit comments