config: Add Config.books_loader() method.
This commit is contained in:
parent
96a363633f
commit
3000aeee09
2 changed files with 18 additions and 0 deletions
|
@ -111,6 +111,13 @@ class Config:
|
|||
retval = default or (Path.home() / self._ENVIRON_DEFAULT_PATHS[key])
|
||||
return retval
|
||||
|
||||
def books_loader(self) -> Optional[books.Loader]:
|
||||
books_path = self.books_path()
|
||||
if books_path is None:
|
||||
return None
|
||||
else:
|
||||
return books.Loader(books_path, self.fiscal_year_begin())
|
||||
|
||||
def books_path(self) -> Optional[Path]:
|
||||
try:
|
||||
retval = Path(self.file_config['Beancount'].get('books dir'))
|
||||
|
|
|
@ -381,3 +381,14 @@ def test_default_fiscal_year_begin():
|
|||
actual = config.fiscal_year_begin()
|
||||
assert actual.month == 3
|
||||
assert actual.day == 1
|
||||
|
||||
def test_books_loader():
|
||||
books_path = testutil.test_path('bookstest')
|
||||
config = config_mod.Config()
|
||||
config.load_string(f'[Beancount]\nbooks dir = {books_path}\n')
|
||||
loader = config.books_loader()
|
||||
expected = 'include "{}"'.format(books_path / 'books/2020.beancount')
|
||||
assert loader.fy_range_string(0, 2020, {}) == expected
|
||||
|
||||
def test_books_loader_without_books():
|
||||
assert config_mod.Config().books_loader() is None
|
||||
|
|
Loading…
Reference in a new issue