File size: 3,204 Bytes
979853c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | from pathlib import Path
from lightrag.api.runtime_validation import (
RuntimeEnvironment,
validate_runtime_target,
validate_runtime_target_from_env_file,
)
def test_validate_runtime_target_skips_when_not_declared() -> None:
is_valid, error_message = validate_runtime_target(None)
assert is_valid is True
assert error_message is None
def test_validate_runtime_target_accepts_host_on_host() -> None:
is_valid, error_message = validate_runtime_target(
"host",
RuntimeEnvironment(
in_container=False,
in_docker=False,
in_kubernetes=False,
),
)
assert is_valid is True
assert error_message is None
def test_validate_runtime_target_rejects_host_in_container() -> None:
is_valid, error_message = validate_runtime_target(
"host",
RuntimeEnvironment(
in_container=True,
in_docker=True,
in_kubernetes=False,
),
)
assert is_valid is False
assert "\n" in error_message
assert "Configuration error in .env" in error_message
assert "LIGHTRAG_RUNTIME_TARGET=host" in error_message
assert "This value from .env" in error_message
assert "Docker" in error_message
def test_validate_runtime_target_accepts_compose_and_docker_in_container() -> None:
runtime_environment = RuntimeEnvironment(
in_container=True,
in_docker=False,
in_kubernetes=True,
)
for runtime_target in ("compose", "docker"):
is_valid, error_message = validate_runtime_target(
runtime_target,
runtime_environment,
)
assert is_valid is True
assert error_message is None
def test_validate_runtime_target_rejects_container_target_on_host() -> None:
is_valid, error_message = validate_runtime_target(
"docker",
RuntimeEnvironment(
in_container=False,
in_docker=False,
in_kubernetes=False,
),
)
assert is_valid is False
assert "\n" in error_message
assert "Configuration error in .env" in error_message
assert "LIGHTRAG_RUNTIME_TARGET=docker" in error_message
assert "This value from .env" in error_message
assert "Docker or Kubernetes" in error_message
def test_validate_runtime_target_rejects_invalid_value() -> None:
is_valid, error_message = validate_runtime_target(
"invalid",
RuntimeEnvironment(in_container=False, in_docker=False, in_kubernetes=False),
)
assert is_valid is False
assert "\n" in error_message
assert "Configuration error in .env" in error_message
assert "must be 'host' or 'compose'" in error_message
def test_validate_runtime_target_from_env_file_uses_raw_env_value(
tmp_path: Path,
) -> None:
env_file = tmp_path / ".env"
env_file.write_text("LIGHTRAG_RUNTIME_TARGET=compose\n", encoding="utf-8")
is_valid, error_message = validate_runtime_target_from_env_file(
env_file,
RuntimeEnvironment(
in_container=True,
in_docker=True,
in_kubernetes=False,
),
)
assert is_valid is True
assert error_message is None
|