mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-06 07:18:28 +01:00
* tpi: add naive terraform-provider-iterative wrapper * executor: add naive backend/terraform wrapper * setup: add dvc[terraform] install extras * config: add feature.executor feature flag * fix named executor config sections * executor: add poc add/modify/remove/init/destroy commands * relax python-terraform requirement * ci: install terraform extras * tpi: support .tf.json format * s/executor/machine * terraform: use separate dirs per machine * s/init/create/ * reserve local machine name * add initial ssh skeleton * add initial machine unit tests * add initial machine command tests * add tests for add/remove * enable feature by default in test env * close temp pemfile object so it can be used on windows * cleanup pemfile syntax
67 lines
1.8 KiB
Python
67 lines
1.8 KiB
Python
import configobj
|
|
|
|
from dvc.cli import parse_args
|
|
from dvc.command.machine import (
|
|
CmdMachineAdd,
|
|
CmdMachineCreate,
|
|
CmdMachineDestroy,
|
|
CmdMachineRemove,
|
|
)
|
|
|
|
|
|
def test_add(tmp_dir):
|
|
tmp_dir.gen({".dvc": {"config": "[feature]\n machine = true"}})
|
|
cli_args = parse_args(["machine", "add", "foo", "aws"])
|
|
assert cli_args.func == CmdMachineAdd
|
|
cmd = cli_args.func(cli_args)
|
|
assert cmd.run() == 0
|
|
config = configobj.ConfigObj(str(tmp_dir / ".dvc" / "config"))
|
|
assert config['machine "foo"']["cloud"] == "aws"
|
|
|
|
|
|
def test_remove(tmp_dir):
|
|
tmp_dir.gen(
|
|
{
|
|
".dvc": {
|
|
"config": (
|
|
"[feature]\n"
|
|
" machine = true\n"
|
|
"['machine \"foo\"']\n"
|
|
" cloud = aws"
|
|
)
|
|
}
|
|
}
|
|
)
|
|
cli_args = parse_args(["machine", "remove", "foo"])
|
|
assert cli_args.func == CmdMachineRemove
|
|
cmd = cli_args.func(cli_args)
|
|
assert cmd.run() == 0
|
|
config = configobj.ConfigObj(str(tmp_dir / ".dvc" / "config"))
|
|
assert list(config.keys()) == ["feature"]
|
|
|
|
|
|
def test_create(tmp_dir, dvc, mocker):
|
|
cli_args = parse_args(["machine", "create", "foo"])
|
|
assert cli_args.func == CmdMachineCreate
|
|
|
|
cmd = cli_args.func(cli_args)
|
|
m = mocker.patch.object(
|
|
cmd.repo.machine, "create", autospec=True, return_value=0
|
|
)
|
|
|
|
assert cmd.run() == 0
|
|
m.assert_called_once_with("foo")
|
|
|
|
|
|
def test_destroy(tmp_dir, dvc, mocker):
|
|
cli_args = parse_args(["machine", "destroy", "foo"])
|
|
assert cli_args.func == CmdMachineDestroy
|
|
|
|
cmd = cli_args.func(cli_args)
|
|
m = mocker.patch.object(
|
|
cmd.repo.machine, "destroy", autospec=True, return_value=0
|
|
)
|
|
|
|
assert cmd.run() == 0
|
|
m.assert_called_once_with("foo")
|