aboutsummaryrefslogtreecommitdiff
path: root/test.py
diff options
context:
space:
mode:
Diffstat (limited to 'test.py')
-rw-r--r--test.py75
1 files changed, 56 insertions, 19 deletions
diff --git a/test.py b/test.py
index a45010b..33a817d 100644
--- a/test.py
+++ b/test.py
@@ -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")