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…
	
	Add table
		
		Reference in a new issue