@@ -192,8 +192,19 @@ async def test_basic_init(self, mock_book, mock_connect):
192192 @patch ('gdax.trader.Trader.get_product_order_book' )
193193 async def test_heartbeat (self , mock_book , mock_connect ):
194194 mock_connect .return_value .aenter .send_json = CoroutineMock ()
195+ mock_connect .return_value .aenter .receive_str = CoroutineMock ()
195196
196197 mock_book .return_value = {'bids' : [], 'asks' : [], 'sequence' : 1 }
198+ message_expected = {
199+ "type" : "heartbeat" ,
200+ "last_trade_id" : 17393422 ,
201+ "product_id" : "ETH-USD" ,
202+ "sequence" : 2 ,
203+ "time" : "2017-06-25T11:23:14.838000Z"
204+ }
205+ mock_connect .return_value .aenter .receive_str .side_effect = [
206+ json .dumps (message_expected ),
207+ ]
197208 product_ids = ['ETH-USD' ]
198209 async with gdax .orderbook .OrderBook (product_ids ,
199210 use_heartbeat = True ) as orderbook :
@@ -202,6 +213,9 @@ async def test_heartbeat(self, mock_book, mock_connect):
202213 calls = [call (subscribe_msg ), call (heartbeat_msg )]
203214 mock_connect .return_value .aenter .send_json .assert_has_calls (calls )
204215
216+ message = await orderbook .handle_message ()
217+ assert message == message_expected
218+
205219 @patch ('gdax.trader.Trader.get_product_order_book' )
206220 async def test_authentication (self , mock_book , mock_connect , mocker ):
207221 mock_connect .return_value .aenter .send_json = CoroutineMock ()
@@ -243,7 +257,7 @@ async def test_basic_message(self, mock_book, mock_connect):
243257 "time" : "2017-06-25T11:23:14.775000Z"
244258 }
245259 mock_connect .return_value .aenter .receive_str .side_effect = [
246- json .dumps (message_expected )
260+ json .dumps (message_expected ),
247261 ]
248262 async with gdax .orderbook .OrderBook ('BTC-USD' ) as orderbook :
249263 assert orderbook .product_ids == ['BTC-USD' ]
0 commit comments