def test__create_market_price_order_query_query_return_correct_query(self): expected_buy_query = { "market": "mango", "side": "bid", "price": "500", "ord_type": "price", } expected_buy_query = urlencode(expected_buy_query).encode() expected_sell_query = { "market": "mango", "side": "ask", "volume": "0.76", "ord_type": "market", } expected_sell_query = urlencode(expected_sell_query).encode() trader = UpbitTrader() query = trader._create_market_price_order_query("mango", price=500) self.assertEqual(query, expected_buy_query) query = trader._create_market_price_order_query("mango", volume=0.76) self.assertEqual(query, expected_sell_query) query = trader._create_market_price_order_query("mango", 500, 0.76) self.assertEqual(query, None)
def test__send_order_should_return_None_when_receive_invalid_data(self): trader = UpbitTrader() self.post_mock.side_effect = ValueError() trader._create_jwt_token = MagicMock(return_value="mango_token") trader._create_market_price_order_query = MagicMock( return_value="mango_query") response = trader._send_order("mango", False, volume=0.55) self.assertEqual(response, None)
def test__send_order_should_return_None_when_RequestException_occured( self): trader = UpbitTrader() self.post_mock.side_effect = requests.exceptions.RequestException() trader._create_jwt_token = MagicMock(return_value="mango_token") trader._create_market_price_order_query = MagicMock( return_value="mango_query") response = trader._send_order("mango", False, volume=0.55) self.assertEqual(response, None)
def test__send_order_should_send_correct_market_sell_order(self): trader = UpbitTrader() class DummyResponse: pass dummy_response = DummyResponse() dummy_response.raise_for_status = MagicMock() dummy_response.json = MagicMock(return_value="mango_response") self.post_mock.return_value = dummy_response trader._create_jwt_token = MagicMock(return_value="mango_token") trader._create_market_price_order_query = MagicMock( return_value="mango_query") response = trader._send_order("mango", False, volume=0.55) self.assertEqual(response, "mango_response") trader._create_market_price_order_query.assert_called_once_with( "mango", volume=0.55)
def test__send_order_should_NOT_send_invaild_order(self): trader = UpbitTrader() class DummyResponse: pass dummy_response = DummyResponse() dummy_response.raise_for_status = MagicMock() dummy_response.json = MagicMock(return_value="mango_response") self.post_mock.return_value = dummy_response trader._create_jwt_token = MagicMock(return_value="mango_token") trader._create_market_price_order_query = MagicMock( return_value="mango_query") response = trader._send_order("mango", True, volume=0.55) self.assertEqual(response, None) response = trader._send_order("mango", False, price=500) self.assertEqual(response, None) response = trader._send_order("mango", True) self.assertEqual(response, None) trader._create_market_price_order_query.assert_not_called()