import pytest from transpose.console import parse_arguments def test_parse_arguments(): # Missing required argument - action with pytest.raises(SystemExit): parse_arguments() args = parse_arguments( [ "store", "--cache-filename", "test-cache-file.json", "--store-path", "/mnt/store", "MyTarget", "/tmp/some/path", ] ) assert args.cache_filename == "test-cache-file.json" assert args.store_path == "/mnt/store" def test_parse_arguments_apply(): # Missing required argument - target_path (Apply) with pytest.raises(SystemExit): args = parse_arguments(["apply"]) args = parse_arguments(["apply", "/tmp/some/path"]) assert args.action == "apply" assert args.target_path == "/tmp/some/path" def test_parse_arguments_store(): # Missing required argument - name (Store) with pytest.raises(SystemExit): args = parse_arguments(["store"]) # Missing required argument - target_path (Store) with pytest.raises(SystemExit): args = parse_arguments(["store", "My Name"]) args = parse_arguments(["store", "My Name", "/tmp/some/path"]) assert args.action == "store" assert args.name == "My Name" assert args.target_path == "/tmp/some/path" def test_parse_arguments_restore(): # Missing required argument - target_path (Restore) with pytest.raises(SystemExit): args = parse_arguments(["restore"]) args = parse_arguments(["restore", "/tmp/some/path"]) assert args.action == "restore" assert args.target_path == "/tmp/some/path"