@@ -583,8 +583,7 @@ def test_log_metrics_with_metadata(capsys, metric, dimension, namespace, service
583
583
my_metrics .add_metric (** metric )
584
584
my_metrics .add_dimension (** dimension )
585
585
586
- # WHEN we utilize log_metrics to serialize
587
- # and add metadata
586
+ # WHEN we utilize log_metrics to serialize and add metadata
588
587
@my_metrics .log_metrics
589
588
def lambda_handler (evt , ctx ):
590
589
my_metrics .add_metadata (** metadata )
@@ -598,3 +597,36 @@ def lambda_handler(evt, ctx):
598
597
# THEN we should have no exceptions and metadata
599
598
remove_timestamp (metrics = [output , expected ])
600
599
assert expected == output
600
+
601
+
602
+ def test_serialize_metric_set_metric_definition (metric , dimension , namespace , service , metadata ):
603
+ expected_metric_definition = {
604
+ "single_metric" : 1.0 ,
605
+ "_aws" : {
606
+ "Timestamp" : 1592237875494 ,
607
+ "CloudWatchMetrics" : [
608
+ {
609
+ "Namespace" : "test_namespace" ,
610
+ "Dimensions" : [["test_dimension" , "service" ]],
611
+ "Metrics" : [{"Name" : "single_metric" , "Unit" : "Count" }],
612
+ }
613
+ ],
614
+ },
615
+ "service" : "test_service" ,
616
+ "username" : "test" ,
617
+ "test_dimension" : "test" ,
618
+ }
619
+
620
+ # GIVEN Metrics is initialized
621
+ my_metrics = Metrics (service = service , namespace = namespace )
622
+ my_metrics .add_metric (** metric )
623
+ my_metrics .add_dimension (** dimension )
624
+ my_metrics .add_metadata (** metadata )
625
+
626
+ # WHEN metrics are serialized manually
627
+ metric_definition_output = my_metrics .serialize_metric_set ()
628
+
629
+ # THEN we should emit a valid embedded metric definition object
630
+ assert "Timestamp" in metric_definition_output ["_aws" ]
631
+ remove_timestamp (metrics = [metric_definition_output , expected_metric_definition ])
632
+ assert metric_definition_output == expected_metric_definition
0 commit comments