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.host_key import HostKeyCheck
|
||||||
from clan_cli.ssh.parse import parse_deployment_address
|
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):
|
class ParseTestCase(NamedTuple):
|
||||||
test_addr: str = ""
|
test_addr: str = ""
|
||||||
@@ -132,10 +135,6 @@ def test_parse_ssh_options() -> None:
|
|||||||
assert host.ssh_options["StrictHostKeyChecking"] == "yes"
|
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:
|
def test_run(hosts: list[Host], runtime: AsyncRuntime) -> None:
|
||||||
for host in hosts:
|
for host in hosts:
|
||||||
proc = runtime.async_run(
|
proc = runtime.async_run(
|
||||||
@@ -144,7 +143,6 @@ def test_run(hosts: list[Host], runtime: AsyncRuntime) -> None:
|
|||||||
assert proc.wait().result.stdout == "hello\n"
|
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:
|
def test_run_environment(hosts: list[Host], runtime: AsyncRuntime) -> None:
|
||||||
for host in hosts:
|
for host in hosts:
|
||||||
proc = runtime.async_run(
|
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
|
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:
|
def test_run_no_shell(hosts: list[Host], runtime: AsyncRuntime) -> None:
|
||||||
for host in hosts:
|
for host in hosts:
|
||||||
proc = runtime.async_run(
|
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"
|
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 test_run_function(hosts: list[Host], runtime: AsyncRuntime) -> None:
|
||||||
def some_func(h: Host) -> bool:
|
def some_func(h: Host) -> bool:
|
||||||
p = h.run(["echo", "hello"])
|
p = h.run(["echo", "hello"])
|
||||||
@@ -187,7 +183,6 @@ def test_run_function(hosts: list[Host], runtime: AsyncRuntime) -> None:
|
|||||||
assert proc.wait().result
|
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:
|
def test_timeout(hosts: list[Host], runtime: AsyncRuntime) -> None:
|
||||||
for host in hosts:
|
for host in hosts:
|
||||||
proc = runtime.async_run(
|
proc = runtime.async_run(
|
||||||
@@ -197,7 +192,6 @@ def test_timeout(hosts: list[Host], runtime: AsyncRuntime) -> None:
|
|||||||
assert isinstance(error, ClanCmdTimeoutError)
|
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:
|
def test_run_exception(hosts: list[Host], runtime: AsyncRuntime) -> None:
|
||||||
for host in hosts:
|
for host in hosts:
|
||||||
proc = runtime.async_run(
|
proc = runtime.async_run(
|
||||||
@@ -217,7 +211,6 @@ def test_run_exception(hosts: list[Host], runtime: AsyncRuntime) -> None:
|
|||||||
raise AssertionError(msg)
|
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 test_run_function_exception(hosts: list[Host], runtime: AsyncRuntime) -> None:
|
||||||
def some_func(h: Host) -> CmdOut:
|
def some_func(h: Host) -> CmdOut:
|
||||||
return h.run_local(["exit 1"], RunOpts(shell=True))
|
return h.run_local(["exit 1"], RunOpts(shell=True))
|
||||||
|
|||||||
@@ -58,13 +58,16 @@ let
|
|||||||
(pythonRuntime.withPackages pyTestDeps)
|
(pythonRuntime.withPackages pyTestDeps)
|
||||||
];
|
];
|
||||||
|
|
||||||
source =
|
nixFilter = import ../../lib/filter-clan-core/nix-filter.nix;
|
||||||
|
|
||||||
|
cliSource =
|
||||||
|
source:
|
||||||
runCommand "clan-cli-source"
|
runCommand "clan-cli-source"
|
||||||
{
|
{
|
||||||
nativeBuildInputs = [ jq ];
|
nativeBuildInputs = [ jq ];
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
cp -r ${./.} $out
|
cp -r ${source} $out
|
||||||
chmod -R +w $out
|
chmod -R +w $out
|
||||||
|
|
||||||
# In cases where the devshell created this file, this will already exist
|
# In cases where the devshell created this file, this will already exist
|
||||||
@@ -78,6 +81,19 @@ let
|
|||||||
cp -r ${../../templates} $out/clan_cli/templates
|
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
|
# Create a custom nixpkgs for use within the project
|
||||||
nixpkgs' =
|
nixpkgs' =
|
||||||
runCommand "nixpkgs"
|
runCommand "nixpkgs"
|
||||||
@@ -106,7 +122,7 @@ let
|
|||||||
in
|
in
|
||||||
pythonRuntime.pkgs.buildPythonApplication {
|
pythonRuntime.pkgs.buildPythonApplication {
|
||||||
name = "clan-cli";
|
name = "clan-cli";
|
||||||
src = source;
|
src = sourceWithoutTests;
|
||||||
format = "pyproject";
|
format = "pyproject";
|
||||||
|
|
||||||
# Arguments for the wrapper to unset LD_LIBRARY_PATH to avoid glibc version issues
|
# Arguments for the wrapper to unset LD_LIBRARY_PATH to avoid glibc version issues
|
||||||
@@ -150,7 +166,7 @@ pythonRuntime.pkgs.buildPythonApplication {
|
|||||||
}
|
}
|
||||||
''
|
''
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
cp -r ${source} ./src
|
cp -r ${sourceWithTests} ./src
|
||||||
chmod +w -R ./src
|
chmod +w -R ./src
|
||||||
cd ./src
|
cd ./src
|
||||||
|
|
||||||
@@ -193,7 +209,7 @@ pythonRuntime.pkgs.buildPythonApplication {
|
|||||||
}
|
}
|
||||||
''
|
''
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
cp -r ${source} ./src
|
cp -r ${sourceWithTests} ./src
|
||||||
chmod +w -R ./src
|
chmod +w -R ./src
|
||||||
cd ./src
|
cd ./src
|
||||||
|
|
||||||
@@ -246,7 +262,7 @@ pythonRuntime.pkgs.buildPythonApplication {
|
|||||||
}
|
}
|
||||||
''
|
''
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
cp -r ${source} ./src
|
cp -r ${sourceWithTests} ./src
|
||||||
chmod +w -R ./src
|
chmod +w -R ./src
|
||||||
cd ./src
|
cd ./src
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user