crackerjack 0.21.1__tar.gz → 0.21.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {crackerjack-0.21.1 → crackerjack-0.21.2}/PKG-INFO +1 -1
- crackerjack-0.21.2/crackerjack/.pre-commit-config-ai.yaml +135 -0
- crackerjack-0.21.2/crackerjack/.ruff_cache/0.12.1/5056746222905752453 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/crackerjack.py +21 -5
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/pyproject.toml +1 -1
- {crackerjack-0.21.1 → crackerjack-0.21.2}/pyproject.toml +1 -1
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/test_crackerjack.py +69 -0
- crackerjack-0.21.1/crackerjack/.ruff_cache/0.12.1/5056746222905752453 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/LICENSE +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/README.md +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.gitignore +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.libcst.codemod.yaml +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.pdm.toml +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.pre-commit-config.yaml +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.pytest_cache/.gitignore +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.pytest_cache/CACHEDIR.TAG +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.pytest_cache/README.md +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.pytest_cache/v/cache/nodeids +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.pytest_cache/v/cache/stepwise +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/.gitignore +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.1.11/3256171999636029978 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.1.14/602324811142551221 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.1.4/10355199064880463147 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.1.6/15140459877605758699 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.1.7/1790508110482614856 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.1.9/17041001205004563469 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.11/18187162184424859798 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.12/16869036553936192448 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.12/1867267426380906393 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.12/4240757255861806333 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.12/4441409093023629623 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.13/1867267426380906393 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.13/4240757255861806333 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.2/4070660268492669020 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.3/9818742842212983150 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.4/9818742842212983150 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.6/3557596832929915217 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.7/10386934055395314831 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.7/3557596832929915217 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.8/530407680854991027 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.12.0/5056746222905752453 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.2.0/10047773857155985907 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.2.1/8522267973936635051 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.2.2/18053836298936336950 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.3.0/12548816621480535786 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.3.3/11081883392474770722 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.3.4/676973378459347183 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.3.5/16311176246009842383 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.5.7/1493622539551733492 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.5.7/6231957614044513175 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.5.7/9932762556785938009 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.6.0/11982804814124138945 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.6.0/12055761203849489982 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.6.2/1206147804896221174 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.6.4/1206147804896221174 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.6.5/1206147804896221174 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.6.7/3657366982708166874 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.6.9/285614542852677309 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.7.1/1024065805990144819 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.7.1/285614542852677309 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.7.3/16061516852537040135 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.8.4/16354268377385700367 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.9.10/12813592349865671909 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.9.10/923908772239632759 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.9.3/13948373885254993391 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.9.9/12813592349865671909 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.9.9/8843823720003377982 +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/CACHEDIR.TAG +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/__init__.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/__main__.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/errors.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/interactive.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/py313.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/TESTING.md +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/__init__.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/conftest.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/data/comments_sample.txt +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/data/docstrings_sample.txt +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/data/expected_comments_sample.txt +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/data/init.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/test_crackerjack_runner.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/test_errors.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/test_interactive.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/test_interactive_run.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/test_main.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/test_py313_advanced.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/test_py313_features.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/test_pytest_features.py +0 -0
- {crackerjack-0.21.1 → crackerjack-0.21.2}/tests/test_structured_errors.py +0 -0
@@ -0,0 +1,135 @@
|
|
1
|
+
repos:
|
2
|
+
# File structure and format validators - check structure first
|
3
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
4
|
+
rev: v5.0.0
|
5
|
+
hooks:
|
6
|
+
- id: trailing-whitespace
|
7
|
+
name: trailing-whitespace
|
8
|
+
verbose: true
|
9
|
+
- id: end-of-file-fixer
|
10
|
+
name: end-of-file-fixer
|
11
|
+
verbose: true
|
12
|
+
- id: check-yaml
|
13
|
+
name: check-yaml
|
14
|
+
verbose: true
|
15
|
+
- id: check-toml
|
16
|
+
name: check-toml
|
17
|
+
verbose: true
|
18
|
+
- id: check-added-large-files
|
19
|
+
name: check-added-large-files
|
20
|
+
verbose: true
|
21
|
+
|
22
|
+
- repo: https://github.com/abravalheri/validate-pyproject
|
23
|
+
rev: v0.24.1
|
24
|
+
hooks:
|
25
|
+
- id: validate-pyproject
|
26
|
+
verbose: true
|
27
|
+
|
28
|
+
- repo: https://github.com/tox-dev/pyproject-fmt
|
29
|
+
rev: "v2.6.0"
|
30
|
+
hooks:
|
31
|
+
- id: pyproject-fmt
|
32
|
+
verbose: true
|
33
|
+
|
34
|
+
# Package management - once structure is valid
|
35
|
+
- repo: https://github.com/pdm-project/pdm
|
36
|
+
rev: 2.25.3
|
37
|
+
hooks:
|
38
|
+
- id: pdm-lock-check
|
39
|
+
verbose: true
|
40
|
+
- id: pdm-sync
|
41
|
+
verbose: true
|
42
|
+
additional_dependencies:
|
43
|
+
- keyring
|
44
|
+
|
45
|
+
- repo: https://github.com/astral-sh/uv-pre-commit
|
46
|
+
rev: 0.7.15
|
47
|
+
hooks:
|
48
|
+
- id: uv-lock
|
49
|
+
files: ^pyproject\.toml$
|
50
|
+
verbose: true
|
51
|
+
|
52
|
+
# Security check - early to prevent credential leaks
|
53
|
+
- repo: https://github.com/Yelp/detect-secrets
|
54
|
+
rev: v1.5.0
|
55
|
+
hooks:
|
56
|
+
- id: detect-secrets
|
57
|
+
exclude: 'pdm\.lock|uv\.lock|pyproject\.toml|tests/.*|docs/.*|.*\.md'
|
58
|
+
verbose: true
|
59
|
+
|
60
|
+
# Code quality tier 1 - quick fixes
|
61
|
+
- repo: https://github.com/codespell-project/codespell
|
62
|
+
rev: v2.4.1
|
63
|
+
hooks:
|
64
|
+
- id: codespell
|
65
|
+
verbose: true
|
66
|
+
additional_dependencies:
|
67
|
+
- tomli
|
68
|
+
|
69
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
70
|
+
rev: v0.12.1
|
71
|
+
hooks:
|
72
|
+
- id: ruff-check
|
73
|
+
verbose: true
|
74
|
+
args: [--output-format=json]
|
75
|
+
- id: ruff-format
|
76
|
+
verbose: true
|
77
|
+
|
78
|
+
# Code quality tier 2 - analysis
|
79
|
+
- repo: https://github.com/jendrikseipp/vulture
|
80
|
+
rev: 'v2.14'
|
81
|
+
hooks:
|
82
|
+
- id: vulture
|
83
|
+
verbose: true
|
84
|
+
|
85
|
+
- repo: https://github.com/fredrikaverpil/creosote
|
86
|
+
rev: v4.0.3
|
87
|
+
hooks:
|
88
|
+
- id: creosote
|
89
|
+
verbose: true
|
90
|
+
|
91
|
+
- repo: https://github.com/rohaquinlop/complexipy-pre-commit
|
92
|
+
rev: v3.0.0
|
93
|
+
hooks:
|
94
|
+
- id: complexipy
|
95
|
+
args: ["-d", "low", "-j"]
|
96
|
+
verbose: true
|
97
|
+
|
98
|
+
- repo: https://github.com/dosisod/refurb
|
99
|
+
rev: v2.1.0
|
100
|
+
hooks:
|
101
|
+
- id: refurb
|
102
|
+
verbose: true
|
103
|
+
|
104
|
+
# Code quality tier 3 - thorough checks
|
105
|
+
- repo: local
|
106
|
+
hooks:
|
107
|
+
- id: autotyping
|
108
|
+
name: autotyping
|
109
|
+
entry: python -m autotyping
|
110
|
+
args:
|
111
|
+
- --aggressive
|
112
|
+
- --only-without-imports
|
113
|
+
- --guess-common-names
|
114
|
+
- crackerjack
|
115
|
+
types_or: [ python, pyi ]
|
116
|
+
language: python
|
117
|
+
files: \.py$
|
118
|
+
verbose: true
|
119
|
+
additional_dependencies:
|
120
|
+
- autotyping>=24.3.0
|
121
|
+
- libcst>=1.1.0
|
122
|
+
|
123
|
+
- repo: https://github.com/PyCQA/bandit
|
124
|
+
rev: '1.8.5'
|
125
|
+
hooks:
|
126
|
+
- id: bandit
|
127
|
+
args: ["-c", "pyproject.toml", "--format", "json"]
|
128
|
+
verbose: true
|
129
|
+
|
130
|
+
- repo: https://github.com/RobertCraigie/pyright-python
|
131
|
+
rev: v1.1.402
|
132
|
+
hooks:
|
133
|
+
- id: pyright
|
134
|
+
verbose: true
|
135
|
+
args: ["--outputjson"]
|
Binary file
|
@@ -12,7 +12,12 @@ from rich.console import Console
|
|
12
12
|
from tomli_w import dumps
|
13
13
|
from crackerjack.errors import ErrorCode, ExecutionError
|
14
14
|
|
15
|
-
config_files = (
|
15
|
+
config_files = (
|
16
|
+
".gitignore",
|
17
|
+
".pre-commit-config.yaml",
|
18
|
+
".pre-commit-config-ai.yaml",
|
19
|
+
".libcst.codemod.yaml",
|
20
|
+
)
|
16
21
|
default_python_version = "3.13"
|
17
22
|
|
18
23
|
|
@@ -534,6 +539,7 @@ class ProjectManager(BaseModel, arbitrary_types_allowed=True):
|
|
534
539
|
code_cleaner: CodeCleaner
|
535
540
|
config_manager: ConfigManager
|
536
541
|
dry_run: bool = False
|
542
|
+
options: t.Any = None
|
537
543
|
|
538
544
|
def update_pkg_configs(self) -> None:
|
539
545
|
self.config_manager.copy_configs()
|
@@ -548,15 +554,21 @@ class ProjectManager(BaseModel, arbitrary_types_allowed=True):
|
|
548
554
|
self.execute_command(["git", "branch", "-m", "main"])
|
549
555
|
self.execute_command(["git", "add", "pyproject.toml"])
|
550
556
|
self.execute_command(["git", "add", "pdm.lock"])
|
551
|
-
|
557
|
+
install_cmd = ["pre-commit", "install"]
|
558
|
+
if hasattr(self, "options") and getattr(self.options, "ai_agent", False):
|
559
|
+
install_cmd.extend(["-c", ".pre-commit-config-ai.yaml"])
|
560
|
+
self.execute_command(install_cmd)
|
552
561
|
self.execute_command(["git", "config", "advice.addIgnoredFile", "false"])
|
553
562
|
self.config_manager.update_pyproject_configs()
|
554
563
|
|
555
564
|
def run_pre_commit(self) -> None:
|
556
565
|
self.console.print("\nRunning pre-commit hooks...\n")
|
557
|
-
|
566
|
+
cmd = ["pre-commit", "run", "--all-files"]
|
567
|
+
if hasattr(self, "options") and getattr(self.options, "ai_agent", False):
|
568
|
+
cmd.extend(["-c", ".pre-commit-config-ai.yaml"])
|
569
|
+
check_all = self.execute_command(cmd)
|
558
570
|
if check_all.returncode > 0:
|
559
|
-
check_all = self.execute_command(
|
571
|
+
check_all = self.execute_command(cmd)
|
560
572
|
if check_all.returncode > 0:
|
561
573
|
self.console.print("\n\nPre-commit failed. Please fix errors.\n")
|
562
574
|
raise SystemExit(1)
|
@@ -630,7 +642,10 @@ class Crackerjack(BaseModel, arbitrary_types_allowed=True):
|
|
630
642
|
|
631
643
|
def _update_precommit(self, options: t.Any) -> None:
|
632
644
|
if self.pkg_path.stem == "crackerjack" and options.update_precommit:
|
633
|
-
|
645
|
+
update_cmd = ["pre-commit", "autoupdate"]
|
646
|
+
if options.ai_agent:
|
647
|
+
update_cmd.extend(["-c", ".pre-commit-config-ai.yaml"])
|
648
|
+
self.execute_command(update_cmd)
|
634
649
|
|
635
650
|
def _clean_project(self, options: t.Any) -> None:
|
636
651
|
if options.clean:
|
@@ -774,6 +789,7 @@ class Crackerjack(BaseModel, arbitrary_types_allowed=True):
|
|
774
789
|
self._update_project(options)
|
775
790
|
self._update_precommit(options)
|
776
791
|
self._clean_project(options)
|
792
|
+
self.project_manager.options = options
|
777
793
|
if not options.skip_hooks:
|
778
794
|
self.project_manager.run_pre_commit()
|
779
795
|
else:
|
@@ -852,6 +852,75 @@ class TestCrackerjackProcess:
|
|
852
852
|
cj.process(options)
|
853
853
|
mock_cj_execute.assert_any_call(["pre-commit", "autoupdate"])
|
854
854
|
|
855
|
+
def test_update_precommit_ai_agent(
|
856
|
+
self,
|
857
|
+
mock_console_print: MagicMock,
|
858
|
+
tmp_path: Path,
|
859
|
+
options_factory: t.Callable[..., OptionsForTesting],
|
860
|
+
) -> None:
|
861
|
+
crackerjack_path = tmp_path / "crackerjack"
|
862
|
+
crackerjack_path.mkdir(exist_ok=True)
|
863
|
+
options = options_factory(update_precommit=True, ai_agent=True)
|
864
|
+
with patch.object(Crackerjack, "execute_command") as mock_cj_execute:
|
865
|
+
mock_cj_execute.return_value = MagicMock(returncode=0, stdout="Success")
|
866
|
+
cj = Crackerjack(pkg_path=crackerjack_path, dry_run=True)
|
867
|
+
with patch.object(cj, "_setup_package"):
|
868
|
+
with patch.object(cj, "_update_project"):
|
869
|
+
cj.process(options)
|
870
|
+
mock_cj_execute.assert_any_call(
|
871
|
+
["pre-commit", "autoupdate", "-c", ".pre-commit-config-ai.yaml"]
|
872
|
+
)
|
873
|
+
|
874
|
+
def test_run_pre_commit_ai_agent(
|
875
|
+
self,
|
876
|
+
mock_console_print: MagicMock,
|
877
|
+
tmp_path: Path,
|
878
|
+
options_factory: t.Callable[..., OptionsForTesting],
|
879
|
+
) -> None:
|
880
|
+
mock_project = MagicMock()
|
881
|
+
|
882
|
+
options = options_factory(ai_agent=True)
|
883
|
+
mock_project.options = options
|
884
|
+
|
885
|
+
mock_project.console = MagicMock()
|
886
|
+
|
887
|
+
mock_project.execute_command.return_value = MagicMock(returncode=0)
|
888
|
+
|
889
|
+
ProjectManager.run_pre_commit(mock_project)
|
890
|
+
|
891
|
+
mock_project.execute_command.assert_called_with(
|
892
|
+
["pre-commit", "run", "--all-files", "-c", ".pre-commit-config-ai.yaml"]
|
893
|
+
)
|
894
|
+
|
895
|
+
def test_pre_commit_install_ai_agent(
|
896
|
+
self,
|
897
|
+
mock_console_print: MagicMock,
|
898
|
+
tmp_path: Path,
|
899
|
+
options_factory: t.Callable[..., OptionsForTesting],
|
900
|
+
) -> None:
|
901
|
+
mock_project = MagicMock(spec=ProjectManager)
|
902
|
+
|
903
|
+
options = options_factory(ai_agent=True)
|
904
|
+
mock_project.options = options
|
905
|
+
|
906
|
+
mock_project.console = MagicMock()
|
907
|
+
|
908
|
+
mock_project.config_manager = MagicMock()
|
909
|
+
|
910
|
+
with patch.object(mock_project, "execute_command") as mock_execute:
|
911
|
+
mock_execute.return_value = MagicMock(
|
912
|
+
returncode=0,
|
913
|
+
stdout="package1\npackage2\n",
|
914
|
+
)
|
915
|
+
|
916
|
+
original_method = ProjectManager.update_pkg_configs
|
917
|
+
|
918
|
+
original_method(mock_project)
|
919
|
+
|
920
|
+
mock_execute.assert_any_call(
|
921
|
+
["pre-commit", "install", "-c", ".pre-commit-config-ai.yaml"]
|
922
|
+
)
|
923
|
+
|
855
924
|
def test_process_with_precommit_failure(
|
856
925
|
self,
|
857
926
|
mock_execute: MagicMock,
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.1.11/3256171999636029978
RENAMED
File without changes
|
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.1.4/10355199064880463147
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.1.6/15140459877605758699
RENAMED
File without changes
|
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.1.9/17041001205004563469
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.11/18187162184424859798
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.12/16869036553936192448
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.12/1867267426380906393
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.12/4240757255861806333
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.12/4441409093023629623
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.13/1867267426380906393
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.13/4240757255861806333
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.2/4070660268492669020
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.3/9818742842212983150
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.4/9818742842212983150
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.6/3557596832929915217
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.7/10386934055395314831
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.11.7/3557596832929915217
RENAMED
File without changes
|
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.12.0/5056746222905752453
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.2.0/10047773857155985907
RENAMED
File without changes
|
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.2.2/18053836298936336950
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.3.0/12548816621480535786
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.3.3/11081883392474770722
RENAMED
File without changes
|
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.3.5/16311176246009842383
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.6.0/11982804814124138945
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.6.0/12055761203849489982
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.7.3/16061516852537040135
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.8.4/16354268377385700367
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.9.10/12813592349865671909
RENAMED
File without changes
|
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.9.3/13948373885254993391
RENAMED
File without changes
|
{crackerjack-0.21.1 → crackerjack-0.21.2}/crackerjack/.ruff_cache/0.9.9/12813592349865671909
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|