diff options
Diffstat (limited to 'test.py')
-rw-r--r-- | test.py | 75 |
1 files changed, 56 insertions, 19 deletions
@@ -1375,16 +1375,20 @@ class TradeTest(WebMockTestCase): | |||
1375 | value_to = portfolio.Amount("BTC", "1.0") | 1375 | value_to = portfolio.Amount("BTC", "1.0") |
1376 | trade = portfolio.Trade(value_from, value_to, "ETH", self.m) | 1376 | trade = portfolio.Trade(value_from, value_to, "ETH", self.m) |
1377 | 1377 | ||
1378 | self.assertEqual("buy", trade.order_action(False)) | 1378 | trade.inverted = False |
1379 | self.assertEqual("sell", trade.order_action(True)) | 1379 | self.assertEqual("buy", trade.order_action()) |
1380 | trade.inverted = True | ||
1381 | self.assertEqual("sell", trade.order_action()) | ||
1380 | 1382 | ||
1381 | value_from = portfolio.Amount("BTC", "0") | 1383 | value_from = portfolio.Amount("BTC", "0") |
1382 | value_from.linked_to = portfolio.Amount("ETH", "0") | 1384 | value_from.linked_to = portfolio.Amount("ETH", "0") |
1383 | value_to = portfolio.Amount("BTC", "-1.0") | 1385 | value_to = portfolio.Amount("BTC", "-1.0") |
1384 | trade = portfolio.Trade(value_from, value_to, "ETH", self.m) | 1386 | trade = portfolio.Trade(value_from, value_to, "ETH", self.m) |
1385 | 1387 | ||
1386 | self.assertEqual("sell", trade.order_action(False)) | 1388 | trade.inverted = False |
1387 | self.assertEqual("buy", trade.order_action(True)) | 1389 | self.assertEqual("sell", trade.order_action()) |
1390 | trade.inverted = True | ||
1391 | self.assertEqual("buy", trade.order_action()) | ||
1388 | 1392 | ||
1389 | def test_trade_type(self): | 1393 | def test_trade_type(self): |
1390 | value_from = portfolio.Amount("BTC", "0.5") | 1394 | value_from = portfolio.Amount("BTC", "0.5") |
@@ -1402,26 +1406,59 @@ class TradeTest(WebMockTestCase): | |||
1402 | self.assertEqual("short", trade.trade_type) | 1406 | self.assertEqual("short", trade.trade_type) |
1403 | 1407 | ||
1404 | def test_is_fullfiled(self): | 1408 | def test_is_fullfiled(self): |
1405 | value_from = portfolio.Amount("BTC", "0.5") | 1409 | with self.subTest(inverted=False): |
1406 | value_from.linked_to = portfolio.Amount("ETH", "10.0") | 1410 | value_from = portfolio.Amount("BTC", "0.5") |
1407 | value_to = portfolio.Amount("BTC", "1.0") | 1411 | value_from.linked_to = portfolio.Amount("ETH", "10.0") |
1408 | trade = portfolio.Trade(value_from, value_to, "ETH", self.m) | 1412 | value_to = portfolio.Amount("BTC", "1.0") |
1413 | trade = portfolio.Trade(value_from, value_to, "ETH", self.m) | ||
1409 | 1414 | ||
1410 | order1 = mock.Mock() | 1415 | order1 = mock.Mock() |
1411 | order1.filled_amount.return_value = portfolio.Amount("BTC", "0.3") | 1416 | order1.filled_amount.return_value = portfolio.Amount("BTC", "0.3") |
1412 | 1417 | ||
1413 | order2 = mock.Mock() | 1418 | order2 = mock.Mock() |
1414 | order2.filled_amount.return_value = portfolio.Amount("BTC", "0.01") | 1419 | order2.filled_amount.return_value = portfolio.Amount("BTC", "0.01") |
1415 | trade.orders.append(order1) | 1420 | trade.orders.append(order1) |
1416 | trade.orders.append(order2) | 1421 | trade.orders.append(order2) |
1422 | |||
1423 | self.assertFalse(trade.is_fullfiled) | ||
1424 | |||
1425 | order3 = mock.Mock() | ||
1426 | order3.filled_amount.return_value = portfolio.Amount("BTC", "0.19") | ||
1427 | trade.orders.append(order3) | ||
1428 | |||
1429 | self.assertTrue(trade.is_fullfiled) | ||
1430 | |||
1431 | order1.filled_amount.assert_called_with(in_base_currency=True) | ||
1432 | order2.filled_amount.assert_called_with(in_base_currency=True) | ||
1433 | order3.filled_amount.assert_called_with(in_base_currency=True) | ||
1434 | |||
1435 | with self.subTest(inverted=True): | ||
1436 | value_from = portfolio.Amount("BTC", "0.5") | ||
1437 | value_from.linked_to = portfolio.Amount("USDT", "1000.0") | ||
1438 | value_to = portfolio.Amount("BTC", "1.0") | ||
1439 | trade = portfolio.Trade(value_from, value_to, "USDT", self.m) | ||
1440 | trade.inverted = True | ||
1441 | |||
1442 | order1 = mock.Mock() | ||
1443 | order1.filled_amount.return_value = portfolio.Amount("BTC", "0.3") | ||
1444 | |||
1445 | order2 = mock.Mock() | ||
1446 | order2.filled_amount.return_value = portfolio.Amount("BTC", "0.01") | ||
1447 | trade.orders.append(order1) | ||
1448 | trade.orders.append(order2) | ||
1449 | |||
1450 | self.assertFalse(trade.is_fullfiled) | ||
1451 | |||
1452 | order3 = mock.Mock() | ||
1453 | order3.filled_amount.return_value = portfolio.Amount("BTC", "0.19") | ||
1454 | trade.orders.append(order3) | ||
1417 | 1455 | ||
1418 | self.assertFalse(trade.is_fullfiled) | 1456 | self.assertTrue(trade.is_fullfiled) |
1419 | 1457 | ||
1420 | order3 = mock.Mock() | 1458 | order1.filled_amount.assert_called_with(in_base_currency=False) |
1421 | order3.filled_amount.return_value = portfolio.Amount("BTC", "0.19") | 1459 | order2.filled_amount.assert_called_with(in_base_currency=False) |
1422 | trade.orders.append(order3) | 1460 | order3.filled_amount.assert_called_with(in_base_currency=False) |
1423 | 1461 | ||
1424 | self.assertTrue(trade.is_fullfiled) | ||
1425 | 1462 | ||
1426 | def test_filled_amount(self): | 1463 | def test_filled_amount(self): |
1427 | value_from = portfolio.Amount("BTC", "0.5") | 1464 | value_from = portfolio.Amount("BTC", "0.5") |