diff --git a/tests/test_console.py b/tests/test_console.py index 4071c08..361896f 100644 --- a/tests/test_console.py +++ b/tests/test_console.py @@ -1,6 +1,29 @@ import pytest -from transpose.console import parse_arguments +from pathlib import Path + +from transpose import TransposeConfig +from transpose.console import parse_arguments, run as run_console + +from .utils import ( + setup_restore, + setup_store, + setup_apply, + STORE_PATH, + TARGET_PATH, + TRANSPOSE_CONFIG_PATH, +) + + +class ConfigArgs: + name: str = "MyName" + action: str = "config" + forced: bool = False + path: str = str(TARGET_PATH) + config_action: str + + def __init__(self, config_action: str) -> None: + self.config_action = config_action def test_parse_arguments(): @@ -96,3 +119,52 @@ def test_parse_arguments_restore(): args = parse_arguments(["restore", "SomeName", "--force"]) assert args.force is True + + +@setup_restore() +def test_run_config_add(): + args = ConfigArgs("add") + args.name = "MyName2" + + run_console(args, TRANSPOSE_CONFIG_PATH) + config = TransposeConfig().load(TRANSPOSE_CONFIG_PATH) + assert config.entries.get(args.name) + + +@setup_restore() +def test_run_config_get(capsys): + args = ConfigArgs("get") + + run_console(args, TRANSPOSE_CONFIG_PATH) + captured = capsys.readouterr() + + assert str(TARGET_PATH) in captured.out + + +@setup_restore() +def test_run_config_list(capsys): + args = ConfigArgs("list") + + run_console(args, TRANSPOSE_CONFIG_PATH) + captured = capsys.readouterr() + + assert f"-> {TARGET_PATH}" in captured.out + + +@setup_restore() +def test_run_config_remove(): + args = ConfigArgs("remove") + + run_console(args, TRANSPOSE_CONFIG_PATH) + config = TransposeConfig().load(TRANSPOSE_CONFIG_PATH) + assert not config.entries.get(args.name) + + +@setup_restore() +def test_run_config_update(): + args = ConfigArgs("update") + args.path = "/var/tmp/something" + + run_console(args, TRANSPOSE_CONFIG_PATH) + config = TransposeConfig().load(TRANSPOSE_CONFIG_PATH) + assert config.entries[args.name].path == args.path