69 lines
2.1 KiB
Ruby
69 lines
2.1 KiB
Ruby
require "test_helper"
|
|
|
|
class PuppetServerProvisionerTest < Test::Unit::TestCase
|
|
setup do
|
|
@klass = Vagrant::Provisioners::PuppetServer
|
|
|
|
@action_env = Vagrant::Action::Environment.new(vagrant_env.vms[:default].env)
|
|
|
|
@config = @klass::Config.new
|
|
@action = @klass.new(@action_env, @config)
|
|
@env = @action.env
|
|
@vm = @action.vm
|
|
end
|
|
|
|
context "provisioning" do
|
|
should "run the proper sequence of methods in order" do
|
|
prov_seq = sequence("prov_seq")
|
|
@action.expects(:verify_binary).with("puppetd").once.in_sequence(prov_seq)
|
|
@action.expects(:run_puppetd_client).once.in_sequence(prov_seq)
|
|
@action.provision!
|
|
end
|
|
end
|
|
|
|
context "verifying binary" do
|
|
setup do
|
|
@ssh = mock("ssh")
|
|
@shell = mock("shell")
|
|
@vm.ssh.stubs(:execute).yields(@ssh)
|
|
end
|
|
|
|
should "verify binary exists" do
|
|
binary = "foo"
|
|
@ssh.expects(:sudo!).with("which #{binary}", anything)
|
|
@action.verify_binary(binary)
|
|
end
|
|
end
|
|
|
|
context "running puppetd client" do
|
|
setup do
|
|
@cn = "puppet_node"
|
|
@ssh = mock("ssh")
|
|
@vm.ssh.stubs(:execute).yields(@ssh)
|
|
end
|
|
|
|
should "run the puppetd client" do
|
|
@ssh.expects(:sudo!).with("puppetd --server #{@config.puppet_server} --certname #{@cn}").once
|
|
@action.run_puppetd_client
|
|
end
|
|
|
|
should "run puppetd with given options when given as an array" do
|
|
@config.options = ["--modulepath", "modules", "--verbose"]
|
|
@ssh.expects(:sudo!).with("puppetd --modulepath modules --verbose --server #{@config.puppet_server} --certname #{@cn}").once
|
|
@action.run_puppetd_client
|
|
end
|
|
|
|
should "run puppetd with the options when given as a string" do
|
|
@config.options = "--modulepath modules --verbose"
|
|
@ssh.expects(:sudo!).with("puppetd --modulepath modules --verbose --server #{@config.puppet_server} --certname #{@cn}").once
|
|
@action.run_puppetd_client
|
|
end
|
|
|
|
should "check the exit status if that is given" do
|
|
@ssh.stubs(:sudo!).yields(nil, :exit_status, :foo)
|
|
@ssh.expects(:check_exit_status).with(:foo, anything).once
|
|
@action.run_puppetd_client
|
|
end
|
|
end
|
|
end
|