-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Set up a snapshot test for the default output of
--show-settings
- Loading branch information
1 parent
2856361
commit 685ea76
Showing
2 changed files
with
389 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
use insta_cmd::{assert_cmd_snapshot, get_cargo_bin}; | ||
use std::path::Path; | ||
use std::process::Command; | ||
|
||
const BIN_NAME: &str = "ruff"; | ||
|
||
#[cfg(not(target_os = "windows"))] | ||
const TEST_FILTERS: &[(&str, &str)] = &[ | ||
("\"[^\\*\"]*/pyproject.toml", "\"[BASEPATH]/pyproject.toml"), | ||
("\".*/crates", "\"[BASEPATH]/crates"), | ||
("\".*/\\.ruff_cache", "\"[BASEPATH]/.ruff_cache"), | ||
("\".*/ruff\"", "\"[BASEPATH]\""), | ||
]; | ||
#[cfg(target_os = "windows")] | ||
const TEST_FILTERS: &[(&str, &str)] = &[ | ||
(r".*\\resources\\test\\fixtures\\", "[BASEPATH]\\"), | ||
(r#"[^\*"]*\\pyproject.toml"#, "\"[BASEPATH]\\pyproject.toml"), | ||
(r#"".*\\crates"#, "\"[BASEPATH]\\crates"), | ||
(r#"".*\\\.ruff_cache"#, "\"[BASEPATH]\\.ruff_cache"), | ||
(r#"".*\\ruff""#, "\"[BASEPATH]\"")(r"\\", "/"), | ||
]; | ||
|
||
#[test] | ||
fn display_default_settings() { | ||
insta::with_settings!({ filters => TEST_FILTERS.to_vec() }, { assert_cmd_snapshot!(Command::new(get_cargo_bin(BIN_NAME)) | ||
.args(["check", "--show-settings", "unformatted.py"]).current_dir(Path::new("./resources/test/fixtures"))) } ); | ||
} |
362 changes: 362 additions & 0 deletions
362
crates/ruff_cli/tests/snapshots/show_settings__display_default_settings.snap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,362 @@ | ||
--- | ||
source: crates/ruff_cli/tests/show_settings.rs | ||
info: | ||
program: ruff | ||
args: | ||
- check | ||
- "--show-settings" | ||
- unformatted.py | ||
--- | ||
success: true | ||
exit_code: 0 | ||
----- stdout ----- | ||
Resolved settings for: "[BASEPATH]/crates/ruff_cli/resources/test/fixtures/unformatted.py" | ||
Settings path: "[BASEPATH]/pyproject.toml" | ||
cache_dir = "[BASEPATH]/.ruff_cache" | ||
fix = false | ||
fix_only = false | ||
output_format = text | ||
show_fixes = false | ||
show_source = false | ||
unsafe_fixes = hint | ||
# File Resolver Settings | ||
file_resolver.exclude = [ | ||
".bzr", | ||
".direnv", | ||
".eggs", | ||
".git", | ||
".git-rewrite", | ||
".hg", | ||
".ipynb_checkpoints", | ||
".mypy_cache", | ||
".nox", | ||
".pants.d", | ||
".pyenv", | ||
".pytest_cache", | ||
".pytype", | ||
".ruff_cache", | ||
".svn", | ||
".tox", | ||
".venv", | ||
".vscode", | ||
"__pypackages__", | ||
"_build", | ||
"buck-out", | ||
"build", | ||
"dist", | ||
"node_modules", | ||
"site-packages", | ||
"venv", | ||
] | ||
file_resolver.extend_exclude = [ | ||
"crates/ruff_linter/resources/", | ||
"crates/ruff_python_formatter/resources/", | ||
] | ||
file_resolver.force_exclude = false | ||
file_resolver.include = [ | ||
"*.py", | ||
"*.pyi", | ||
"**/pyproject.toml", | ||
] | ||
file_resolver.extend_include = [] | ||
file_resolver.respect_gitignore = true | ||
file_resolver.project_root = "[BASEPATH]" | ||
# Linter Settings | ||
linter.exclude = [] | ||
linter.project_root = "[BASEPATH]" | ||
linter.rules.enabled = [ | ||
MultipleImportsOnOneLine, | ||
ModuleImportNotAtTopOfFile, | ||
MultipleStatementsOnOneLineColon, | ||
MultipleStatementsOnOneLineSemicolon, | ||
UselessSemicolon, | ||
NoneComparison, | ||
TrueFalseComparison, | ||
NotInTest, | ||
NotIsTest, | ||
TypeComparison, | ||
BareExcept, | ||
LambdaAssignment, | ||
AmbiguousVariableName, | ||
AmbiguousClassName, | ||
AmbiguousFunctionName, | ||
IOError, | ||
SyntaxError, | ||
UnusedImport, | ||
ImportShadowedByLoopVar, | ||
UndefinedLocalWithImportStar, | ||
LateFutureImport, | ||
UndefinedLocalWithImportStarUsage, | ||
UndefinedLocalWithNestedImportStarUsage, | ||
FutureFeatureNotDefined, | ||
PercentFormatInvalidFormat, | ||
PercentFormatExpectedMapping, | ||
PercentFormatExpectedSequence, | ||
PercentFormatExtraNamedArguments, | ||
PercentFormatMissingArgument, | ||
PercentFormatMixedPositionalAndNamed, | ||
PercentFormatPositionalCountMismatch, | ||
PercentFormatStarRequiresSequence, | ||
PercentFormatUnsupportedFormatCharacter, | ||
StringDotFormatInvalidFormat, | ||
StringDotFormatExtraNamedArguments, | ||
StringDotFormatExtraPositionalArguments, | ||
StringDotFormatMissingArguments, | ||
StringDotFormatMixingAutomatic, | ||
FStringMissingPlaceholders, | ||
MultiValueRepeatedKeyLiteral, | ||
MultiValueRepeatedKeyVariable, | ||
ExpressionsInStarAssignment, | ||
MultipleStarredExpressions, | ||
AssertTuple, | ||
IsLiteral, | ||
InvalidPrintSyntax, | ||
IfTuple, | ||
BreakOutsideLoop, | ||
ContinueOutsideLoop, | ||
YieldOutsideFunction, | ||
ReturnOutsideFunction, | ||
DefaultExceptNotLast, | ||
ForwardAnnotationSyntaxError, | ||
RedefinedWhileUnused, | ||
UndefinedName, | ||
UndefinedExport, | ||
UndefinedLocal, | ||
UnusedVariable, | ||
UnusedAnnotation, | ||
RaiseNotImplemented, | ||
] | ||
linter.rules.should_fix = [ | ||
MultipleImportsOnOneLine, | ||
ModuleImportNotAtTopOfFile, | ||
MultipleStatementsOnOneLineColon, | ||
MultipleStatementsOnOneLineSemicolon, | ||
UselessSemicolon, | ||
NoneComparison, | ||
TrueFalseComparison, | ||
NotInTest, | ||
NotIsTest, | ||
TypeComparison, | ||
BareExcept, | ||
LambdaAssignment, | ||
AmbiguousVariableName, | ||
AmbiguousClassName, | ||
AmbiguousFunctionName, | ||
IOError, | ||
SyntaxError, | ||
UnusedImport, | ||
ImportShadowedByLoopVar, | ||
UndefinedLocalWithImportStar, | ||
LateFutureImport, | ||
UndefinedLocalWithImportStarUsage, | ||
UndefinedLocalWithNestedImportStarUsage, | ||
FutureFeatureNotDefined, | ||
PercentFormatInvalidFormat, | ||
PercentFormatExpectedMapping, | ||
PercentFormatExpectedSequence, | ||
PercentFormatExtraNamedArguments, | ||
PercentFormatMissingArgument, | ||
PercentFormatMixedPositionalAndNamed, | ||
PercentFormatPositionalCountMismatch, | ||
PercentFormatStarRequiresSequence, | ||
PercentFormatUnsupportedFormatCharacter, | ||
StringDotFormatInvalidFormat, | ||
StringDotFormatExtraNamedArguments, | ||
StringDotFormatExtraPositionalArguments, | ||
StringDotFormatMissingArguments, | ||
StringDotFormatMixingAutomatic, | ||
FStringMissingPlaceholders, | ||
MultiValueRepeatedKeyLiteral, | ||
MultiValueRepeatedKeyVariable, | ||
ExpressionsInStarAssignment, | ||
MultipleStarredExpressions, | ||
AssertTuple, | ||
IsLiteral, | ||
InvalidPrintSyntax, | ||
IfTuple, | ||
BreakOutsideLoop, | ||
ContinueOutsideLoop, | ||
YieldOutsideFunction, | ||
ReturnOutsideFunction, | ||
DefaultExceptNotLast, | ||
ForwardAnnotationSyntaxError, | ||
RedefinedWhileUnused, | ||
UndefinedName, | ||
UndefinedExport, | ||
UndefinedLocal, | ||
UnusedVariable, | ||
UnusedAnnotation, | ||
RaiseNotImplemented, | ||
] | ||
linter.per_file_ignores = {} | ||
linter.safety_table.forced_safe = [] | ||
linter.safety_table.forced_unsafe = [] | ||
linter.target_version = Py37 | ||
linter.preview = disabled | ||
linter.explicit_preview_rules = false | ||
linter.extension.mapping = {} | ||
linter.allowed_confusables = [] | ||
linter.builtins = [] | ||
linter.dummy_variable_rgx = ^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$ | ||
linter.external = [] | ||
linter.ignore_init_module_imports = false | ||
linter.logger_objects = [] | ||
linter.namespace_packages = [] | ||
linter.src = ["[BASEPATH]"] | ||
linter.tab_size = 4 | ||
linter.line_length = 88 | ||
linter.task_tags = [ | ||
TODO, | ||
FIXME, | ||
XXX, | ||
] | ||
linter.typing_modules = [] | ||
linter.flake8_annotations.mypy_init_return = false | ||
linter.flake8_annotations.suppress_dummy_args = false | ||
linter.flake8_annotations.suppress_none_returning = false | ||
linter.flake8_annotations.allow_star_arg_any = false | ||
linter.flake8_annotations.ignore_fully_untyped = false | ||
linter.flake8_bandit.hardcoded_tmp_directory = [ | ||
/tmp, | ||
/var/tmp, | ||
/dev/shm, | ||
] | ||
linter.flake8_bandit.check_typed_exception = false | ||
linter.flake8_bugbear.extend_immutable_calls = [] | ||
linter.flake8_builtins.builtins_ignorelist = [] | ||
linter.flake8_comprehensions.allow_dict_calls_with_keyword_arguments = false | ||
linter.flake8_copyright.notice_rgx = (?i)Copyright\s+(\(C\)\s+)?\d{4}(-\d{4})* | ||
linter.flake8_copyright.author = nil | ||
linter.flake8_copyright.min_file_size = 0 | ||
linter.flake8_errmsg.max_string_length = 0 | ||
linter.flake8_gettext.functions_names = [ | ||
_, | ||
gettext, | ||
ngettext, | ||
] | ||
linter.flake8_implicit_str_concat.allow_multiline = true | ||
linter.flake8_import_conventions.aliases = {"matplotlib": "mpl", "matplotlib.pyplot": "plt", "pandas": "pd", "seaborn": "sns", "tensorflow": "tf", "networkx": "nx", "plotly.express": "px", "polars": "pl", "numpy": "np", "panel": "pn", "pyarrow": "pa", "altair": "alt", "tkinter": "tk", "holoviews": "hv"} | ||
linter.flake8_import_conventions.banned_aliases = {} | ||
linter.flake8_import_conventions.banned_from = [] | ||
linter.flake8_pytest_style.fixture_parentheses = true | ||
linter.flake8_pytest_style.parametrize_names_type = tuple | ||
linter.flake8_pytest_style.parametrize_values_type = list | ||
linter.flake8_pytest_style.parametrize_values_row_type = tuple | ||
linter.flake8_pytest_style.raises_require_match_for = [ | ||
BaseException, | ||
Exception, | ||
ValueError, | ||
OSError, | ||
IOError, | ||
EnvironmentError, | ||
socket.error, | ||
] | ||
linter.flake8_pytest_style.raises_extend_require_match_for = [] | ||
linter.flake8_pytest_style.mark_parentheses = true | ||
linter.flake8_quotes.inline_quotes = double | ||
linter.flake8_quotes.multiline_quotes = double | ||
linter.flake8_quotes.docstring_quotes = double | ||
linter.flake8_quotes.avoid_escape = true | ||
linter.flake8_self.ignore_names = [ | ||
_make, | ||
_asdict, | ||
_replace, | ||
_fields, | ||
_field_defaults, | ||
_name_, | ||
_value_, | ||
] | ||
linter.flake8_tidy_imports.ban_relative_imports = "parents" | ||
linter.flake8_tidy_imports.banned_api = {} | ||
linter.flake8_tidy_imports.banned_module_level_imports = [] | ||
linter.flake8_type_checking.strict = false | ||
linter.flake8_type_checking.exempt_modules = [ | ||
typing, | ||
typing_extensions, | ||
] | ||
linter.flake8_type_checking.runtime_required_base_classes = [] | ||
linter.flake8_type_checking.runtime_required_decorators = [] | ||
linter.flake8_type_checking.quote_annotations = false | ||
linter.flake8_unused_arguments.ignore_variadic_names = false | ||
linter.isort.required_imports = [] | ||
linter.isort.combine_as_imports = false | ||
linter.isort.force_single_line = false | ||
linter.isort.force_sort_within_sections = false | ||
linter.isort.detect_same_package = true | ||
linter.isort.case_sensitive = false | ||
linter.isort.force_wrap_aliases = false | ||
linter.isort.force_to_top = [] | ||
linter.isort.known_modules = {} | ||
linter.isort.order_by_type = true | ||
linter.isort.relative_imports_order = furthest_to_closest | ||
linter.isort.single_line_exclusions = [] | ||
linter.isort.split_on_trailing_comma = true | ||
linter.isort.classes = [] | ||
linter.isort.constants = [] | ||
linter.isort.variables = [] | ||
linter.isort.no_lines_before = [] | ||
linter.isort.lines_after_imports = -1 | ||
linter.isort.lines_between_types = 0 | ||
linter.isort.forced_separate = [] | ||
linter.isort.section_order = [ | ||
known { type = future }, | ||
known { type = standard_library }, | ||
known { type = third_party }, | ||
known { type = first_party }, | ||
known { type = local_folder }, | ||
] | ||
linter.isort.no_sections = false | ||
linter.isort.from_first = false | ||
linter.isort.length_sort = false | ||
linter.isort.length_sort_straight = false | ||
linter.mccabe.max_complexity = 10 | ||
linter.pep8_naming.ignore_names = [ | ||
setUp, | ||
tearDown, | ||
setUpClass, | ||
tearDownClass, | ||
setUpModule, | ||
tearDownModule, | ||
asyncSetUp, | ||
asyncTearDown, | ||
setUpTestData, | ||
failureException, | ||
longMessage, | ||
maxDiff, | ||
] | ||
linter.pep8_naming.classmethod_decorators = [] | ||
linter.pep8_naming.staticmethod_decorators = [] | ||
linter.pycodestyle.max_line_length = 88 | ||
linter.pycodestyle.max_doc_length = nil | ||
linter.pycodestyle.ignore_overlong_task_comments = false | ||
linter.pyflakes.extend_generics = [] | ||
linter.pylint.allow_magic_value_types = [ | ||
str, | ||
bytes, | ||
] | ||
linter.pylint.allow_dunder_method_names = [] | ||
linter.pylint.max_args = 5 | ||
linter.pylint.max_positional_args = 5 | ||
linter.pylint.max_returns = 6 | ||
linter.pylint.max_bool_expr = 5 | ||
linter.pylint.max_branches = 12 | ||
linter.pylint.max_statements = 50 | ||
linter.pylint.max_public_methods = 20 | ||
linter.pylint.max_locals = 15 | ||
linter.pyupgrade.keep_runtime_typing = false | ||
# Formatter Settings | ||
formatter.exclude = [] | ||
formatter.target_version = Py37 | ||
formatter.preview = disabled | ||
formatter.line_width = 88 | ||
formatter.line_ending = auto | ||
formatter.indent_style = space | ||
formatter.indent_width = 4 | ||
formatter.quote_style = double | ||
formatter.magic_trailing_comma = respect | ||
formatter.docstring_code_format = disabled | ||
formatter.docstring_code_line_width = dynamic | ||
|
||
|
||
----- stderr ----- | ||
|