96 lines
2.5 KiB
Python
96 lines
2.5 KiB
Python
import sys
|
|
|
|
import pytest
|
|
|
|
from lightrag.api.config import parse_args
|
|
from lightrag.constants import DEFAULT_MAX_ASYNC
|
|
|
|
|
|
pytestmark = pytest.mark.offline
|
|
|
|
|
|
ROLE_MAX_ASYNC_ENV_KEYS = (
|
|
"MAX_ASYNC_LLM",
|
|
"MAX_ASYNC",
|
|
"EXTRACT_MAX_ASYNC_LLM",
|
|
"KEYWORD_MAX_ASYNC_LLM",
|
|
"QUERY_MAX_ASYNC_LLM",
|
|
"VLM_MAX_ASYNC_LLM",
|
|
)
|
|
|
|
|
|
def _clear_max_async_env(monkeypatch):
|
|
for key in ROLE_MAX_ASYNC_ENV_KEYS:
|
|
monkeypatch.delenv(key, raising=False)
|
|
|
|
|
|
def test_role_max_async_defaults_none_when_env_unset(monkeypatch):
|
|
_clear_max_async_env(monkeypatch)
|
|
monkeypatch.setattr(sys, "argv", ["lightrag-server"])
|
|
monkeypatch.setenv("MAX_ASYNC", "10")
|
|
|
|
args = parse_args()
|
|
|
|
assert args.max_async == 10
|
|
assert args.extract_llm_max_async is None
|
|
assert args.keyword_llm_max_async is None
|
|
assert args.query_llm_max_async is None
|
|
assert args.vlm_llm_max_async is None
|
|
|
|
|
|
def test_role_max_async_env_override_keeps_other_roles_none(monkeypatch):
|
|
_clear_max_async_env(monkeypatch)
|
|
monkeypatch.setattr(sys, "argv", ["lightrag-server"])
|
|
monkeypatch.setenv("MAX_ASYNC", "10")
|
|
monkeypatch.setenv("EXTRACT_MAX_ASYNC_LLM", "7")
|
|
|
|
args = parse_args()
|
|
|
|
assert args.max_async == 10
|
|
assert args.extract_llm_max_async == 7
|
|
assert args.keyword_llm_max_async is None
|
|
assert args.query_llm_max_async is None
|
|
assert args.vlm_llm_max_async is None
|
|
|
|
|
|
def test_role_max_async_literal_none_string_is_preserved(monkeypatch):
|
|
_clear_max_async_env(monkeypatch)
|
|
monkeypatch.setattr(sys, "argv", ["lightrag-server"])
|
|
monkeypatch.setenv("MAX_ASYNC", "10")
|
|
monkeypatch.setenv("QUERY_MAX_ASYNC_LLM", "None")
|
|
|
|
args = parse_args()
|
|
|
|
assert args.max_async == 10
|
|
assert args.query_llm_max_async is None
|
|
|
|
|
|
def test_max_async_llm_new_name(monkeypatch):
|
|
_clear_max_async_env(monkeypatch)
|
|
monkeypatch.setattr(sys, "argv", ["lightrag-server"])
|
|
monkeypatch.setenv("MAX_ASYNC_LLM", "8")
|
|
|
|
args = parse_args()
|
|
|
|
assert args.max_async == 8
|
|
|
|
|
|
def test_max_async_llm_takes_precedence_over_legacy(monkeypatch):
|
|
_clear_max_async_env(monkeypatch)
|
|
monkeypatch.setattr(sys, "argv", ["lightrag-server"])
|
|
monkeypatch.setenv("MAX_ASYNC_LLM", "8")
|
|
monkeypatch.setenv("MAX_ASYNC", "10")
|
|
|
|
args = parse_args()
|
|
|
|
assert args.max_async == 8
|
|
|
|
|
|
def test_max_async_defaults_when_unset(monkeypatch):
|
|
_clear_max_async_env(monkeypatch)
|
|
monkeypatch.setattr(sys, "argv", ["lightrag-server"])
|
|
|
|
args = parse_args()
|
|
|
|
assert args.max_async == DEFAULT_MAX_ASYNC
|