Example #1
0
    def test__send_order_should_send_correct_limit_order_with_opt_mode_when_query_failed(
            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
        self.get_mock.side_effect = requests.exceptions.RequestException()

        trader.is_opt_mode = True
        trader._create_jwt_token = MagicMock(return_value="mango_token")
        trader._create_limit_order_query = MagicMock(
            return_value="mango_query")

        response = trader._send_order("mango", True, 500, 0.555)

        self.assertEqual(response, "mango_response")
        dummy_response.raise_for_status.assert_called_once()
        dummy_response.json.assert_called_once()
        trader._create_limit_order_query.assert_called_once_with(
            "mango", True, 500, 0.555)
        trader._create_jwt_token.assert_called_once_with(
            trader.ACCESS_KEY, trader.SECRET_KEY, "mango_query")
        self.post_mock.assert_called_once_with(
            trader.SERVER_URL + "/v1/orders",
            params="mango_query",
            headers={"Authorization": "Bearer mango_token"},
        )
Example #2
0
    def test__create_limit_order_query_return_correct_query(self):
        expected_query = {
            "market": "mango",
            "side": "bid",
            "volume": "0.76",
            "price": "500",
            "ord_type": "limit",
        }
        expected_query = urlencode(expected_query).encode()
        trader = UpbitTrader()

        query = trader._create_limit_order_query("mango", True, 500, 0.76)

        self.assertEqual(query, expected_query)