# Standard Modules from pathlib import Path from random import random # External Modules import pytest # Internal Packages from src.utils.cli import cli from src.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.config.content_type.org.input_files == [Path('~/first_from_config.org'), Path('~/second_from_config.org')] assert actual_args.verbose == 3