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:
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user