50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
import pytest
|
|
from clan_cli.inventory import load_inventory_json
|
|
from fixtures_flakes import FlakeForTest
|
|
from helpers import cli
|
|
from stdout import CaptureOutput
|
|
|
|
|
|
@pytest.mark.impure
|
|
def test_machine_subcommands(
|
|
test_flake_with_core: FlakeForTest,
|
|
capture_output: CaptureOutput,
|
|
) -> None:
|
|
cli.run(
|
|
[
|
|
"machines",
|
|
"create",
|
|
"--flake",
|
|
str(test_flake_with_core.path),
|
|
"machine1",
|
|
"--tags",
|
|
"vm",
|
|
]
|
|
)
|
|
|
|
inventory: dict = dict(load_inventory_json(str(test_flake_with_core.path)))
|
|
assert "machine1" in inventory["machines"]
|
|
assert "service" not in inventory
|
|
|
|
with capture_output as output:
|
|
cli.run(["machines", "list", "--flake", str(test_flake_with_core.path)])
|
|
|
|
print(output.out)
|
|
assert "machine1" in output.out
|
|
assert "vm1" in output.out
|
|
assert "vm2" in output.out
|
|
|
|
cli.run(
|
|
["machines", "delete", "--flake", str(test_flake_with_core.path), "machine1"]
|
|
)
|
|
|
|
inventory_2: dict = dict(load_inventory_json(str(test_flake_with_core.path)))
|
|
assert "machine1" not in inventory_2["machines"]
|
|
assert "service" not in inventory_2
|
|
|
|
with capture_output as output:
|
|
cli.run(["machines", "list", "--flake", str(test_flake_with_core.path)])
|
|
assert "machine1" not in output.out
|
|
assert "vm1" in output.out
|
|
assert "vm2" in output.out
|