959a391334
Some checks failed
publish docs / publish-docs (push) Has been cancelled
release-please / release-please (push) Has been cancelled
tests / setup (push) Has been cancelled
tests / ${{ matrix.quality-command }} (black) (push) Has been cancelled
tests / ${{ matrix.quality-command }} (mypy) (push) Has been cancelled
tests / ${{ matrix.quality-command }} (ruff) (push) Has been cancelled
tests / test (push) Has been cancelled
tests / all_checks_passed (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled
75 lines
1.9 KiB
Python
75 lines
1.9 KiB
Python
import os
|
|
import subprocess
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
from fastapi.testclient import TestClient
|
|
|
|
|
|
@pytest.fixture()
|
|
def file_path() -> str:
|
|
return "test.txt"
|
|
|
|
|
|
def create_test_file(file_path: str) -> None:
|
|
with open(file_path, "w") as f:
|
|
f.write("test")
|
|
|
|
|
|
def clear_log_file(log_file_path: str) -> None:
|
|
if Path(log_file_path).exists():
|
|
os.remove(log_file_path)
|
|
|
|
|
|
def read_log_file(log_file_path: str) -> str:
|
|
with open(log_file_path) as f:
|
|
return f.read()
|
|
|
|
|
|
def init_structure(folder: str, file_path: str) -> None:
|
|
clear_log_file(file_path)
|
|
os.makedirs(folder, exist_ok=True)
|
|
create_test_file(f"{folder}/${file_path}")
|
|
|
|
|
|
def test_ingest_one_file_in_allowed_folder(
|
|
file_path: str, test_client: TestClient
|
|
) -> None:
|
|
allowed_folder = "local_data/tests/allowed_folder"
|
|
init_structure(allowed_folder, file_path)
|
|
|
|
test_env = os.environ.copy()
|
|
test_env["PGPT_PROFILES"] = "test"
|
|
test_env["LOCAL_INGESTION_ENABLED"] = "True"
|
|
|
|
result = subprocess.run(
|
|
["python", "scripts/ingest_folder.py", allowed_folder],
|
|
capture_output=True,
|
|
text=True,
|
|
env=test_env,
|
|
)
|
|
|
|
assert result.returncode == 0, f"Script failed with error: {result.stderr}"
|
|
response_after = test_client.get("/v1/ingest/list")
|
|
|
|
count_ingest_after = len(response_after.json()["data"])
|
|
assert count_ingest_after > 0, "No documents were ingested"
|
|
|
|
|
|
def test_ingest_disabled(file_path: str) -> None:
|
|
allowed_folder = "local_data/tests/allowed_folder"
|
|
init_structure(allowed_folder, file_path)
|
|
|
|
test_env = os.environ.copy()
|
|
test_env["PGPT_PROFILES"] = "test"
|
|
test_env["LOCAL_INGESTION_ENABLED"] = "False"
|
|
|
|
result = subprocess.run(
|
|
["python", "scripts/ingest_folder.py", allowed_folder],
|
|
capture_output=True,
|
|
text=True,
|
|
env=test_env,
|
|
)
|
|
|
|
assert result.returncode != 0, f"Script failed with error: {result.stderr}"
|