diff --git a/tests/test_cargo_install.py b/tests/test_cargo_install.py index b29e025..5fca12e 100644 --- a/tests/test_cargo_install.py +++ b/tests/test_cargo_install.py @@ -7,24 +7,29 @@ validate_library_name, ) + def test_find_cargo_toml_exists(tmp_path, mock_os_path_exists): (tmp_path / "Cargo.toml").touch() mock_os_path_exists.return_value = True result = find_cargo_toml(str(tmp_path)) assert result == str(tmp_path / "Cargo.toml") + def test_find_cargo_toml_not_found(): result = find_cargo_toml() assert result is None + def test_validate_library_name_valid(): assert validate_library_name("serde") is True + def test_validate_library_name_invalid(capsys): assert validate_library_name("serde;malicious") is False captured = capsys.readouterr() assert "Invalid library name: serde;malicious" in captured.out + def test_check_cargo_installed(mock_shutil_which, capsys): mock_shutil_which.return_value = "/usr/bin/cargo" assert check_cargo_installed() is True @@ -34,19 +39,26 @@ def test_check_cargo_installed(mock_shutil_which, capsys): captured = capsys.readouterr() assert "cargo is not installed or not found in PATH" in captured.out -def test_cargo_install_success(tmp_path, mock_subprocess_run, mock_os_chdir, capsys): + +def test_cargo_install_success(tmp_path, mock_subprocess_run, mock_os_chdir, capsys): (tmp_path / "Cargo.toml").touch() - mock_subprocess_run.return_value = MagicMock(returncode=0, stdout="Added serde", stderr="") + mock_subprocess_run.return_value = MagicMock( + returncode=0, stdout="Added serde", stderr="" + ) cargo_install(["serde"]) captured = capsys.readouterr() assert "Running cargo add serde ..." in captured.out assert "Cargo output:\nAdded serde" in captured.out mock_os_chdir.assert_called() -def test_cargo_install_failure(tmp_path, mock_subprocess_run, capsys): + +def test_cargo_install_failure(tmp_path, mock_subprocess_run, capsys): (tmp_path / "Cargo.toml").touch() mock_subprocess_run.side_effect = subprocess.CalledProcessError( - returncode=1, cmd=["cargo", "add", "serde"], output="", stderr="Error: invalid crate" + returncode=1, + cmd=["cargo", "add", "serde"], + output="", + stderr="Error: invalid crate", ) cargo_install(["serde"]) captured = capsys.readouterr() @@ -54,4 +66,3 @@ def test_cargo_install_failure(tmp_path, mock_subprocess_run, capsys): raise AssertionError if "stderr:\nError: invalid crate" not in captured.out: raise AssertionError -