Ejemplo n.º 1
0
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 == []
Ejemplo n.º 2
0
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 == []
Ejemplo n.º 3
0
    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))
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
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