Sha256: 2ecac99dc8854b7cdeab4bc3e39cbcd81e71c5eca2d96956c1b6becf795b5118
Contents?: true
Size: 1.59 KB
Versions: 3
Compression:
Stored size: 1.59 KB
Contents
describe Paraduct::Runner do describe "#perform" do subject{ Paraduct::Runner.perform(script, params) } let(:script) { "./script/build_success.sh" } let(:params) { { "ruby" => "1.9", "database" => "mysql" } } let(:command){ 'export RUBY="1.9"; export DATABASE="mysql"; ./script/build_success.sh' } context "with mock system" do it "script is call with capitalized variable" do expect(Paraduct::Runner).to receive(:run_command).with(command).and_return("stdout") subject end end context "with real system" do include_context :within_spec_dir context "when success" do it { should match /RUBY=1.9/ } it { should match /DATABASE=mysql/ } end context "when error in script file" do let(:script){ "./script/build_error.sh" } let(:stdout) do <<-EOS RUBY=1.9 DATABASE=mysql EOS end it { expect{ subject }.to raise_error(Paraduct::ProcessError, stdout) } end end context "with single command" do let(:script){ 'echo RUBY=${RUBY}' } it { should eq "RUBY=1.9\n" } end context "with multiple commands" do let(:script){ ['echo RUBY=${RUBY}', 'echo DATABASE=${DATABASE}'] } it { should eq "RUBY=1.9\nDATABASE=mysql\n" } end end describe "#parameterized_job_dir" do subject{ Paraduct::Runner.parameterized_job_dir(base_job_dir, params) } let(:base_job_dir){ "/tmp/jobs" } let(:params) { { "ruby" => "1.9", "database" => "mysql" } } it { should eq Pathname("/tmp/jobs/RUBY_1.9_DATABASE_mysql") } end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
paraduct-0.0.1.beta3 | spec/paraduct/runner_spec.rb |
paraduct-0.0.1.beta2 | spec/paraduct/runner_spec.rb |
paraduct-0.0.1.beta1 | spec/paraduct/runner_spec.rb |