Capture CalledProcessError for any postitive returncode (#1450)
- Leave logic to still allow for formatting changes to be ignored - Now just capture the output of any other error that has a > 1 returncode - Raise on anything else Test: Add unit test to exercise this new logic
This commit is contained in:
parent
c77cb7b97e
commit
ff6bbd5d96
@ -131,6 +131,10 @@ async def black_run(
|
|||||||
else:
|
else:
|
||||||
results.stats["success"] += 1
|
results.stats["success"] += 1
|
||||||
return
|
return
|
||||||
|
elif cpe.returncode > 1:
|
||||||
|
results.stats["failed"] += 1
|
||||||
|
results.failed_projects[repo_path.name] = cpe
|
||||||
|
return
|
||||||
|
|
||||||
LOG.error(f"Unknown error with {repo_path}")
|
LOG.error(f"Unknown error with {repo_path}")
|
||||||
raise
|
raise
|
||||||
|
@ -67,10 +67,14 @@ def event_loop() -> Iterator[None]:
|
|||||||
loop.close()
|
loop.close()
|
||||||
|
|
||||||
|
|
||||||
async def raise_subprocess_error(*args: Any, **kwargs: Any) -> None:
|
async def raise_subprocess_error_1(*args: Any, **kwargs: Any) -> None:
|
||||||
raise CalledProcessError(1, ["unittest", "error"], b"", b"")
|
raise CalledProcessError(1, ["unittest", "error"], b"", b"")
|
||||||
|
|
||||||
|
|
||||||
|
async def raise_subprocess_error_123(*args: Any, **kwargs: Any) -> None:
|
||||||
|
raise CalledProcessError(123, ["unittest", "error"], b"", b"")
|
||||||
|
|
||||||
|
|
||||||
async def return_false(*args: Any, **kwargs: Any) -> bool:
|
async def return_false(*args: Any, **kwargs: Any) -> bool:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -123,11 +127,16 @@ def test_black_run(self) -> None:
|
|||||||
# Test a fail based on returning 1 and not expecting formatting changes
|
# Test a fail based on returning 1 and not expecting formatting changes
|
||||||
project_config["expect_formatting_changes"] = False
|
project_config["expect_formatting_changes"] = False
|
||||||
results = lib.Results({"failed": 0, "success": 0}, {})
|
results = lib.Results({"failed": 0, "success": 0}, {})
|
||||||
with patch("black_primer.lib._gen_check_output", raise_subprocess_error):
|
with patch("black_primer.lib._gen_check_output", raise_subprocess_error_1):
|
||||||
loop.run_until_complete(lib.black_run(repo_path, project_config, results))
|
loop.run_until_complete(lib.black_run(repo_path, project_config, results))
|
||||||
self.assertEqual(1, results.stats["failed"])
|
self.assertEqual(1, results.stats["failed"])
|
||||||
self.assertTrue(results.failed_projects)
|
self.assertTrue(results.failed_projects)
|
||||||
|
|
||||||
|
# Test a formatting error based on returning 123
|
||||||
|
with patch("black_primer.lib._gen_check_output", raise_subprocess_error_123):
|
||||||
|
loop.run_until_complete(lib.black_run(repo_path, project_config, results))
|
||||||
|
self.assertEqual(2, results.stats["failed"])
|
||||||
|
|
||||||
@event_loop()
|
@event_loop()
|
||||||
def test_gen_check_output(self) -> None:
|
def test_gen_check_output(self) -> None:
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_event_loop()
|
||||||
|
Loading…
Reference in New Issue
Block a user