API: Added test for inspect_flake

This commit is contained in:
Luis Hebendanz 2023-10-03 12:50:47 +02:00
parent c1c68ee1d8
commit da72ec18ad
3 changed files with 32 additions and 1 deletions

View File

@ -1,4 +1,5 @@
import argparse
import logging
import os
import shlex
import subprocess
@ -9,6 +10,8 @@ from clan_cli.errors import ClanError
from ..dirs import get_clan_flake_toplevel, module_root
from ..nix import nix_build, nix_config
log = logging.getLogger(__name__)
def build_generate_script(machine: str, clan_dir: Path) -> str:
config = nix_config()
@ -39,6 +42,8 @@ def run_generate_secrets(secret_generator_script: str, clan_dir: Path) -> None:
)
if proc.returncode != 0:
log.error("stdout: %s", proc.stdout)
log.error("stderr: %s", proc.stderr)
raise ClanError("failed to generate secrets")
else:
print("successfully generated secrets")

View File

@ -1,5 +1,6 @@
import argparse
import json
import logging
import os
import shlex
import subprocess
@ -11,6 +12,8 @@ from ..errors import ClanError
from ..nix import nix_build, nix_config, nix_shell
from ..ssh import parse_deployment_address
log = logging.getLogger(__name__)
def build_upload_script(machine: str, clan_dir: Path) -> str:
config = nix_config()
@ -67,6 +70,8 @@ def run_upload_secrets(
)
if proc.returncode != 0:
log.error("Stdout: %s", proc.stdout)
log.error("Stderr: %s", proc.stderr)
raise ClanError("failed to upload secrets")
h = parse_deployment_address(flake_attr, target)

View File

@ -1,5 +1,5 @@
from pathlib import Path
import json
import pytest
from api import TestClient
@ -28,3 +28,24 @@ def test_inspect_err(api: TestClient) -> None:
data = response.json()
print("Data: ", data)
assert data.get("detail")
@pytest.mark.impure
def test_inspect_flake(api: TestClient, test_flake_with_core: Path) -> None:
params = {"url": str(test_flake_with_core)}
response = api.get(
"/api/flake",
params=params,
)
assert response.status_code == 200, "Failed to inspect vm"
data = response.json()
print("Data: ", json.dumps(data, indent=2))
assert data.get("content") is not None
actions = data.get("actions")
assert actions is not None
assert len(actions) == 2
assert actions[0].get("id") == "vms/inspect"
assert actions[0].get("uri") == "api/vms/inspect"
assert actions[1].get("id") == "vms/create"
assert actions[1].get("uri") == "api/vms/create"