summaryrefslogtreecommitdiff
path: root/test_trade_queue.py
diff options
context:
space:
mode:
Diffstat (limited to 'test_trade_queue.py')
-rw-r--r--test_trade_queue.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/test_trade_queue.py b/test_trade_queue.py
index 1bfa1ef..89c75e8 100644
--- a/test_trade_queue.py
+++ b/test_trade_queue.py
@@ -17,9 +17,10 @@ class TestFIFOQueue(unittest.TestCase):
"""
Test adding trades to the queue.
"""
- self.assertEqual(len(self.queue._queue), 3) # There should be 3 trades in the queue
- self.assertEqual(self.queue._queue[0].amount, 10.0) # Check the first trade's amount
- self.assertEqual(self.queue._queue[1].date, "2025-04-15") # Check the second trade's date
+ tq = self.queue.get_copy()
+ self.assertEqual(len(tq), 3) # There should be 3 trades in the queue
+ self.assertEqual(tq[0].amount, 10.0) # Check the first trade's amount
+ self.assertEqual(tq[1].date, "2025-04-15") # Check the second trade's date
def test_remove_exact_amount(self):
"""
@@ -28,7 +29,8 @@ class TestFIFOQueue(unittest.TestCase):
trades = self.queue.remove_coins(10.0)
self.assertEqual(len(trades), 1) # One trade should be returned
self.assertEqual(trades[0].amount, 10.0) # Amount should match the request
- self.assertEqual(len(self.queue._queue), 2) # Two trades should remain in the queue
+ tq = self.queue.get_copy()
+ self.assertEqual(len(tq), 2) # Two trades should remain in the queue
def test_remove_partial_trade(self):
"""
@@ -37,7 +39,8 @@ class TestFIFOQueue(unittest.TestCase):
trades = self.queue.remove_coins(5.0)
self.assertEqual(len(trades), 1) # One partial trade should be returned
self.assertEqual(trades[0].amount, 5.0) # Amount should match the request
- self.assertEqual(self.queue._queue[0].amount, 5.0) # Remaining trade amount should update
+ tq = self.queue.get_copy()
+ self.assertEqual(tq[0].amount, 5.0) # Remaining trade amount should update
def test_remove_multiple_trades(self):
"""
@@ -47,7 +50,8 @@ class TestFIFOQueue(unittest.TestCase):
self.assertEqual(len(trades), 2) # Two trades should be returned
self.assertEqual(trades[0].amount, 10.0) # The first trade should be fully consumed
self.assertEqual(trades[1].amount, 15.0) # The second trade should be partially consumed
- self.assertEqual(self.queue._queue[0].amount, 5.0) # Remaining trade in queue should update
+ tq = self.queue.get_copy()
+ self.assertEqual(tq[0].amount, 5.0) # Remaining trade in queue should update
def test_remove_insufficient_amount(self):
"""
@@ -108,9 +112,10 @@ class TestFIFOQueue(unittest.TestCase):
self.assertEqual(trades[0].amount, 4.0) # Check the removed amount
self.assertEqual(trades[0].total_cost, 40.0) # Total cost should be proportional: (100 * 5 / 10)
- self.assertEqual(self.queue._queue[0].price_per_coin, 10) # Original total cost remains unchanged
- self.assertEqual(self.queue._queue[0].amount, 6.0) # Remaining amount in the first trade should be updated
- self.assertEqual(self.queue._queue[0].total_cost, 60.0) # Original total cost remains unchanged
+ tq = self.queue.get_copy()
+ self.assertEqual(tq[0].price_per_coin, 10) # Original total cost remains unchanged
+ self.assertEqual(tq[0].amount, 6.0) # Remaining amount in the first trade should be updated
+ self.assertEqual(tq[0].total_cost, 60.0) # Original total cost remains unchanged
if __name__ == "__main__":
unittest.main()