@@ -24,12 +24,13 @@ from pathlib import Path
EXTREME_FUTURE_DATE = datetime.date(datetime.MAXYEAR, 12, 30)
FUTURE_DATE = datetime.date.today() + datetime.timedelta(days=365 * 99)
FY_START_DATE = datetime.date(2020, 3, 1)
FY_MID_DATE = datetime.date(2020, 9, 1)
PAST_DATE = datetime.date(2000, 1, 1)
TESTS_DIR = Path(__file__).parent
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):
if not expected:
assert not post.meta
@@ -39,12 +40,20 @@ def check_post_meta(txn, *expected_meta, default=None):
}
assert actual == expected
def parse_date(s, fmt='%Y-%m-%d'):
return datetime.datetime.strptime(s, fmt).date()
def test_path(s):
if s is None:
return s
s = Path(s)
if not s.is_absolute():
s = TESTS_DIR / s
def Posting(account, number,
currency='USD', cost=None, price=None, flag=None,
**meta):
if not meta:
meta = None
return bc_data.Posting(
@@ -95,17 +104,11 @@ class Transaction:
else:
posting = arg
self.postings.append(posting)
class TestConfig:
def __init__(self, repo_path=None):
if repo_path is not None:
repo_path = Path(repo_path)
if not repo_path.is_absolute():
repo_path = Path(self.TESTS_DIR, repo_path)
self.repo_path = repo_path
self.repo_path = test_path(repo_path)
def repository_path(self):
return self.repo_path