Merge pull request 'test_ssh_remote: skip whole module at once on macOS' (#3626) from darwin-ssh-remote into main

Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3626
This commit is contained in:
Mic92
2025-05-13 14:07:42 +00:00
2 changed files with 25 additions and 16 deletions

View File

@@ -11,6 +11,9 @@ from clan_cli.ssh.host import Host
from clan_cli.ssh.host_key import HostKeyCheck
from clan_cli.ssh.parse import parse_deployment_address
if sys.platform == "darwin":
pytest.skip("preload doesn't work on darwin", allow_module_level=True)
class ParseTestCase(NamedTuple):
test_addr: str = ""
@@ -132,10 +135,6 @@ def test_parse_ssh_options() -> None:
assert host.ssh_options["StrictHostKeyChecking"] == "yes"
is_darwin = sys.platform == "darwin"
@pytest.mark.skipif(is_darwin, reason="preload doesn't work on darwin")
def test_run(hosts: list[Host], runtime: AsyncRuntime) -> None:
for host in hosts:
proc = runtime.async_run(
@@ -144,7 +143,6 @@ def test_run(hosts: list[Host], runtime: AsyncRuntime) -> None:
assert proc.wait().result.stdout == "hello\n"
@pytest.mark.skipif(is_darwin, reason="preload doesn't work on darwin")
def test_run_environment(hosts: list[Host], runtime: AsyncRuntime) -> None:
for host in hosts:
proc = runtime.async_run(
@@ -167,7 +165,6 @@ def test_run_environment(hosts: list[Host], runtime: AsyncRuntime) -> None:
assert "env_var=true" in p2.wait().result.stdout
@pytest.mark.skipif(is_darwin, reason="preload doesn't work on darwin")
def test_run_no_shell(hosts: list[Host], runtime: AsyncRuntime) -> None:
for host in hosts:
proc = runtime.async_run(
@@ -176,7 +173,6 @@ def test_run_no_shell(hosts: list[Host], runtime: AsyncRuntime) -> None:
assert proc.wait().result.stdout == "hello\n"
@pytest.mark.skipif(is_darwin, reason="preload doesn't work on darwin")
def test_run_function(hosts: list[Host], runtime: AsyncRuntime) -> None:
def some_func(h: Host) -> bool:
p = h.run(["echo", "hello"])
@@ -187,7 +183,6 @@ def test_run_function(hosts: list[Host], runtime: AsyncRuntime) -> None:
assert proc.wait().result
@pytest.mark.skipif(is_darwin, reason="preload doesn't work on darwin")
def test_timeout(hosts: list[Host], runtime: AsyncRuntime) -> None:
for host in hosts:
proc = runtime.async_run(
@@ -197,7 +192,6 @@ def test_timeout(hosts: list[Host], runtime: AsyncRuntime) -> None:
assert isinstance(error, ClanCmdTimeoutError)
@pytest.mark.skipif(is_darwin, reason="preload doesn't work on darwin")
def test_run_exception(hosts: list[Host], runtime: AsyncRuntime) -> None:
for host in hosts:
proc = runtime.async_run(
@@ -217,7 +211,6 @@ def test_run_exception(hosts: list[Host], runtime: AsyncRuntime) -> None:
raise AssertionError(msg)
@pytest.mark.skipif(is_darwin, reason="preload doesn't work on darwin")
def test_run_function_exception(hosts: list[Host], runtime: AsyncRuntime) -> None:
def some_func(h: Host) -> CmdOut:
return h.run_local(["exit 1"], RunOpts(shell=True))

View File

@@ -58,13 +58,16 @@ let
(pythonRuntime.withPackages pyTestDeps)
];
source =
nixFilter = import ../../lib/filter-clan-core/nix-filter.nix;
cliSource =
source:
runCommand "clan-cli-source"
{
nativeBuildInputs = [ jq ];
}
''
cp -r ${./.} $out
cp -r ${source} $out
chmod -R +w $out
# In cases where the devshell created this file, this will already exist
@@ -78,6 +81,19 @@ let
cp -r ${../../templates} $out/clan_cli/templates
'';
sourceWithoutTests = cliSource (
nixFilter.filter {
root = ./.;
include = [
(
_root: path: _type:
(builtins.match "test_.*\.py" path) == null
)
];
}
);
sourceWithTests = cliSource ./.;
# Create a custom nixpkgs for use within the project
nixpkgs' =
runCommand "nixpkgs"
@@ -106,7 +122,7 @@ let
in
pythonRuntime.pkgs.buildPythonApplication {
name = "clan-cli";
src = source;
src = sourceWithoutTests;
format = "pyproject";
# Arguments for the wrapper to unset LD_LIBRARY_PATH to avoid glibc version issues
@@ -150,7 +166,7 @@ pythonRuntime.pkgs.buildPythonApplication {
}
''
set -euo pipefail
cp -r ${source} ./src
cp -r ${sourceWithTests} ./src
chmod +w -R ./src
cd ./src
@@ -193,7 +209,7 @@ pythonRuntime.pkgs.buildPythonApplication {
}
''
set -euo pipefail
cp -r ${source} ./src
cp -r ${sourceWithTests} ./src
chmod +w -R ./src
cd ./src
@@ -246,7 +262,7 @@ pythonRuntime.pkgs.buildPythonApplication {
}
''
set -euo pipefail
cp -r ${source} ./src
cp -r ${sourceWithTests} ./src
chmod +w -R ./src
cd ./src