From cb0fbcd3968efe6b46fcf15ca8ec6ef950b55dd0 Mon Sep 17 00:00:00 2001 From: Brian Cain Date: Mon, 11 May 2020 08:01:29 -0700 Subject: [PATCH 11/11] Fixes #11606: Mock out guest capabilities instead of running them This commit fixes a test that only fails on certain users machines where Vagrant ends up trying to run real guest capabilities to test if the docker provisioner raises an error if the provisioner install failed. It fixes it by mocking out the expected return values for those capabilities rather than relying on them actually running for this specific unit test. (cherry picked from commit 3934a26c2974a1795f25db31e98300386a71881d) --- test/unit/plugins/provisioners/docker/installer_test.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/unit/plugins/provisioners/docker/installer_test.rb b/test/unit/plugins/provisioners/docker/installer_test.rb index c21654b63..e8cd8fb3f 100644 --- a/test/unit/plugins/provisioners/docker/installer_test.rb +++ b/test/unit/plugins/provisioners/docker/installer_test.rb @@ -36,9 +36,10 @@ describe VagrantPlugins::DockerProvisioner::Installer do end it "installs docker if not present" do - expect(communicator).to receive(:test).with(/docker/, {:sudo=>true}).and_return(false).at_least(:twice) - # Will execute sudo commands to install - expect(communicator).to receive(:sudo).at_least(:once) + allow(machine).to receive_message_chain(:guest, :capability?).with(:docker_installed).and_return(true) + allow(machine).to receive_message_chain(:guest, :capability).with(:docker_install).and_return(false) + allow(machine).to receive_message_chain(:guest, :capability).with(:docker_installed).and_return(false) + # Expect to raise error since we are mocking out the test for docker install to return false expect {subject.ensure_installed()}.to raise_error(VagrantPlugins::DockerProvisioner::DockerError) end -- 2.26.2