Skip to content

Commit 4d031b4

Browse files
committed
chore: cleanup dev settings
- allow use of uv if a venv is already active - remove grammarly from suggestions - refactor formatter tests to avoid running code like get_app when the module is imported - use pytest fixture to obtain rules collection used for testing, so we can remove another use of get_app() Related: AAP-60425
1 parent c17c39b commit 4d031b4

35 files changed

+612
-464
lines changed

.config/vulture_whitelist.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,6 @@
2626
_.BRIGHT_MAGENTA # unused variable (src/ansiblelint/output.py:185)
2727
_.BRIGHT_CYAN # unused variable (src/ansiblelint/output.py:186)
2828
_.BRIGHT_WHITE # unused variable (src/ansiblelint/output.py:187)
29+
formatter_collection # unused function (test/test_formatter.py:47)
30+
json_formatter_collection # unused function (test/test_formatter_json.py:29)
31+
sarif_formatter_collection # unused function (test/test_formatter_sarif.py:47)

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ junit.xml
3737
.python-version
3838

3939
# Environments
40-
.env
4140
.venv
4241
env/
4342
venv/

.vscode/extensions.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
"ryanluker.vscode-coverage-gutters",
1616
"shardulm94.trailing-spaces",
1717
"tombi-toml.tombi",
18-
"timonwong.shellcheck",
19-
"znck.grammarly"
18+
"timonwong.shellcheck"
2019
],
2120
"unwantedRecommendations": [
2221
"esbenp.prettier-vscode",

.vscode/settings.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@
3333
"build": true
3434
},
3535
"git.ignoreLimitWarning": true,
36-
"grammarly.config.documentDomain": "academic",
37-
"grammarly.files.include": ["**/*.txt", "**/*.md"],
3836
"mypy-type-checker.severity": {
3937
"error": "Warning"
4038
},

mise.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Ensure that you can use `uv` directly if you already have a pre-activated
2+
# virtual environment, otherwise `uv sync` will refuse to run as it will
3+
# complain about uv project environment being different than yours.
4+
[env]
5+
UV_PROJECT_ENVIRONMENT = "{{ get_env(name='VIRTUAL_ENV', default='.venv') }}"
6+
7+
[tools]
8+
python = "latest"

src/ansiblelint/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ def get_version_warning() -> str:
315315
"https://api.github.com/repos/ansible/ansible-lint/releases/latest"
316316
)
317317
try:
318-
with urllib.request.urlopen(release_url) as url:
318+
with urllib.request.urlopen(release_url) as url: # noqa: S310
319319
data = json.load(url)
320320
with open(cache_file, "w", encoding="utf-8") as f:
321321
json.dump(data, f)

src/ansiblelint/rules/avoid_implicit.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,21 @@ def matchtask(
4444
from ansiblelint.rules import RulesCollection
4545
from ansiblelint.runner import Runner
4646

47-
def test_template_instead_of_copy_positive() -> None:
47+
def test_template_instead_of_copy_positive(
48+
empty_rule_collection: RulesCollection,
49+
) -> None:
4850
"""Positive test for avoid-implicit."""
49-
collection = RulesCollection()
50-
collection.register(AvoidImplicitRule())
51+
empty_rule_collection.register(AvoidImplicitRule())
5152
success = "examples/playbooks/rule-avoid-implicit-pass.yml"
52-
good_runner = Runner(success, rules=collection)
53+
good_runner = Runner(success, rules=empty_rule_collection)
5354
assert good_runner.run() == []
5455

55-
def test_template_instead_of_copy_negative() -> None:
56+
def test_template_instead_of_copy_negative(
57+
empty_rule_collection: RulesCollection,
58+
) -> None:
5659
"""Negative test for avoid-implicit."""
57-
collection = RulesCollection()
58-
collection.register(AvoidImplicitRule())
60+
empty_rule_collection.register(AvoidImplicitRule())
5961
failure = "examples/playbooks/rule-avoid-implicit-fail.yml"
60-
bad_runner = Runner(failure, rules=collection)
62+
bad_runner = Runner(failure, rules=empty_rule_collection)
6163
errs = bad_runner.run()
6264
assert len(errs) == 1

src/ansiblelint/rules/deprecated_bare_vars.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -112,19 +112,17 @@ def _matchvar(
112112
from ansiblelint.runner import Runner
113113

114114
@pytest.mark.filterwarnings("ignore::ansible_compat.runtime.AnsibleWarning")
115-
def test_use_bare_positive() -> None:
115+
def test_use_bare_positive(empty_rule_collection: RulesCollection) -> None:
116116
"""Positive test for deprecated-bare-vars."""
117-
collection = RulesCollection()
118-
collection.register(UsingBareVariablesIsDeprecatedRule())
117+
empty_rule_collection.register(UsingBareVariablesIsDeprecatedRule())
119118
success = "examples/playbooks/rule-deprecated-bare-vars-pass.yml"
120-
good_runner = Runner(success, rules=collection)
119+
good_runner = Runner(success, rules=empty_rule_collection)
121120
assert good_runner.run() == []
122121

123-
def test_use_bare_negative() -> None:
122+
def test_use_bare_negative(empty_rule_collection: RulesCollection) -> None:
124123
"""Negative test for deprecated-bare-vars."""
125-
collection = RulesCollection()
126-
collection.register(UsingBareVariablesIsDeprecatedRule())
124+
empty_rule_collection.register(UsingBareVariablesIsDeprecatedRule())
127125
failure = "examples/playbooks/rule-deprecated-bare-vars-fail.yml"
128-
bad_runner = Runner(failure, rules=collection)
126+
bad_runner = Runner(failure, rules=empty_rule_collection)
129127
errs = bad_runner.run()
130128
assert len(errs) == 11

src/ansiblelint/rules/deprecated_local_action.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ def test_local_action_transform_fail(
229229
def test_local_action_transform(
230230
config_options: Options,
231231
monkeypatch: pytest.MonkeyPatch,
232+
empty_rule_collection: RulesCollection,
232233
) -> None:
233234
"""Test transform functionality for no-log-password rule."""
234235
monkeypatch.setenv("ANSIBLE_LINT_WRITE_TMP", "1")
@@ -237,10 +238,9 @@ def test_local_action_transform(
237238
config_options.write_list = ["all"]
238239

239240
config_options.lintables = [str(playbook)]
240-
only_local_action_rule: RulesCollection = RulesCollection()
241-
only_local_action_rule.register(TaskNoLocalActionRule())
241+
empty_rule_collection.register(TaskNoLocalActionRule())
242242
runner_result = get_matches(
243-
rules=only_local_action_rule,
243+
rules=empty_rule_collection,
244244
options=config_options,
245245
)
246246
transformer = Transformer(result=runner_result, options=config_options)

src/ansiblelint/rules/empty_string_compare.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,24 +58,26 @@ def matchtask(
5858
from ansiblelint.rules import RulesCollection
5959
from ansiblelint.runner import Runner
6060

61-
def test_rule_empty_string_compare_fail() -> None:
61+
def test_rule_empty_string_compare_fail(
62+
empty_rule_collection: RulesCollection,
63+
) -> None:
6264
"""Test rule matches."""
63-
rules = RulesCollection()
64-
rules.register(ComparisonToEmptyStringRule())
65+
empty_rule_collection.register(ComparisonToEmptyStringRule())
6566
results = Runner(
6667
"examples/playbooks/rule-empty-string-compare-fail.yml",
67-
rules=rules,
68+
rules=empty_rule_collection,
6869
).run()
6970
assert len(results) == 3
7071
for result in results:
7172
assert result.message == ComparisonToEmptyStringRule().shortdesc
7273

73-
def test_rule_empty_string_compare_pass() -> None:
74+
def test_rule_empty_string_compare_pass(
75+
empty_rule_collection: RulesCollection,
76+
) -> None:
7477
"""Test rule matches."""
75-
rules = RulesCollection()
76-
rules.register(ComparisonToEmptyStringRule())
78+
empty_rule_collection.register(ComparisonToEmptyStringRule())
7779
results = Runner(
7880
"examples/playbooks/rule-empty-string-compare-pass.yml",
79-
rules=rules,
81+
rules=empty_rule_collection,
8082
).run()
8183
assert len(results) == 0, results

0 commit comments

Comments
 (0)