diff --git a/src/budge/account.py b/src/budge/account.py index 27409f8..c563ed1 100644 --- a/src/budge/account.py +++ b/src/budge/account.py @@ -113,7 +113,7 @@ def daily_balance( given, the date of the first transaction is used. If the end date is not given, today's date is used. """ - start_date = start_date or next(self.transactions_range()).date + start_date = start_date or next(self.transactions_range(cleared=cleared)).date end_date = end_date or date.today() balance = self.balance(start_date, cleared) diff --git a/tests/budge/test_account.py b/tests/budge/test_account.py index c34099d..0b0dcb3 100644 --- a/tests/budge/test_account.py +++ b/tests/budge/test_account.py @@ -162,3 +162,25 @@ def test_account_daily_balance_future(account: Account, today: date): assert balances[9] == (date(2022, 12, 15), Money(2)) assert balances[11] == (date(2022, 12, 17), Money(4)) assert balances[-1] == (end_date, Money(5)) + + +def test_account_daily_balance_cleared_true(account: Account, today: date): + end_date = today + relativedelta(months=1) + balances = list(account.daily_balance(today, end_date, cleared=True)) + + assert len(balances) == 32 + assert balances[0] == (today, Money(1)) + assert balances[9] == (date(2022, 12, 15), Money(1)) + assert balances[11] == (date(2022, 12, 17), Money(3)) + assert balances[-1] == (end_date, Money(3)) + + +def test_account_daily_balance_cleared_false(account: Account, today: date): + end_date = today + relativedelta(months=1) + balances = list(account.daily_balance(today, end_date, cleared=False)) + + assert len(balances) == 32 + assert balances[0] == (today, Money(1)) + assert balances[9] == (date(2022, 12, 15), Money(1)) + assert balances[11] == (date(2022, 12, 17), Money(1)) + assert balances[-1] == (end_date, Money(2))