def test_black_run(self) -> None: """Pretend to run Black to ensure we cater for all scenarios""" loop = asyncio.get_event_loop() repo_path = Path(gettempdir()) project_config = deepcopy(FAKE_PROJECT_CONFIG) results = lib.Results({"failed": 0, "success": 0}, {}) # Test a successful Black run with patch("black_primer.lib._gen_check_output", return_subproccess_output): loop.run_until_complete(lib.black_run(repo_path, project_config, results)) self.assertEqual(1, results.stats["success"]) self.assertFalse(results.failed_projects) # Test a fail based on expecting formatting changes but not getting any project_config["expect_formatting_changes"] = True results = lib.Results({"failed": 0, "success": 0}, {}) with patch("black_primer.lib._gen_check_output", return_subproccess_output): loop.run_until_complete(lib.black_run(repo_path, project_config, results)) self.assertEqual(1, results.stats["failed"]) self.assertTrue(results.failed_projects) # Test a fail based on returning 1 and not expecting formatting changes project_config["expect_formatting_changes"] = False results = lib.Results({"failed": 0, "success": 0}, {}) with patch("black_primer.lib._gen_check_output", raise_subprocess_error_1): loop.run_until_complete(lib.black_run(repo_path, project_config, results)) self.assertEqual(1, results.stats["failed"]) 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"])
def test_analyze_results(self) -> None: fake_results = lib.Results( { "disabled": 0, "failed": 1, "skipped_long_checkout": 0, "success": 68, "wrong_py_ver": 0, }, {"black": CalledProcessError(69, ["black"], b"Black didn't work", b"")}, ) with capture_stdout(lib.analyze_results, 69, fake_results) as analyze_stdout: self.assertEqual(EXPECTED_ANALYSIS_OUTPUT, analyze_stdout)
def test_analyze_results(self) -> None: fake_results = lib.Results( { 'disabled': 0, 'failed': 1, 'skipped_long_checkout': 0, 'success': 68, 'wrong_py_ver': 0, }, { 'black': CalledProcessError(69, ['black'], b"Black didn't work", b'') }, ) with capture_stdout(lib.analyze_results, 69, fake_results) as analyze_stdout: self.assertEqual(EXPECTED_ANALYSIS_OUTPUT, analyze_stdout)