diff --git a/tests/testutil.py b/tests/testutil.py index 4d25277be26cf475e106ea6f6e7ab4c7cd614df4..2d05133f9eff9745622ebb224424b3c560829fb1 100644 --- a/tests/testutil.py +++ b/tests/testutil.py @@ -20,6 +20,7 @@ import re import beancount.core.amount as bc_amount import beancount.core.data as bc_data +import beancount.loader as bc_loader from decimal import Decimal from pathlib import Path @@ -33,6 +34,11 @@ FY_MID_DATE = datetime.date(2020, 9, 1) PAST_DATE = datetime.date(2000, 1, 1) TESTS_DIR = Path(__file__).parent +def check_lines_match(lines, expect_patterns, source='output'): + for pattern in expect_patterns: + assert any(re.search(pattern, line) for line in lines), \ + f"{pattern!r} not found in {source}" + def check_post_meta(txn, *expected_meta, default=None): assert len(txn.postings) == len(expected_meta) for post, expected in zip(txn.postings, expected_meta): @@ -180,6 +186,8 @@ class TestBooksLoader(books.Loader): def fy_range_string(self, from_fy=None, to_fy=None, plugins=None): return f'include "{self.source}"' + load_string = staticmethod(bc_loader.load_string) + class TestConfig: def __init__(self, *,