clan-cli: Fix tmpdir leak and fix tests/temporary_dir inconsistencies

This commit is contained in:
Qubasa
2024-03-27 15:51:52 +01:00
parent 0676bf7283
commit e6ad0cfbc1
2 changed files with 73 additions and 70 deletions

View File

@@ -3,6 +3,7 @@ import importlib
import json import json
import logging import logging
import os import os
from contextlib import ExitStack
from dataclasses import dataclass, field from dataclasses import dataclass, field
from pathlib import Path from pathlib import Path
from tempfile import TemporaryDirectory from tempfile import TemporaryDirectory
@@ -108,6 +109,7 @@ def run_vm(
socketdir: Path | None = None, socketdir: Path | None = None,
nix_options: list[str] = [], nix_options: list[str] = [],
) -> None: ) -> None:
with ExitStack() as stack:
machine = Machine(vm.machine_name, vm.flake_url) machine = Machine(vm.machine_name, vm.flake_url)
log.debug(f"Creating VM for {machine}") log.debug(f"Creating VM for {machine}")
@@ -117,12 +119,12 @@ def run_vm(
cache.mkdir(exist_ok=True) cache.mkdir(exist_ok=True)
if cachedir is None: if cachedir is None:
cache_tmp = TemporaryDirectory(dir=cache) cache_tmp = stack.enter_context(TemporaryDirectory(dir=cache))
cachedir = Path(cache_tmp.name) cachedir = Path(cache_tmp)
if socketdir is None: if socketdir is None:
socket_tmp = TemporaryDirectory() socket_tmp = stack.enter_context(TemporaryDirectory())
socketdir = Path(socket_tmp.name) socketdir = Path(socket_tmp)
# TODO: We should get this from the vm argument # TODO: We should get this from the vm argument
nixos_config = build_vm(machine, cachedir, nix_options) nixos_config = build_vm(machine, cachedir, nix_options)

View File

@@ -16,6 +16,7 @@ def temporary_home(monkeypatch: pytest.MonkeyPatch) -> Iterator[Path]:
path = Path(env_dir).resolve() path = Path(env_dir).resolve()
log.debug("Temp HOME directory: %s", str(path)) log.debug("Temp HOME directory: %s", str(path))
monkeypatch.setenv("HOME", str(path)) monkeypatch.setenv("HOME", str(path))
monkeypatch.setenv("XDG_CONFIG_HOME", str(path / ".config"))
monkeypatch.chdir(str(path)) monkeypatch.chdir(str(path))
yield path yield path
else: else: