config: fiscal_year_begin returns a FiscalYear.

This commit is contained in:
Brett Smith 2020-04-21 09:07:14 -04:00
parent 5c60666619
commit 51137815d3
2 changed files with 6 additions and 3 deletions

View file

@ -33,6 +33,7 @@ from typing import (
Type,
)
from . import books
from . import rtutil
class RTCredentials(NamedTuple):
@ -130,7 +131,7 @@ class Config:
config_root = self._path_from_environ('XDG_CONFIG_HOME')
return Path(config_root, name, 'config.ini')
def fiscal_year_begin(self) -> Tuple[int, int]:
def fiscal_year_begin(self) -> books.FiscalYear:
s = self.file_config.get('Beancount', 'fiscal year begin', fallback='3 1')
match = re.match(r'([01]?[0-9])(?:\s*[-./ ]\s*([0-3]?[0-9]))?$', s.strip())
if match is None:
@ -146,7 +147,7 @@ class Config:
except ValueError as e:
raise ValueError(f"fiscal year begin {s!r} is invalid date: {e.args[0]}")
else:
return (month, day)
return books.FiscalYear(month, day)
def payment_threshold(self) -> decimal.Decimal:
return decimal.Decimal(0)

View file

@ -378,4 +378,6 @@ def test_bad_fiscal_year_begin(value):
def test_default_fiscal_year_begin():
config = config_mod.Config()
assert config.fiscal_year_begin() == (3, 1)
actual = config.fiscal_year_begin()
assert actual.month == 3
assert actual.day == 1