Beispiel #1
0
def test_was_selected_selects_errors(select_list, enable_extensions,
                                     error_code):
    """Verify we detect users explicitly selecting an error."""
    decider = style_guide.DecisionEngine(options=create_options(
        select=select_list, enable_extensions=enable_extensions), )

    assert decider.was_selected(error_code) is style_guide.Selected.Explicitly
Beispiel #2
0
def test_was_ignored_implicitly_selects_errors(ignore_list, extend_ignore,
                                               error_code):
    """Verify we detect users does not explicitly ignore an error."""
    decider = style_guide.DecisionEngine(
        create_options(ignore=ignore_list, extend_ignore=extend_ignore))

    assert decider.was_ignored(error_code) is style_guide.Selected.Implicitly
def test_was_ignored_ignores_errors(ignore_list, extend_ignore, error_code):
    """Verify we detect users explicitly ignoring an error."""
    decider = style_guide.DecisionEngine(
        create_options(ignore=ignore_list, extend_ignore=extend_ignore)
    )

    assert decider.was_ignored(error_code) is style_guide.Ignored.Explicitly
Beispiel #4
0
def test_decision_for(select_list, ignore_list, extend_ignore, error_code,
                      expected):
    """Verify we decide when to report an error."""
    decider = style_guide.DecisionEngine(
        create_options(select=select_list,
                       ignore=ignore_list,
                       extend_ignore=extend_ignore))

    assert decider.decision_for(error_code) is expected
Beispiel #5
0
def test_was_selected_implicitly_selects_errors():
    """Verify we detect users implicitly selecting an error."""
    error_code = 'E121'
    decider = style_guide.DecisionEngine(
        create_options(
            select=[],
            extended_default_select=['E'],
        ), )

    assert decider.was_selected(error_code) is style_guide.Selected.Implicitly
Beispiel #6
0
    def get_linter_classes(cls):
        linter_classes = dlint.linters.ALL + tuple(
            cls.get_plugin_linter_classes())

        if cls.options:
            engine = style_guide.DecisionEngine(cls.options)
            selected = style_guide.Decision.Selected
            linter_classes = tuple(
                linter_class for linter_class in linter_classes
                if engine.decision_for(linter_class._code) is selected)

        return linter_classes
    def parse_options(cls, options):
        cls.ignore_names = frozenset(options.ignore_names)
        cls.decorator_to_type = _build_decorator_to_type(
            options.classmethod_decorators, options.staticmethod_decorators)

        # Build a list of node visitors based the error codes that have been
        # selected in the style guide. Only the checks that have been selected
        # will be evaluated as a performance optimization.
        engine = style_guide.DecisionEngine(options)
        cls.visitors = frozenset(
            visitor for visitor in BaseASTCheck.all for code in visitor.codes
            if engine.decision_for(code) is style_guide.Decision.Selected)
Beispiel #8
0
def test_more_specific_decision_for_logic(select, ignore, extend_select,
                                          enabled_extensions, error_code,
                                          expected):
    """Verify the logic of DecisionEngine.more_specific_decision_for."""
    decider = style_guide.DecisionEngine(
        create_options(
            select=select,
            ignore=ignore,
            extended_default_select=extend_select,
            enable_extensions=enabled_extensions,
        ), )

    assert decider.more_specific_decision_for(error_code) is expected
Beispiel #9
0
def test_was_selected_excludes_errors(select_list, error_code):
    """Verify we detect users implicitly excludes an error."""
    decider = style_guide.DecisionEngine(create_options(select=select_list))

    assert decider.was_selected(error_code) is style_guide.Ignored.Implicitly