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
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
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
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
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)
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
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