fix impure tests

This commit is contained in:
lassulus
2023-09-21 17:17:48 +02:00
parent 56bcd0cf0b
commit 17520e2553
7 changed files with 44 additions and 53 deletions

View File

@@ -1,8 +1,9 @@
import argparse
import json
import os
import subprocess
from ..dirs import get_clan_flake_toplevel
from ..dirs import get_clan_flake_toplevel, module_root
from ..errors import ClanError
from ..nix import nix_build, nix_config, nix_eval
@@ -22,6 +23,9 @@ def upload_secrets(machine: str) -> None:
text=True,
check=True,
)
env = os.environ.copy()
env["PYTHONPATH"] = str(module_root().parent) # TODO do this in the clanCore module
host = json.loads(
subprocess.run(
nix_eval(
@@ -41,6 +45,7 @@ def upload_secrets(machine: str) -> None:
secret_upload_script,
host,
],
env=env,
)
if secret_upload.returncode != 0:

View File

@@ -26,6 +26,7 @@
, zbar
, tor
, git
, ipdb
}:
let
@@ -43,6 +44,7 @@ let
openssh
git
stdenv.cc
ipdb # used for debugging
];
# Optional dependencies for clan cli, we re-expose them here to make sure they all build.

View File

@@ -1,26 +1,16 @@
{ nix-unit, clan-cli, ui-assets, python3, system, ruff, mkShell, writeScriptBin }:
{ nix-unit, clan-cli, ui-assets, system, mkShell, writeScriptBin, openssh }:
let
pythonWithDeps = python3.withPackages (
ps:
clan-cli.propagatedBuildInputs
++ clan-cli.devDependencies
++ [
ps.pip
ps.ipdb
]
);
checkScript = writeScriptBin "check" ''
nix build .#checks.${system}.{treefmt,clan-pytest} -L "$@"
'';
in
mkShell {
packages = [
ruff
nix-unit
pythonWithDeps
openssh
clan-cli.checkPython
];
# sets up an editable install and add enty points to $PATH
PYTHONPATH = "${pythonWithDeps}/${pythonWithDeps.sitePackages}";
PYTHONBREAKPOINT = "ipdb.set_trace";
shellHook = ''

View File

@@ -59,6 +59,7 @@ def sshd_config(project_root: Path, test_root: Path) -> Iterator[SshdConfig]:
MaxStartups 64:30:256
AuthorizedKeysFile {host_key}.pub
AcceptEnv REALPATH
PasswordAuthentication no
"""
)
login_shell = dir / "shell"
@@ -109,7 +110,6 @@ def sshd(
) -> Iterator[Sshd]:
import subprocess
subprocess.run(["echo", "hello"], check=True)
port = unused_tcp_port()
sshd = shutil.which("sshd")
assert sshd is not None, "no sshd binary found"
@@ -123,6 +123,7 @@ def sshd(
)
while True:
print(sshd_config.path)
if (
subprocess.run(
[
@@ -137,7 +138,7 @@ def sshd(
"-p",
str(port),
"true",
]
],
).returncode
== 0
):

View File

@@ -5,25 +5,29 @@
# this placeholder is replaced by the path to nixpkgs
inputs.clan-core.url = "__CLAN_CORE__";
outputs = { self, clan-core }: {
nixosConfigurations = clan-core.lib.buildClan {
directory = self;
machines = {
vm1 = { modulesPath, ... }: {
imports = [ "${toString modulesPath}/virtualisation/qemu-vm.nix" ];
clan.networking.deploymentAddress = "__CLAN_DEPLOYMENT_ADDRESS__";
sops.age.keyFile = "__CLAN_SOPS_KEY_PATH__";
outputs = { self, clan-core }:
let
clan = clan-core.lib.buildClan {
directory = self;
machines = {
vm1 = { modulesPath, ... }: {
imports = [ "${toString modulesPath}/virtualisation/qemu-vm.nix" ];
clan.networking.deploymentAddress = "__CLAN_DEPLOYMENT_ADDRESS__";
sops.age.keyFile = "__CLAN_SOPS_KEY_PATH__";
clanCore.secrets.testpassword = {
generator = ''
echo "secret1" > "$secrets/secret1"
echo "fact1" > "$facts/fact1"
'';
secrets.secret1 = { };
facts.fact1 = { };
clanCore.secrets.testpassword = {
generator = ''
echo "secret1" > "$secrets/secret1"
echo "fact1" > "$facts/fact1"
'';
secrets.secret1 = { };
facts.fact1 = { };
};
};
};
};
in
{
inherit (clan) nixosConfigurations clanInternals;
};
};
}

View File

@@ -11,7 +11,7 @@ if TYPE_CHECKING:
@pytest.mark.impure
def test_upload_secret(
def test_secrets_upload(
monkeypatch: pytest.MonkeyPatch,
test_flake_with_core: Path,
host_group: HostGroup,