Initial working version
This commit is contained in:
parent
34a0627e76
commit
b6886cb34a
61 changed files with 4475 additions and 6 deletions
Binary file not shown.
59
tests/integration/test_live_proxmox.py
Normal file
59
tests/integration/test_live_proxmox.py
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
from pve_vm_setup.services.factory import ProxmoxServiceFactory
|
||||
from pve_vm_setup.settings import AppSettings
|
||||
|
||||
|
||||
def _load_live_settings_or_skip() -> AppSettings:
|
||||
settings = AppSettings.from_env()
|
||||
try:
|
||||
settings.validate_live_requirements()
|
||||
except Exception as exc: # pragma: no cover - only hit outside configured environments
|
||||
pytest.skip(f"Live environment is not configured: {exc}")
|
||||
return settings
|
||||
|
||||
|
||||
@pytest.mark.live
|
||||
def test_live_read_only_reference_loading() -> None:
|
||||
settings = _load_live_settings_or_skip()
|
||||
service = ProxmoxServiceFactory.create(settings)
|
||||
|
||||
assert service.mode == "live"
|
||||
assert service.check_connectivity()
|
||||
assert service.check_api_base()
|
||||
|
||||
realms = service.load_realms()
|
||||
assert realms
|
||||
|
||||
service.login(
|
||||
settings.proxmox_user or "",
|
||||
settings.proxmox_password or "",
|
||||
settings.proxmox_realm or "",
|
||||
)
|
||||
nodes = service.load_nodes()
|
||||
assert nodes
|
||||
|
||||
pools = service.load_pools()
|
||||
assert isinstance(pools, list)
|
||||
|
||||
tags = service.load_existing_tags()
|
||||
assert isinstance(tags, list)
|
||||
|
||||
probe_node = settings.safety_policy.test_node or nodes[0].name
|
||||
storages = service.load_storages(probe_node)
|
||||
assert isinstance(storages, list)
|
||||
iso_storages = [storage for storage in storages if "iso" in storage.content]
|
||||
if iso_storages:
|
||||
isos = service.load_isos(probe_node, iso_storages[0].storage)
|
||||
assert isinstance(isos, list)
|
||||
|
||||
|
||||
@pytest.mark.live_create
|
||||
def test_live_create_path_requires_explicit_opt_in() -> None:
|
||||
settings = _load_live_settings_or_skip()
|
||||
if not settings.safety_policy.allow_create:
|
||||
pytest.skip("Set PROXMOX_PREVENT_CREATE=false to enable live create tests.")
|
||||
if settings.safety_policy.enable_test_mode:
|
||||
assert settings.safety_policy.test_node
|
||||
Loading…
Add table
Add a link
Reference in a new issue