Merge pull request #11184 from briancain/fixup/cleanup-cloud-publish-cmd

Fixes #11137: Fixup how cloud publish handles its arguments
This commit is contained in:
Brian Cain 2019-11-12 09:07:42 -08:00 committed by GitHub
commit 403fece5ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 1 deletions

View File

@ -55,7 +55,7 @@ module VagrantPlugins
argv = parse_options(opts)
return if !argv
if argv.empty? || argv.length > 4 || argv.length < 3
if argv.empty? || argv.length > 4 || argv.length < 3 || (argv.length == 3 && !options[:url])
raise Vagrant::Errors::CLIInvalidUsage,
help: opts.help.chomp
end

View File

@ -52,6 +52,15 @@ describe VagrantPlugins::CloudCommand::Command::Publish do
let(:argv) { ["vagrant/box", "1.0.0", "virtualbox"] }
it "shows help" do
expect { subject.execute }.
to raise_error(Vagrant::Errors::CLIInvalidUsage)
end
end
context "missing box file" do
let(:argv) { ["vagrant/box", "1.0.0", "virtualbox", "/notreal/file.box"] }
it "raises an exception" do
allow(File).to receive(:file?).and_return(false)
expect { subject.execute }.
to raise_error(Vagrant::Errors::BoxFileNotExist)