conservancy_beancount/tests/test_reports_balance_sheet.py
Brett Smith ffc20b6899 reports: Move Balance class and friends to core.
This will be used for the fund report and the upcoming budget variance
report.
2020-10-16 10:53:15 -04:00

46 lines
1.5 KiB
Python

"""test_reports_balance_sheet.py - Unit tests for balance sheet report"""
# Copyright © 2020 Brett Smith
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import datetime
import io
import itertools
import pytest
from . import testutil
import odf.opendocument
from conservancy_beancount.reports import balance_sheet
clean_account_meta = pytest.fixture(scope='module')(testutil.clean_account_meta)
def run_main(arglist=[], config=None):
if config is None:
config = testutil.TestConfig(books_path=testutil.test_path('books/fund.beancount'))
stdout = io.BytesIO()
stderr = io.StringIO()
retcode = balance_sheet.main(['-O', '-'] + arglist, stdout, stderr, config)
stdout.seek(0)
stderr.seek(0)
return retcode, stdout, stderr
def test_main():
retcode, stdout, stderr = run_main()
assert retcode == 0
assert not stderr.getvalue()
report = odf.opendocument.load(stdout)
assert report.spreadsheet.childNodes