def test_find_extensions(): classes, errors = find_extensions('.', 'NOMODULENAME') assert classes == [] assert len(errors) == 1 assert errors[0].message == 'Importing module "NOMODULENAME" failed.' classes, errors = find_extensions('.', 'fava') assert classes == [] assert len(errors) == 1 assert errors[0].message == 'Module "fava" contains no extensions.' path = os.path.join(os.path.dirname(__file__), '../fava/ext') classes, errors = find_extensions(path, 'auto_commit') assert len(classes) == 1 assert classes[0].__name__ == 'AutoCommit' assert errors == []
def test_find_extensions(): classes, errors = find_extensions(".", "NOMODULENAME") assert classes == [] assert len(errors) == 1 assert errors[0].message == 'Importing module "NOMODULENAME" failed.' classes, errors = find_extensions(".", "fava") assert classes == [] assert len(errors) == 1 assert errors[0].message == 'Module "fava" contains no extensions.' path = os.path.join(os.path.dirname(__file__), "../fava/ext") classes, errors = find_extensions(path, "auto_commit") assert len(classes) == 1 assert classes[0].__name__ == "AutoCommit" assert errors == []
def load_file(self) -> None: all_extensions = [] custom_entries = self.ledger.all_entries_by_type[Custom] _extension_entries = extension_entries(custom_entries) for extension in _extension_entries: extensions, errors = find_extensions( os.path.dirname(self.ledger.beancount_file_path), extension ) all_extensions.extend(extensions) self.ledger.errors.extend(errors) for cls in all_extensions: module = cls.__module__ ext_config = ( _extension_entries[module] if (module in _extension_entries) else None ) if cls not in self._instances: self._instances[cls] = cls(self.ledger, ext_config) self.reports = [] for ext_class in self._instances: ext = self._instances[ext_class] if ext.report_title is not None: self.reports.append((ext.name, ext.report_title))
def load_file(self): self._extensions = [] for extension in self.ledger.fava_options['extensions']: extensions, errors = find_extensions( os.path.dirname(self.ledger.beancount_file_path), extension) self._extensions.extend(extensions) self.ledger.errors.extend(errors) for cls in self._extensions: if cls not in self._instances: self._instances[cls] = cls(self.ledger)
def test_find_extensions(): classes, errors = find_extensions(".", "NOMODULENAME") assert not classes assert len(errors) == 1 assert errors[0].message == 'Importing module "NOMODULENAME" failed.' classes, errors = find_extensions(".", "fava") assert not classes assert len(errors) == 1 assert errors[0].message == 'Module "fava" contains no extensions.' path = Path(__file__).parent.parent / "src" / "fava" / "ext" classes, errors = find_extensions(str(path), "auto_commit") assert len(classes) == 1 assert classes[0].__name__ == "AutoCommit" assert not errors path = Path(__file__).parent.parent / "src" / "fava" / "ext" classes, errors = find_extensions(str(path), "portfolio_list") assert len(classes) == 1 assert classes[0].__name__ == "PortfolioList" assert not errors