Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
    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()