From b5ceacdb258b9f1e8ab2b24dc8da7e3a0521e0e6 Mon Sep 17 00:00:00 2001 From: uvok Date: Fri, 18 Apr 2025 17:36:03 +0200 Subject: Add custom type --- exceptions.py | 2 ++ ledger_process.py | 5 +++-- test_ledger_process.py | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 exceptions.py diff --git a/exceptions.py b/exceptions.py new file mode 100644 index 0000000..ec210a2 --- /dev/null +++ b/exceptions.py @@ -0,0 +1,2 @@ +class MismatchedTradeError(Exception): + pass diff --git a/ledger_process.py b/ledger_process.py index dd82877..adcaacb 100644 --- a/ledger_process.py +++ b/ledger_process.py @@ -3,6 +3,7 @@ from itertools import groupby import logging from typing import Dict, List +from exceptions import MismatchedTradeError from ledger_action import LedgerAction from trade import Trade from trade_queue import FIFOQueue @@ -98,7 +99,7 @@ class LedgerProcess: ) else: logger.error(f"Trade group doesn't have expected currencies.") - raise ValueError(f"Unexpected trade grouping for refid {refid}") + raise MismatchedTradeError(f"Unexpected trade grouping for refid {refid}") else: logger.error(f"Trade group has {len(trades)} trades, expected 2.") - raise ValueError(f"Unexpected number of trades for refid {refid}") + raise MismatchedTradeError(f"Unexpected number of trades for refid {refid}") diff --git a/test_ledger_process.py b/test_ledger_process.py index 092619a..fbbae1d 100644 --- a/test_ledger_process.py +++ b/test_ledger_process.py @@ -1,5 +1,6 @@ import unittest from decimal import Decimal +from exceptions import MismatchedTradeError from ledger_action import LedgerAction from ledger_process import LedgerProcess @@ -48,7 +49,7 @@ class TestLedgerProcess(unittest.TestCase): timestamp="2025-04-17 10:00:00", refid="12345", ) - with self.assertRaises(ValueError): + with self.assertRaises(MismatchedTradeError): self.lp.process_ledger([crypto_trade]) # EUR row missing def test_unsupported_deposit(self): -- cgit v1.2.3