2021-08-22 04:21:38 +02:00
|
|
|
# Standard Modules
|
|
|
|
from pathlib import Path
|
2022-08-04 23:24:12 +02:00
|
|
|
from random import random
|
|
|
|
|
|
|
|
# External Modules
|
|
|
|
import pytest
|
2021-08-22 04:21:38 +02:00
|
|
|
|
|
|
|
# Internal Packages
|
2021-09-30 13:12:14 +02:00
|
|
|
from src.utils.cli import cli
|
2022-08-12 00:47:52 +02:00
|
|
|
from src.utils.helpers import resolve_absolute_path
|
2021-08-22 04:21:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
# Test
|
|
|
|
# ----------------------------------------------------------------------------------------------------
|
|
|
|
def test_cli_minimal_default():
|
|
|
|
# Act
|
2022-08-11 21:26:02 +02:00
|
|
|
actual_args = cli([])
|
2021-08-22 04:21:38 +02:00
|
|
|
|
|
|
|
# Assert
|
2022-08-12 00:47:52 +02:00
|
|
|
assert actual_args.config_file == resolve_absolute_path(Path('~/.khoj/khoj.yml'))
|
2021-08-22 04:21:38 +02:00
|
|
|
assert actual_args.regenerate == False
|
2022-08-11 21:26:02 +02:00
|
|
|
assert actual_args.no_gui == False
|
2021-08-22 04:21:38 +02:00
|
|
|
assert actual_args.verbose == 0
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------------------------------
|
2022-08-04 23:24:12 +02:00
|
|
|
def test_cli_invalid_config_file_path():
|
2022-08-11 21:26:02 +02:00
|
|
|
# Arrange
|
|
|
|
non_existent_config_file = f"non-existent-khoj-{random()}.yml"
|
|
|
|
|
2021-08-22 04:21:38 +02:00
|
|
|
# Act
|
2022-08-11 21:26:02 +02:00
|
|
|
actual_args = cli([f'-c={non_existent_config_file}'])
|
|
|
|
|
|
|
|
# Assert
|
2022-08-12 00:47:52 +02:00
|
|
|
assert actual_args.config_file == resolve_absolute_path(non_existent_config_file)
|
2022-08-11 21:26:02 +02:00
|
|
|
assert actual_args.config == None
|
2021-08-22 04:21:38 +02:00
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------------------------------
|
|
|
|
def test_cli_config_from_file():
|
|
|
|
# Act
|
2022-08-11 21:26:02 +02:00
|
|
|
actual_args = cli(['-c=tests/data/config.yml',
|
2021-08-22 04:21:38 +02:00
|
|
|
'--regenerate',
|
2022-08-11 21:26:02 +02:00
|
|
|
'--no-gui',
|
2021-08-22 04:21:38 +02:00
|
|
|
'-vvv'])
|
|
|
|
|
|
|
|
# Assert
|
2022-08-12 00:47:52 +02:00
|
|
|
assert actual_args.config_file == resolve_absolute_path(Path('tests/data/config.yml'))
|
2022-08-11 21:26:02 +02:00
|
|
|
assert actual_args.no_gui == True
|
2021-08-22 04:21:38 +02:00
|
|
|
assert actual_args.regenerate == True
|
|
|
|
assert actual_args.config is not None
|
2022-08-04 22:26:31 +02:00
|
|
|
assert actual_args.config.content_type.org.input_files == [Path('~/first_from_config.org'), Path('~/second_from_config.org')]
|
2021-08-22 04:21:38 +02:00
|
|
|
assert actual_args.verbose == 3
|