diff --git a/tests/test_asymmetric_search.py b/tests/test_asymmetric_search.py index 78b1df9c..2547adef 100644 --- a/tests/test_asymmetric_search.py +++ b/tests/test_asymmetric_search.py @@ -1,3 +1,6 @@ +# System Packages +from pathlib import Path + # Internal Packages from src.main import model from src.search_type import asymmetric @@ -36,3 +39,38 @@ def test_asymmetric_search(content_config: ContentConfig, search_config: SearchC # Actual_data should contain "Semantic Search via Emacs" entry search_result = results[0]["Entry"] assert "git clone" in search_result + + +# ---------------------------------------------------------------------------------------------------- +def test_asymmetric_reload(content_config: ContentConfig, search_config: SearchConfig): + # Arrange + initial_notes_model= asymmetric.setup(content_config.org, search_config.asymmetric, regenerate=False) + + assert len(initial_notes_model.entries) == 10 + assert len(initial_notes_model.corpus_embeddings) == 10 + + file_to_add_on_reload = Path(content_config.org.input_filter).parent / "reload.org" + content_config.org.input_files = [f'{file_to_add_on_reload}'] + + # append Org-Mode Entry to first Org Input File in Config + with open(file_to_add_on_reload, "w") as f: + f.write("\n* A Chihuahua doing Tango\n- Saw a super cute video of a chihuahua doing the Tango on Youtube\n") + + # regenerate notes jsonl, model embeddings and model to include entry from new file + regenerated_notes_model = asymmetric.setup(content_config.org, search_config.asymmetric, regenerate=True) + + # Act + # reload embeddings, entries, notes model from previously generated notes jsonl and model embeddings files + initial_notes_model = asymmetric.setup(content_config.org, search_config.asymmetric, regenerate=False) + + # Assert + assert len(regenerated_notes_model.entries) == 11 + assert len(regenerated_notes_model.corpus_embeddings) == 11 + + # verify new entry loaded from updated embeddings, entries + assert len(initial_notes_model.entries) == 11 + assert len(initial_notes_model.corpus_embeddings) == 11 + + # Cleanup + # delete reload test file added + file_to_add_on_reload.unlink() diff --git a/tests/test_client.py b/tests/test_client.py index 2f00a745..ff1a7e98 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -43,6 +43,28 @@ def test_search_with_valid_content_type(content_config: ContentConfig, search_co assert response.status_code == 200 +# ---------------------------------------------------------------------------------------------------- +def test_reload_with_invalid_content_type(): + # Act + response = client.get(f"/reload?t=invalid_content_type") + + # Assert + assert response.status_code == 422 + + +# ---------------------------------------------------------------------------------------------------- +def test_reload_with_valid_content_type(content_config: ContentConfig, search_config: SearchConfig): + # Arrange + config.content_type = content_config + config.search_type = search_config + + for content_type in ["notes", "ledger", "music", "image"]: + # Act + response = client.get(f"/reload?t={content_type}") + # Assert + assert response.status_code == 200 + + # ---------------------------------------------------------------------------------------------------- def test_regenerate_with_invalid_content_type(): # Act