from dvc.cli import parse_args from dvc.commands.queue.kill import CmdQueueKill from dvc.commands.queue.logs import CmdQueueLogs from dvc.commands.queue.remove import CmdQueueRemove from dvc.commands.queue.start import CmdQueueStart from dvc.commands.queue.status import CmdQueueStatus from dvc.commands.queue.stop import CmdQueueStop def test_experiments_remove(dvc, scm, mocker): cli_args = parse_args( [ "queue", "remove", "--all", ] ) assert cli_args.func == CmdQueueRemove cmd = cli_args.func(cli_args) m = mocker.patch( "dvc.repo.experiments.queue.local.LocalCeleryQueue.clear", return_value={}, ) assert cmd.run() == 0 m.assert_called_once_with() cli_args = parse_args( [ "queue", "remove", "exp1", "exp2", ] ) assert cli_args.func == CmdQueueRemove cmd = cli_args.func(cli_args) m = mocker.patch( "dvc.repo.experiments.queue.local.LocalCeleryQueue.remove", return_value={}, ) assert cmd.run() == 0 m.assert_called_once_with(revs=["exp1", "exp2"]) def test_experiments_kill(dvc, scm, mocker): cli_args = parse_args( [ "queue", "kill", "exp1", "exp2", ] ) assert cli_args.func == CmdQueueKill cmd = cli_args.func(cli_args) m = mocker.patch( "dvc.repo.experiments.queue.local.LocalCeleryQueue.kill", return_value={}, ) assert cmd.run() == 0 m.assert_called_once_with(revs=["exp1", "exp2"]) def test_experiments_start(dvc, scm, mocker): cli_args = parse_args(["queue", "start", "-j", "3"]) assert cli_args.func == CmdQueueStart cmd = cli_args.func(cli_args) m = mocker.patch( "dvc.repo.experiments.queue.local.LocalCeleryQueue.spawn_worker", ) assert cmd.run() == 0 assert m.call_count == 3 def test_experiments_stop(dvc, scm, mocker): cli_args = parse_args( [ "queue", "stop", "--kill", ] ) assert cli_args.func == CmdQueueStop cmd = cli_args.func(cli_args) m = mocker.patch( "dvc.repo.experiments.queue.local.LocalCeleryQueue.shutdown", ) assert cmd.run() == 0 m.assert_called_once_with(kill=True) def test_experiments_status(dvc, scm, mocker): cli_args = parse_args( [ "queue", "status", ] ) assert cli_args.func == CmdQueueStatus cmd = cli_args.func(cli_args) m = mocker.patch( "dvc.repo.experiments.queue.local.LocalCeleryQueue.status", ) assert cmd.run() == 0 m.assert_called_once_with() def test_queue_logs(dvc, scm, mocker): cli_args = parse_args(["queue", "logs", "exp1", "-e", "utf8", "-f"]) assert cli_args.func == CmdQueueLogs cmd = cli_args.func(cli_args) m = mocker.patch( "dvc.repo.experiments.queue.local.LocalCeleryQueue.logs", return_value={}, ) assert cmd.run() == 0 m.assert_called_once_with(rev="exp1", encoding="utf8", follow=True)