mirror of
https://github.com/khoj-ai/khoj.git
synced 2024-11-30 19:03:01 +01:00
fcbbe8c759
Configure external text content plugins via the Khoj YAML Reuse existing TextContentConfig definition for external text content plugins
63 lines
2.3 KiB
Python
63 lines
2.3 KiB
Python
# Standard Modules
|
|
from pathlib import Path
|
|
from random import random
|
|
|
|
# Internal Packages
|
|
from khoj.utils.cli import cli
|
|
from khoj.utils.helpers import resolve_absolute_path
|
|
|
|
|
|
# Test
|
|
# ----------------------------------------------------------------------------------------------------
|
|
def test_cli_minimal_default():
|
|
# Act
|
|
actual_args = cli([])
|
|
|
|
# Assert
|
|
assert actual_args.config_file == resolve_absolute_path(Path("~/.khoj/khoj.yml"))
|
|
assert actual_args.regenerate == False
|
|
assert actual_args.no_gui == False
|
|
assert actual_args.verbose == 0
|
|
|
|
|
|
# ----------------------------------------------------------------------------------------------------
|
|
def test_cli_invalid_config_file_path():
|
|
# Arrange
|
|
non_existent_config_file = f"non-existent-khoj-{random()}.yml"
|
|
|
|
# Act
|
|
actual_args = cli([f"-c={non_existent_config_file}"])
|
|
|
|
# Assert
|
|
assert actual_args.config_file == resolve_absolute_path(non_existent_config_file)
|
|
assert actual_args.config == None
|
|
|
|
|
|
# ----------------------------------------------------------------------------------------------------
|
|
def test_cli_config_from_file():
|
|
# Act
|
|
actual_args = cli(["-c=tests/data/config.yml", "--regenerate", "--no-gui", "-vvv"])
|
|
|
|
# Assert
|
|
assert actual_args.config_file == resolve_absolute_path(Path("tests/data/config.yml"))
|
|
assert actual_args.no_gui == True
|
|
assert actual_args.regenerate == True
|
|
assert actual_args.config is not None
|
|
assert actual_args.verbose == 3
|
|
|
|
# Ensure content config is loaded from file
|
|
assert actual_args.config.content_type.org.input_files == [
|
|
Path("~/first_from_config.org"),
|
|
Path("~/second_from_config.org"),
|
|
]
|
|
assert len(actual_args.config.content_type.plugins.keys()) == 2
|
|
assert actual_args.config.content_type.plugins["content_plugin_1"].input_files == [
|
|
Path("content_plugin_1_new.jsonl.gz")
|
|
]
|
|
assert actual_args.config.content_type.plugins["content_plugin_2"].input_filter == ["*2_new.jsonl.gz"]
|
|
assert actual_args.config.content_type.plugins["content_plugin_1"].compressed_jsonl == Path(
|
|
"content_plugin_1.jsonl.gz"
|
|
)
|
|
assert actual_args.config.content_type.plugins["content_plugin_2"].embeddings_file == Path(
|
|
"content_plugin_2_embeddings.pt"
|
|
)
|