| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- 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
|