@@ -147,6 +147,20 @@ class MockHttpResponse(object):
147
147
]
148
148
}
149
149
}
150
+ },
151
+ 'https://ycharts.com/api/v3/companies/AAPL/series/price?aggregate_function=max' : {
152
+ 'response' : {
153
+ 'AAPL' : {
154
+ 'results' : {
155
+ 'price' : {
156
+ 'data' : [['2016-09-12' , 99999.00 ]],
157
+ 'meta' : {'status' : 'ok' },
158
+ },
159
+ },
160
+ 'meta' : {'status' : 'ok' },
161
+ },
162
+ },
163
+ 'meta' : {'url' : 'http://ycharts.com/api/v3/companies/AAPL/series/price?aggregate_function=max' , 'status' : 'ok' },
150
164
}
151
165
}
152
166
@@ -310,6 +324,21 @@ def test_successful_stock_spinoff_request(self):
310
324
self .assertEqual (spinoff_data [0 ]['status' ], 'executed' )
311
325
self .assertEqual (spinoff_data [0 ]['ratio' ], 1.259958 )
312
326
327
+ @mock .patch ('pycharts.base.urlopen' , mock_urlopen )
328
+ def test_successful_series_request_with_aggregation (self ):
329
+ series_rsp = self .client .get_series (['AAPL' ], ['price' ], aggregate_function = 'max' )
330
+ status = series_rsp ['meta' ]['status' ]
331
+ security_response_data = series_rsp ['response' ]['AAPL' ]
332
+ securty_query_status = security_response_data ['meta' ]['status' ]
333
+ calculation_response_data = security_response_data ['results' ]['price' ]
334
+ calculation_query_status = calculation_response_data ['meta' ]['status' ]
335
+ calculation_query_data = calculation_response_data ['data' ]
336
+ # assertions
337
+ self .assertEqual (status , 'ok' )
338
+ self .assertEqual (securty_query_status , 'ok' )
339
+ self .assertEqual (calculation_query_status , 'ok' )
340
+ expected_data = [['2016-09-12' , 99999.00 ]]
341
+ self .assertEqual (calculation_query_data , expected_data )
313
342
314
343
if __name__ == '__main__' :
315
344
unittest .main ()
0 commit comments