config: Make payment threshold configurable.

This commit is contained in:
Brett Smith 2020-05-16 09:51:02 -04:00
parent 2b7c1acff4
commit 1e09339b32
2 changed files with 17 additions and 3 deletions

View file

@ -157,7 +157,10 @@ class Config:
return books.FiscalYear(month, day)
def payment_threshold(self) -> decimal.Decimal:
return decimal.Decimal(0)
try:
return decimal.Decimal(self.file_config['Beancount']['payment threshold'])
except (KeyError, ValueError):
return decimal.Decimal(10)
def repository_path(self) -> Optional[Path]:
try:

View file

@ -293,11 +293,22 @@ def test_relative_xdg_cache_home_ignored(tmp_path):
cache_dir_path = config.cache_dir_path('TESTcache')
assert cache_dir_path == tmp_path / '.cache/TESTcache'
def test_payment_threshold():
def test_default_payment_threshold():
threshold = config_mod.Config().payment_threshold()
assert threshold == 0
assert isinstance(threshold, (int, decimal.Decimal))
@pytest.mark.parametrize('config_threshold', [
'15',
' +15',
'15. ',
'15.0',
'15.00',
])
def test_payment_threshold(config_threshold):
config = config_mod.Config()
config.load_string(f'[Beancount]\npayment threshold = {config_threshold}\n')
assert config.payment_threshold() == decimal.Decimal(15)
@pytest.mark.parametrize('config_path', [
None,
'',