Files
@ 31146b884361
Branch filter:
Location: NPO-Accounting/conservancy_beancount/tests/test_data_is_opening_balance_txn.py - annotation
31146b884361
1.7 KiB
text/x-python
reconcile: Add initial FR support to statement reconciler.
4eaba1ebf645 4eaba1ebf645 1b7fdf4f3b00 4eaba1ebf645 1b7fdf4f3b00 1b7fdf4f3b00 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 701ccdc19250 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 701ccdc19250 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 71f50a6cf864 71f50a6cf864 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 4eaba1ebf645 | """Test data.is_opening_balance_txn function"""
# Copyright © 2020 Brett Smith
# License: AGPLv3-or-later WITH Beancount-Plugin-Additional-Permission-1.0
#
# Full copyright and licensing details can be found at toplevel file
# LICENSE.txt in the repository.
from decimal import Decimal
import pytest
from . import testutil
from conservancy_beancount import data
def test_typical_opening():
txn = testutil.OpeningBalance()
assert data.is_opening_balance_txn(txn)
def test_multiacct_opening():
txn = testutil.Transaction(postings=[
('Assets:Receivable:Accounts', 100),
(next(testutil.OPENING_EQUITY_ACCOUNTS), -100),
('Liabilities:Payable:Accounts', -150),
(next(testutil.OPENING_EQUITY_ACCOUNTS), 150),
])
assert data.is_opening_balance_txn(txn)
def test_opening_with_fx():
txn = testutil.OpeningBalance()
equity_post = txn.postings[-1]
txn.postings[-1] = equity_post._replace(
units=testutil.Amount(equity_post.units.number * Decimal('.9'), 'EUR'),
cost=testutil.Cost('1.11111'),
)
assert data.is_opening_balance_txn(txn)
@pytest.mark.parametrize('acct1,acct2,number', [
('Assets:Receivable:Accounts', 'Income:Donations', 100),
('Expenses:Other', 'Liabilities:Payable:Accounts', 200),
('Expenses:Other', 'Equity:Retained:Costs', 300),
# Release from restriction
('Equity:Funds:Unrestricted', 'Equity:Funds:Restricted', 400),
# Donation from project fund
('Equity:Funds:Restricted', 'Income:Donations', 500),
])
def test_not_opening_balance(acct1, acct2, number):
txn = testutil.Transaction(postings=[
(acct1, number),
(acct2, -number),
])
assert not data.is_opening_balance_txn(txn)
|