@@ -58,6 +58,7 @@ def test_metrics(self):
5858
5959 expected_response = {
6060 "buckets" : ["2018-04-13" , "2018-04-20" ],
61+ "days_without_data" : [],
6162 "snaps" : [
6263 {
6364 "id" : "1" ,
@@ -113,3 +114,50 @@ def test_metrics_bad_id_payload(self):
113114
114115 self .assertEqual (500 , response .status_code )
115116 self .assertEqual (expected_response , response .json )
117+
118+ @responses .activate
119+ def test_metrics_with_empty_data (self ):
120+ metrics_payload = {
121+ "metrics" : [
122+ {
123+ "snap_id" : "1" ,
124+ "status" : "OK" ,
125+ "series" : [
126+ {"values" : [0 , 3 , None ], "name" : "new" },
127+ {"values" : [2 , 3 , None ], "name" : "lost" },
128+ {"values" : [9 , 6 , None ], "name" : "continued" },
129+ ],
130+ "buckets" : ["2018-04-13" , "2018-04-20" , "2018-04-21" ],
131+ },
132+ ]
133+ }
134+
135+ responses .add (
136+ responses .POST , self .api_url , json = metrics_payload , status = 200
137+ )
138+
139+ payload = {"1" : "test1" }
140+ headers = {"content-type" : "application/json" }
141+ response = self .client .post (
142+ self .endpoint_url , data = json .dumps (payload ), headers = headers
143+ )
144+
145+ expected_response = {
146+ "buckets" : ["2018-04-13" , "2018-04-20" , "2018-04-21" ],
147+ "days_without_data" : ["2018-04-21" ],
148+ "snaps" : [
149+ {
150+ "id" : "1" ,
151+ "name" : None ,
152+ "series" : [
153+ {"name" : "new" , "values" : [0 , 3 , None ]},
154+ {"name" : "lost" , "values" : [2 , 3 , None ]},
155+ {"name" : "continued" , "values" : [9 , 6 , None ]},
156+ ],
157+ }
158+ ],
159+ }
160+
161+ self .assertEqual (200 , response .status_code )
162+ self .assertEqual (expected_response , response .json )
163+ self .assertEqual (1 , len (responses .calls ))
0 commit comments