test_api_config_role_max_async.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import sys
  2. import pytest
  3. from lightrag.api.config import parse_args
  4. pytestmark = pytest.mark.offline
  5. ROLE_MAX_ASYNC_ENV_KEYS = (
  6. "MAX_ASYNC",
  7. "EXTRACT_MAX_ASYNC_LLM",
  8. "KEYWORD_MAX_ASYNC_LLM",
  9. "QUERY_MAX_ASYNC_LLM",
  10. "VLM_MAX_ASYNC_LLM",
  11. )
  12. def _clear_max_async_env(monkeypatch):
  13. for key in ROLE_MAX_ASYNC_ENV_KEYS:
  14. monkeypatch.delenv(key, raising=False)
  15. def test_role_max_async_defaults_none_when_env_unset(monkeypatch):
  16. _clear_max_async_env(monkeypatch)
  17. monkeypatch.setattr(sys, "argv", ["lightrag-server"])
  18. monkeypatch.setenv("MAX_ASYNC", "10")
  19. args = parse_args()
  20. assert args.max_async == 10
  21. assert args.extract_llm_max_async is None
  22. assert args.keyword_llm_max_async is None
  23. assert args.query_llm_max_async is None
  24. assert args.vlm_llm_max_async is None
  25. def test_role_max_async_env_override_keeps_other_roles_none(monkeypatch):
  26. _clear_max_async_env(monkeypatch)
  27. monkeypatch.setattr(sys, "argv", ["lightrag-server"])
  28. monkeypatch.setenv("MAX_ASYNC", "10")
  29. monkeypatch.setenv("EXTRACT_MAX_ASYNC_LLM", "7")
  30. args = parse_args()
  31. assert args.max_async == 10
  32. assert args.extract_llm_max_async == 7
  33. assert args.keyword_llm_max_async is None
  34. assert args.query_llm_max_async is None
  35. assert args.vlm_llm_max_async is None
  36. def test_role_max_async_literal_none_string_is_preserved(monkeypatch):
  37. _clear_max_async_env(monkeypatch)
  38. monkeypatch.setattr(sys, "argv", ["lightrag-server"])
  39. monkeypatch.setenv("MAX_ASYNC", "10")
  40. monkeypatch.setenv("QUERY_MAX_ASYNC_LLM", "None")
  41. args = parse_args()
  42. assert args.max_async == 10
  43. assert args.query_llm_max_async is None