spec/backend/exec/build_command_spec.rb in specinfra-1.7.0 vs spec/backend/exec/build_command_spec.rb in specinfra-1.8.0
- old
+ new
@@ -28,5 +28,63 @@
RSpec.configure do |c|
c.path = nil
end
end
end
+
+describe 'check_os' do
+ context 'test ubuntu with lsb_release command' do
+ subject { backend.check_os }
+ it do
+ mock_success_response = double(
+ :run_command_response,
+ :success? => true,
+ :stdout => "Distributor ID:\tUbuntu\nRelease:\t12.04\n"
+ )
+ mock_failure_response = double :run_command_response, :success? => false
+ backend.should_receive(:run_command).at_least(1).times do |args|
+ if ['ls /etc/debian_version', 'lsb_release -ir'].include? args
+ mock_success_response
+ else
+ mock_failure_response
+ end
+ end
+ should eq({:family => 'Ubuntu', :release => '12.04'})
+ end
+ end
+
+ context 'test ubuntu with /etc/lsb-release' do
+ subject { backend.check_os }
+ it do
+ mock_success_response = double(
+ :run_command_response,
+ :success? => true,
+ :stdout => %Q(DISTRIB_ID=Ubuntu
+DISTRIB_RELEASE=12.04
+DISTRIB_CODENAME=precise
+DISTRIB_DESCRIPTION="Ubuntu 12.04.2 LTS"
+)
+ )
+ mock_failure_response = double :run_command_response, :success? => false
+ backend.should_receive(:run_command).at_least(1).times do |args|
+ if ['ls /etc/debian_version', 'cat /etc/lsb-release'].include? args
+ mock_success_response
+ else
+ mock_failure_response
+ end
+ end
+ should eq({:family => 'Ubuntu', :release => '12.04'})
+ end
+ end
+
+ context 'test debian (no lsb_release or lsb-release)' do
+ subject { backend.check_os }
+ it do
+ mock_success_response = double :run_command_response, :success? => true
+ mock_failure_response = double :run_command_response, :success? => false
+ backend.should_receive(:run_command).at_least(1).times do |args|
+ args == 'ls /etc/debian_version' ? mock_success_response : mock_failure_response
+ end
+ should eq({:family => 'Debian', :release => nil})
+ end
+ end
+end