summaryrefslogtreecommitdiff
path: root/test_ledger_process.py
diff options
context:
space:
mode:
Diffstat (limited to 'test_ledger_process.py')
-rw-r--r--test_ledger_process.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/test_ledger_process.py b/test_ledger_process.py
index e5399d3..0dc58b8 100644
--- a/test_ledger_process.py
+++ b/test_ledger_process.py
@@ -66,6 +66,45 @@ class TestLedgerProcess(unittest.TestCase):
with self.assertRaises(TradeNotFound):
self.lp.process_ledger([deposit])
+ def test_withdraw_afterbalance(self):
+ """Test withdrawing and subsequently checking balance."""
+
+ eur_trade = LedgerAction(
+ type="trade",
+ asset="EUR",
+ amount=Decimal("-500.00"),
+ fee=Decimal("2.00"),
+ timestamp="2025-04-17 10:00:00",
+ refid="12345",
+ )
+ crypto_trade = LedgerAction(
+ type="trade",
+ asset="BTC",
+ amount=Decimal("0.1"),
+ fee=Decimal("0.001"),
+ timestamp="2025-04-17 10:00:00",
+ refid="12345",
+ )
+
+ withdrawal = LedgerAction(
+ type="withdrawal",
+ asset="BTC",
+ amount=Decimal("-0.099"),
+ fee=Decimal("0.00"),
+ timestamp="2025-04-17 12:00:00",
+ refid="67890",
+ )
+
+ self.lp.process_ledger([eur_trade, crypto_trade, withdrawal])
+
+ self.assertEqual(len(self.lp.fifo_queues["BTC"]), 0)
+ self.assertEqual(
+ self.lp.fifo_queues["BTC"].get_remaining_amount(), Decimal("0.0")
+ )
+ self.assertEqual(len(self.lp.external_wallet["BTC"]), 1)
+ self.assertEqual(
+ self.lp.external_wallet["BTC"].get_remaining_amount(), Decimal("0.099")
+ )
if __name__ == "__main__":
unittest.main()