diff --git a/requirements.txt b/requirements.txt index 098cf53..82c5c52 100644 --- a/requirements.txt +++ b/requirements.txt @@ -46,6 +46,7 @@ httpx-sse==0.4.3 huggingface_hub==1.18.0 idna==3.18 importlib_resources==7.1.0 +iniconfig==2.3.0 Jinja2==3.1.6 jiter==0.15.0 joblib==1.5.3 @@ -134,6 +135,7 @@ pylatexenc==2.10 pypdfium2==5.9.0 PyPika==0.51.1 pyproject_hooks==1.2.0 +pytest==9.1.0 python-dateutil==2.9.0.post0 python-docx==1.2.0 python-dotenv==1.2.2 diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_config.py b/tests/test_config.py new file mode 100644 index 0000000..0ea8cc7 --- /dev/null +++ b/tests/test_config.py @@ -0,0 +1,33 @@ +from pathlib import Path +from src.config import load_config, AppConfig + +def test_load_config_structure(): + """Test that configuration initializes with expected attributes""" + config = load_config(config_path="_non_existent_file_for_testing_.toml") + + assert isinstance(config, AppConfig) + + assert hasattr(config, "MODEL_NAME") + assert isinstance(config.MODEL_NAME, str) + + assert hasattr(config, "DEVICE") + assert isinstance(config.DEVICE, str) + assert config.DEVICE.lower() in ("cuda", "cpu") + + assert hasattr(config, "LLM_MODEL_NAME") + assert isinstance(config.LLM_MODEL_NAME, str) + + assert hasattr(config, "LLM_BASE_URL") + assert isinstance(config.LLM_BASE_URL, str) + + assert hasattr(config, "DB_PATH") + assert isinstance(config.DB_PATH, str) + assert Path(config.DB_PATH).name != "", "DB_PATH target directory resolution is empty" + + assert hasattr(config, "DOCS_PATH") + assert isinstance(config.DOCS_PATH, str) + assert Path(config.DOCS_PATH).name != "", "DOCS_PATH target directory resolution is empty" + + assert hasattr(config, "LLM_NUM_CTX") + assert isinstance(config.LLM_NUM_CTX, int) + assert config.LLM_NUM_CTX > 0 \ No newline at end of file diff --git a/tests/test_llm.py b/tests/test_llm.py new file mode 100644 index 0000000..e69de29