@@ -425,8 +425,25 @@ def test_export_json_max_tag_length(self):
425
425
span .start ()
426
426
span .resource = Resource ({})
427
427
# added here to preserve order
428
- span .set_attribute ("k1" , "v" * 500 )
429
- span .set_attribute ("k2" , "v" * 50 )
428
+ span .set_attribute ("string1" , "v" * 500 )
429
+ span .set_attribute ("string2" , "v" * 50 )
430
+ span .set_attribute ("list1" , ["a" ] * 25 )
431
+ span .set_attribute ("list2" , ["a" ] * 10 )
432
+ span .set_attribute ("list3" , [2 ] * 25 )
433
+ span .set_attribute ("list4" , [2 ] * 10 )
434
+ span .set_attribute ("list5" , [True ] * 25 )
435
+ span .set_attribute ("list6" , [True ] * 10 )
436
+ span .set_attribute ("tuple1" , ("a" ,) * 25 )
437
+ span .set_attribute ("tuple2" , ("a" ,) * 10 )
438
+ span .set_attribute ("tuple3" , (2 ,) * 25 )
439
+ span .set_attribute ("tuple4" , (2 ,) * 10 )
440
+ span .set_attribute ("tuple5" , (True ,) * 25 )
441
+ span .set_attribute ("tuple6" , (True ,) * 10 )
442
+ span .set_attribute ("range1" , range (0 , 25 ))
443
+ span .set_attribute ("range2" , range (0 , 10 ))
444
+ span .set_attribute ("empty_list" , [])
445
+ span .set_attribute ("none_list" , ["hello" , None , "world" ])
446
+
430
447
span .set_status (Status (StatusCode .ERROR , "Example description" ))
431
448
span .end ()
432
449
@@ -440,8 +457,66 @@ def test_export_json_max_tag_length(self):
440
457
_ , kwargs = mock_post .call_args # pylint: disable=E0633
441
458
442
459
tags = json .loads (kwargs ["data" ])[0 ]["tags" ]
443
- self .assertEqual (len (tags ["k1" ]), 128 )
444
- self .assertEqual (len (tags ["k2" ]), 50 )
460
+
461
+ self .assertEqual (len (tags ["string1" ]), 128 )
462
+ self .assertEqual (len (tags ["string2" ]), 50 )
463
+ self .assertEqual (
464
+ tags ["list1" ],
465
+ '["a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a"]' ,
466
+ )
467
+ self .assertEqual (
468
+ tags ["list2" ], '["a","a","a","a","a","a","a","a","a","a"]' ,
469
+ )
470
+ self .assertEqual (
471
+ tags ["list3" ],
472
+ '["2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2"]' ,
473
+ )
474
+ self .assertEqual (
475
+ tags ["list4" ], '["2","2","2","2","2","2","2","2","2","2"]' ,
476
+ )
477
+ self .assertEqual (
478
+ tags ["list5" ],
479
+ '["True","True","True","True","True","True","True","True","True","True","True","True","True","True","True","True","True","True"]' ,
480
+ )
481
+ self .assertEqual (
482
+ tags ["list6" ],
483
+ '["True","True","True","True","True","True","True","True","True","True"]' ,
484
+ )
485
+ self .assertEqual (
486
+ tags ["tuple1" ],
487
+ '["a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a"]' ,
488
+ )
489
+ self .assertEqual (
490
+ tags ["tuple2" ], '["a","a","a","a","a","a","a","a","a","a"]' ,
491
+ )
492
+ self .assertEqual (
493
+ tags ["tuple3" ],
494
+ '["2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2","2"]' ,
495
+ )
496
+ self .assertEqual (
497
+ tags ["tuple4" ], '["2","2","2","2","2","2","2","2","2","2"]' ,
498
+ )
499
+ self .assertEqual (
500
+ tags ["tuple5" ],
501
+ '["True","True","True","True","True","True","True","True","True","True","True","True","True","True","True","True","True","True"]' ,
502
+ )
503
+ self .assertEqual (
504
+ tags ["tuple6" ],
505
+ '["True","True","True","True","True","True","True","True","True","True"]' ,
506
+ )
507
+ self .assertEqual (
508
+ tags ["range1" ],
509
+ '["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"]' ,
510
+ )
511
+ self .assertEqual (
512
+ tags ["range2" ], '["0","1","2","3","4","5","6","7","8","9"]' ,
513
+ )
514
+ self .assertEqual (
515
+ tags ["empty_list" ], "[]" ,
516
+ )
517
+ self .assertEqual (
518
+ tags ["none_list" ], '["hello",null,"world"]' ,
519
+ )
445
520
446
521
exporter = ZipkinSpanExporter (service_name , max_tag_value_length = 2 )
447
522
mock_post = MagicMock ()
@@ -452,8 +527,126 @@ def test_export_json_max_tag_length(self):
452
527
453
528
_ , kwargs = mock_post .call_args # pylint: disable=E0633
454
529
tags = json .loads (kwargs ["data" ])[0 ]["tags" ]
455
- self .assertEqual (len (tags ["k1" ]), 2 )
456
- self .assertEqual (len (tags ["k2" ]), 2 )
530
+ self .assertEqual (len (tags ["string1" ]), 2 )
531
+ self .assertEqual (len (tags ["string2" ]), 2 )
532
+ self .assertEqual (tags ["list1" ], "[]" )
533
+ self .assertEqual (tags ["list2" ], "[]" )
534
+ self .assertEqual (tags ["list3" ], "[]" )
535
+ self .assertEqual (tags ["list4" ], "[]" )
536
+ self .assertEqual (tags ["list5" ], "[]" )
537
+ self .assertEqual (tags ["list6" ], "[]" )
538
+ self .assertEqual (tags ["tuple1" ], "[]" )
539
+ self .assertEqual (tags ["tuple2" ], "[]" )
540
+ self .assertEqual (tags ["tuple3" ], "[]" )
541
+ self .assertEqual (tags ["tuple4" ], "[]" )
542
+ self .assertEqual (tags ["tuple5" ], "[]" )
543
+ self .assertEqual (tags ["tuple6" ], "[]" )
544
+ self .assertEqual (tags ["range1" ], "[]" )
545
+ self .assertEqual (tags ["range2" ], "[]" )
546
+
547
+ exporter = ZipkinSpanExporter (service_name , max_tag_value_length = 5 )
548
+ mock_post = MagicMock ()
549
+ with patch ("requests.post" , mock_post ):
550
+ mock_post .return_value = MockResponse (200 )
551
+ status = exporter .export ([span ])
552
+ self .assertEqual (SpanExportResult .SUCCESS , status )
553
+
554
+ _ , kwargs = mock_post .call_args # pylint: disable=E0633
555
+ tags = json .loads (kwargs ["data" ])[0 ]["tags" ]
556
+ self .assertEqual (len (tags ["string1" ]), 5 )
557
+ self .assertEqual (len (tags ["string2" ]), 5 )
558
+ self .assertEqual (tags ["list1" ], '["a"]' )
559
+ self .assertEqual (tags ["list2" ], '["a"]' )
560
+ self .assertEqual (tags ["list3" ], '["2"]' )
561
+ self .assertEqual (tags ["list4" ], '["2"]' )
562
+ self .assertEqual (tags ["list5" ], "[]" )
563
+ self .assertEqual (tags ["list6" ], "[]" )
564
+ self .assertEqual (tags ["tuple1" ], '["a"]' )
565
+ self .assertEqual (tags ["tuple2" ], '["a"]' )
566
+ self .assertEqual (tags ["tuple3" ], '["2"]' )
567
+ self .assertEqual (tags ["tuple4" ], '["2"]' )
568
+ self .assertEqual (tags ["tuple5" ], "[]" )
569
+ self .assertEqual (tags ["tuple6" ], "[]" )
570
+ self .assertEqual (tags ["range1" ], '["0"]' )
571
+ self .assertEqual (tags ["range2" ], '["0"]' )
572
+
573
+ exporter = ZipkinSpanExporter (service_name , max_tag_value_length = 9 )
574
+ mock_post = MagicMock ()
575
+ with patch ("requests.post" , mock_post ):
576
+ mock_post .return_value = MockResponse (200 )
577
+ status = exporter .export ([span ])
578
+ self .assertEqual (SpanExportResult .SUCCESS , status )
579
+
580
+ _ , kwargs = mock_post .call_args # pylint: disable=E0633
581
+ tags = json .loads (kwargs ["data" ])[0 ]["tags" ]
582
+ self .assertEqual (len (tags ["string1" ]), 9 )
583
+ self .assertEqual (len (tags ["string2" ]), 9 )
584
+ self .assertEqual (tags ["list1" ], '["a","a"]' )
585
+ self .assertEqual (tags ["list2" ], '["a","a"]' )
586
+ self .assertEqual (tags ["list3" ], '["2","2"]' )
587
+ self .assertEqual (tags ["list4" ], '["2","2"]' )
588
+ self .assertEqual (tags ["list5" ], '["True"]' )
589
+ self .assertEqual (tags ["list6" ], '["True"]' )
590
+ self .assertEqual (tags ["tuple1" ], '["a","a"]' )
591
+ self .assertEqual (tags ["tuple2" ], '["a","a"]' )
592
+ self .assertEqual (tags ["tuple3" ], '["2","2"]' )
593
+ self .assertEqual (tags ["tuple4" ], '["2","2"]' )
594
+ self .assertEqual (tags ["tuple5" ], '["True"]' )
595
+ self .assertEqual (tags ["tuple6" ], '["True"]' )
596
+ self .assertEqual (tags ["range1" ], '["0","1"]' )
597
+ self .assertEqual (tags ["range2" ], '["0","1"]' )
598
+
599
+ exporter = ZipkinSpanExporter (service_name , max_tag_value_length = 10 )
600
+ mock_post = MagicMock ()
601
+ with patch ("requests.post" , mock_post ):
602
+ mock_post .return_value = MockResponse (200 )
603
+ status = exporter .export ([span ])
604
+ self .assertEqual (SpanExportResult .SUCCESS , status )
605
+
606
+ _ , kwargs = mock_post .call_args # pylint: disable=E0633
607
+ tags = json .loads (kwargs ["data" ])[0 ]["tags" ]
608
+ self .assertEqual (len (tags ["string1" ]), 10 )
609
+ self .assertEqual (len (tags ["string2" ]), 10 )
610
+ self .assertEqual (tags ["list1" ], '["a","a"]' )
611
+ self .assertEqual (tags ["list2" ], '["a","a"]' )
612
+ self .assertEqual (tags ["list3" ], '["2","2"]' )
613
+ self .assertEqual (tags ["list4" ], '["2","2"]' )
614
+ self .assertEqual (tags ["list5" ], '["True"]' )
615
+ self .assertEqual (tags ["list6" ], '["True"]' )
616
+ self .assertEqual (tags ["tuple1" ], '["a","a"]' )
617
+ self .assertEqual (tags ["tuple2" ], '["a","a"]' )
618
+ self .assertEqual (tags ["tuple3" ], '["2","2"]' )
619
+ self .assertEqual (tags ["tuple4" ], '["2","2"]' )
620
+ self .assertEqual (tags ["tuple5" ], '["True"]' )
621
+ self .assertEqual (tags ["tuple6" ], '["True"]' )
622
+ self .assertEqual (tags ["range1" ], '["0","1"]' )
623
+ self .assertEqual (tags ["range2" ], '["0","1"]' )
624
+
625
+ exporter = ZipkinSpanExporter (service_name , max_tag_value_length = 11 )
626
+ mock_post = MagicMock ()
627
+ with patch ("requests.post" , mock_post ):
628
+ mock_post .return_value = MockResponse (200 )
629
+ status = exporter .export ([span ])
630
+ self .assertEqual (SpanExportResult .SUCCESS , status )
631
+
632
+ _ , kwargs = mock_post .call_args # pylint: disable=E0633
633
+ tags = json .loads (kwargs ["data" ])[0 ]["tags" ]
634
+ self .assertEqual (len (tags ["string1" ]), 11 )
635
+ self .assertEqual (len (tags ["string2" ]), 11 )
636
+ self .assertEqual (tags ["list1" ], '["a","a"]' )
637
+ self .assertEqual (tags ["list2" ], '["a","a"]' )
638
+ self .assertEqual (tags ["list3" ], '["2","2"]' )
639
+ self .assertEqual (tags ["list4" ], '["2","2"]' )
640
+ self .assertEqual (tags ["list5" ], '["True"]' )
641
+ self .assertEqual (tags ["list6" ], '["True"]' )
642
+ self .assertEqual (tags ["tuple1" ], '["a","a"]' )
643
+ self .assertEqual (tags ["tuple2" ], '["a","a"]' )
644
+ self .assertEqual (tags ["tuple3" ], '["2","2"]' )
645
+ self .assertEqual (tags ["tuple4" ], '["2","2"]' )
646
+ self .assertEqual (tags ["tuple5" ], '["True"]' )
647
+ self .assertEqual (tags ["tuple6" ], '["True"]' )
648
+ self .assertEqual (tags ["range1" ], '["0","1"]' )
649
+ self .assertEqual (tags ["range2" ], '["0","1"]' )
457
650
458
651
# pylint: disable=too-many-locals,too-many-statements
459
652
def test_export_protobuf (self ):
0 commit comments