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])
|
retval = default or (Path.home() / self._ENVIRON_DEFAULT_PATHS[key])
|
||||||
return retval
|
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]:
|
def books_path(self) -> Optional[Path]:
|
||||||
try:
|
try:
|
||||||
retval = Path(self.file_config['Beancount'].get('books dir'))
|
retval = Path(self.file_config['Beancount'].get('books dir'))
|
||||||
|
|
|
@ -381,3 +381,14 @@ def test_default_fiscal_year_begin():
|
||||||
actual = config.fiscal_year_begin()
|
actual = config.fiscal_year_begin()
|
||||||
assert actual.month == 3
|
assert actual.month == 3
|
||||||
assert actual.day == 1
|
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