Browse Source

Tests: Adding tests for console apply-all command

pull/10/head
Ryan Reed 1 year ago
parent
commit
f72ead4fe6
3 changed files with 70 additions and 19 deletions
  1. +51
    -10
      tests/test_console.py
  2. +0
    -6
      tests/test_transpose.py
  3. +19
    -3
      tests/utils.py

+ 51
- 10
tests/test_console.py View File

@ -7,18 +7,31 @@ from transpose.console import parse_arguments, run as run_console
from .utils import ( from .utils import (
setup_restore, setup_restore,
setup_store,
setup_apply, setup_apply,
ENTRY_NAME,
SECOND_ENTRY_NAME,
STORE_PATH, STORE_PATH,
TARGET_PATH, TARGET_PATH,
SECOND_TARGET_PATH,
TRANSPOSE_CONFIG_PATH, TRANSPOSE_CONFIG_PATH,
) )
class RunArgs:
name: str = "MyName"
class RunActionArgs:
name: str = ENTRY_NAME
path: str = str(TARGET_PATH)
action: str
force: bool
def __init__(self, action: str, force: bool = False) -> None:
self.action = action
self.force = force
class RunConfigArgs:
name: str = ENTRY_NAME
action: str = "config" action: str = "config"
forced: bool = False
force: bool = False
path: str = str(TARGET_PATH) path: str = str(TARGET_PATH)
config_action: str config_action: str
@ -121,8 +134,36 @@ def test_parse_arguments_restore():
assert args.force is True assert args.force is True
@setup_apply()
def test_run_apply(): def test_run_apply():
pass
args = RunActionArgs("apply", False)
run_console(args, TRANSPOSE_CONFIG_PATH)
assert TARGET_PATH.is_symlink()
@setup_apply()
def test_run_apply_all(capsys):
args = RunActionArgs("apply-all", False)
run_console(args, TRANSPOSE_CONFIG_PATH)
captured = capsys.readouterr()
assert f"\t{ENTRY_NAME:<30}: success" in captured.out
assert f"\t{SECOND_ENTRY_NAME:<30}: Entry path already exists" in captured.out
assert TARGET_PATH.is_symlink()
assert SECOND_TARGET_PATH.is_dir()
args.force = True
run_console(args, TRANSPOSE_CONFIG_PATH)
captured = capsys.readouterr()
assert f"\t{ENTRY_NAME:<30}: success" in captured.out
assert f"\t{SECOND_ENTRY_NAME:<30}: success" in captured.out
assert SECOND_TARGET_PATH.is_symlink()
assert SECOND_TARGET_PATH.with_suffix(".backup").is_dir()
def test_run_restore(): def test_run_restore():
@ -135,7 +176,7 @@ def test_run_store():
@setup_restore() @setup_restore()
def test_run_config_add(): def test_run_config_add():
args = RunArgs("add")
args = RunConfigArgs("add")
args.name = "MyName2" args.name = "MyName2"
run_console(args, TRANSPOSE_CONFIG_PATH) run_console(args, TRANSPOSE_CONFIG_PATH)
@ -146,7 +187,7 @@ def test_run_config_add():
@setup_restore() @setup_restore()
def test_run_config_get(capsys): def test_run_config_get(capsys):
args = RunArgs("get")
args = RunConfigArgs("get")
run_console(args, TRANSPOSE_CONFIG_PATH) run_console(args, TRANSPOSE_CONFIG_PATH)
captured = capsys.readouterr() captured = capsys.readouterr()
@ -156,7 +197,7 @@ def test_run_config_get(capsys):
@setup_restore() @setup_restore()
def test_run_config_list(capsys): def test_run_config_list(capsys):
args = RunArgs("list")
args = RunConfigArgs("list")
run_console(args, TRANSPOSE_CONFIG_PATH) run_console(args, TRANSPOSE_CONFIG_PATH)
captured = capsys.readouterr() captured = capsys.readouterr()
@ -166,7 +207,7 @@ def test_run_config_list(capsys):
@setup_restore() @setup_restore()
def test_run_config_remove(): def test_run_config_remove():
args = RunArgs("remove")
args = RunConfigArgs("remove")
run_console(args, TRANSPOSE_CONFIG_PATH) run_console(args, TRANSPOSE_CONFIG_PATH)
config = TransposeConfig().load(TRANSPOSE_CONFIG_PATH) config = TransposeConfig().load(TRANSPOSE_CONFIG_PATH)
@ -176,7 +217,7 @@ def test_run_config_remove():
@setup_restore() @setup_restore()
def test_run_config_update(): def test_run_config_update():
args = RunArgs("update")
args = RunConfigArgs("update")
args.path = "/var/tmp/something" args.path = "/var/tmp/something"
run_console(args, TRANSPOSE_CONFIG_PATH) run_console(args, TRANSPOSE_CONFIG_PATH)


+ 0
- 6
tests/test_transpose.py View File

@ -38,12 +38,6 @@ def test_apply():
with pytest.raises(TransposeError, match="Entry does not exist"): with pytest.raises(TransposeError, match="Entry does not exist"):
t.apply("BadName") t.apply("BadName")
# Will remove the symlink created above and reapply
# TODO: Check symlink path
t.apply(ENTRY_NAME)
assert TARGET_PATH.is_symlink()
assert ENTRY_STORE_PATH.is_dir()
# Target already exists, force not set # Target already exists, force not set
TARGET_PATH.unlink() TARGET_PATH.unlink()
TARGET_PATH.mkdir() TARGET_PATH.mkdir()


+ 19
- 3
tests/utils.py View File

@ -9,9 +9,11 @@ from transpose import version
ENTRY_NAME = "MyName" ENTRY_NAME = "MyName"
SECOND_ENTRY_NAME = "SecondEntry"
TESTS_PATH = Path("tests-temp") TESTS_PATH = Path("tests-temp")
STORE_PATH = TESTS_PATH.joinpath("store") STORE_PATH = TESTS_PATH.joinpath("store")
TARGET_PATH = TESTS_PATH.joinpath("source") TARGET_PATH = TESTS_PATH.joinpath("source")
SECOND_TARGET_PATH = TESTS_PATH.joinpath("second_source")
SYMLINK_TEST_PATH = TESTS_PATH.joinpath("symlink_test") SYMLINK_TEST_PATH = TESTS_PATH.joinpath("symlink_test")
ENTRY_STORE_PATH = STORE_PATH.joinpath(ENTRY_NAME) ENTRY_STORE_PATH = STORE_PATH.joinpath(ENTRY_NAME)
@ -19,8 +21,18 @@ TRANSPOSE_CONFIG_PATH = STORE_PATH.joinpath("transpose.json")
TRANSPOSE_CONFIG = { TRANSPOSE_CONFIG = {
"version": version, "version": version,
"entries": {ENTRY_NAME: {"name": ENTRY_NAME, "path": str(TARGET_PATH)}},
"created": "2023-01-21 01:02:03.1234567",
"entries": {
ENTRY_NAME: {
"name": ENTRY_NAME,
"path": str(TARGET_PATH),
"created": "2023-01-21 01:02:03.1234567",
},
SECOND_ENTRY_NAME: {
"name": SECOND_ENTRY_NAME,
"path": str(SECOND_TARGET_PATH),
"created": "2023-02-23 01:02:03.1234567",
},
},
} }
@ -31,13 +43,17 @@ def setup_apply():
tests-temp/ tests-temp/
store/ store/
transpose.json transpose.json
MyName/
MyName/
SecondEntry/
second_source/
symlink_test/ -> source/ symlink_test/ -> source/
""" """
try: try:
with TemporaryDirectory(str(TESTS_PATH)): with TemporaryDirectory(str(TESTS_PATH)):
STORE_PATH.mkdir(parents=True, exist_ok=True) STORE_PATH.mkdir(parents=True, exist_ok=True)
ENTRY_STORE_PATH.mkdir(parents=True, exist_ok=True) ENTRY_STORE_PATH.mkdir(parents=True, exist_ok=True)
STORE_PATH.joinpath(SECOND_ENTRY_NAME).mkdir()
SECOND_TARGET_PATH.mkdir()
SYMLINK_TEST_PATH.symlink_to(TARGET_PATH.resolve()) SYMLINK_TEST_PATH.symlink_to(TARGET_PATH.resolve())
with open(str(TRANSPOSE_CONFIG_PATH), "w") as f: with open(str(TRANSPOSE_CONFIG_PATH), "w") as f:


Loading…
Cancel
Save