diff options
author | Claire McQuin <claire@getchef.com> | 2014-10-29 15:14:22 -0700 |
---|---|---|
committer | Claire McQuin <claire@getchef.com> | 2014-10-29 15:59:04 -0700 |
commit | 5fed7a65a2f024d964ecf2de1bcf2911cf8a600c (patch) | |
tree | 14cc6968e4fe4fd2485c0211088b25c645a80a4b /spec/unit/chef_fs | |
parent | b92c309b0f1aa0837f76ab89d6c81c36076ceca9 (diff) | |
download | chef-5fed7a65a2f024d964ecf2de1bcf2911cf8a600c.tar.gz |
Update to RSpec 3.
Diffstat (limited to 'spec/unit/chef_fs')
-rw-r--r-- | spec/unit/chef_fs/diff_spec.rb | 24 | ||||
-rw-r--r-- | spec/unit/chef_fs/file_pattern_spec.rb | 553 | ||||
-rw-r--r-- | spec/unit/chef_fs/file_system/operation_failed_error_spec.rb | 12 | ||||
-rw-r--r-- | spec/unit/chef_fs/file_system_spec.rb | 24 | ||||
-rw-r--r-- | spec/unit/chef_fs/parallelizer.rb | 174 |
5 files changed, 393 insertions, 394 deletions
diff --git a/spec/unit/chef_fs/diff_spec.rb b/spec/unit/chef_fs/diff_spec.rb index 2133d05139..71605393f3 100644 --- a/spec/unit/chef_fs/diff_spec.rb +++ b/spec/unit/chef_fs/diff_spec.rb @@ -91,7 +91,7 @@ describe 'diff', :uses_diff => true do Chef::ChefFS::CommandLine.diff_print(pattern('/'), a, b, nil, nil) do |diff| results << remove_os_differences(diff) end - results.should =~ [ + expect(results).to match_array([ 'diff --knife a/both_dirs/sub_both_files_different b/both_dirs/sub_both_files_different --- a/both_dirs/sub_both_files_different DATE +++ b/both_dirs/sub_both_files_different DATE @@ -160,14 +160,14 @@ new file +++ b/b_only_file DATE CONTEXT_LINE_NUMBERS +b_only_file -' ] +' ]) end it 'Chef::ChefFS::CommandLine.diff_print(/both_dirs)' do results = [] Chef::ChefFS::CommandLine.diff_print(pattern('/both_dirs'), a, b, nil, nil) do |diff| results << remove_os_differences(diff) end - results.should =~ [ + expect(results).to match_array([ 'diff --knife a/both_dirs/sub_both_files_different b/both_dirs/sub_both_files_different --- a/both_dirs/sub_both_files_different DATE +++ b/both_dirs/sub_both_files_different DATE @@ -202,14 +202,14 @@ new file +++ b/both_dirs/sub_b_only_file DATE CONTEXT_LINE_NUMBERS +sub_b_only_file -' ] +' ]) end it 'Chef::ChefFS::CommandLine.diff_print(/) with depth 1' do results = [] Chef::ChefFS::CommandLine.diff_print(pattern('/'), a, b, 1, nil) do |diff| results << remove_os_differences(diff) end - results.should =~ [ + expect(results).to match_array([ 'Common subdirectories: b/both_dirs ','diff --knife a/both_files_different b/both_files_different --- a/both_files_different DATE @@ -236,14 +236,14 @@ new file +++ b/b_only_file DATE CONTEXT_LINE_NUMBERS +b_only_file -' ] +' ]) end it 'Chef::ChefFS::CommandLine.diff_print(/*_*) with depth 0' do results = [] Chef::ChefFS::CommandLine.diff_print(pattern('/*_*'), a, b, 0, nil) do |diff| results << remove_os_differences(diff) end - results.should =~ [ + expect(results).to match_array([ 'Common subdirectories: b/both_dirs ','diff --knife a/both_files_different b/both_files_different --- a/both_files_different DATE @@ -270,14 +270,14 @@ new file +++ b/b_only_file DATE CONTEXT_LINE_NUMBERS +b_only_file -' ] +' ]) end it 'Chef::ChefFS::CommandLine.diff_print(/) in name-only mode' do results = [] Chef::ChefFS::CommandLine.diff_print(pattern('/'), a, b, nil, :name_only) do |diff| results << remove_os_differences(diff) end - results.should =~ [ + expect(results).to match_array([ "b/both_dirs/sub_both_files_different\n", "b/both_dirs/sub_dirs_empty_in_b_filled_in_a/subsub\n", "b/both_dirs/sub_dirs_empty_in_a_filled_in_b/subsub\n", @@ -296,14 +296,14 @@ CONTEXT_LINE_NUMBERS "b/b_only_file\n", "b/dir_in_a_file_in_b\n", "b/file_in_a_dir_in_b\n" - ] + ]) end it 'Chef::ChefFS::CommandLine.diff_print(/) in name-status mode' do results = [] Chef::ChefFS::CommandLine.diff_print(pattern('/'), a, b, nil, :name_status) do |diff| results << remove_os_differences(diff) end - results.should =~ [ + expect(results).to match_array([ "M\tb/both_dirs/sub_both_files_different\n", "D\tb/both_dirs/sub_dirs_empty_in_b_filled_in_a/subsub\n", "A\tb/both_dirs/sub_dirs_empty_in_a_filled_in_b/subsub\n", @@ -322,7 +322,7 @@ CONTEXT_LINE_NUMBERS "A\tb/b_only_file\n", "T\tb/dir_in_a_file_in_b\n", "T\tb/file_in_a_dir_in_b\n" - ] + ]) end end end diff --git a/spec/unit/chef_fs/file_pattern_spec.rb b/spec/unit/chef_fs/file_pattern_spec.rb index bac393a054..cdf506225a 100644 --- a/spec/unit/chef_fs/file_pattern_spec.rb +++ b/spec/unit/chef_fs/file_pattern_spec.rb @@ -28,466 +28,465 @@ describe Chef::ChefFS::FilePattern do context 'with empty pattern ""' do let(:pattern) { Chef::ChefFS::FilePattern.new('') } it 'match?' do - pattern.match?('').should be_true - pattern.match?('/').should be_false - pattern.match?('a').should be_false - pattern.match?('a/b').should be_false + expect(pattern.match?('')).to be_truthy + expect(pattern.match?('/')).to be_falsey + expect(pattern.match?('a')).to be_falsey + expect(pattern.match?('a/b')).to be_falsey end it 'exact_path' do - pattern.exact_path.should == '' + expect(pattern.exact_path).to eq('') end it 'could_match_children?' do - pattern.could_match_children?('').should be_false - pattern.could_match_children?('a/b').should be_false + expect(pattern.could_match_children?('')).to be_falsey + expect(pattern.could_match_children?('a/b')).to be_falsey end end context 'with root pattern "/"' do let(:pattern) { Chef::ChefFS::FilePattern.new('/') } it 'match?' do - pattern.match?('/').should be_true - pattern.match?('').should be_false - pattern.match?('a').should be_false - pattern.match?('/a').should be_false + expect(pattern.match?('/')).to be_truthy + expect(pattern.match?('')).to be_falsey + expect(pattern.match?('a')).to be_falsey + expect(pattern.match?('/a')).to be_falsey end it 'exact_path' do - pattern.exact_path.should == '/' + expect(pattern.exact_path).to eq('/') end it 'could_match_children?' do - pattern.could_match_children?('').should be_false - pattern.could_match_children?('/').should be_false - pattern.could_match_children?('a').should be_false - pattern.could_match_children?('a/b').should be_false - pattern.could_match_children?('/a').should be_false + expect(pattern.could_match_children?('')).to be_falsey + expect(pattern.could_match_children?('/')).to be_falsey + expect(pattern.could_match_children?('a')).to be_falsey + expect(pattern.could_match_children?('a/b')).to be_falsey + expect(pattern.could_match_children?('/a')).to be_falsey end end context 'with simple pattern "abc"' do let(:pattern) { Chef::ChefFS::FilePattern.new('abc') } it 'match?' do - pattern.match?('abc').should be_true - pattern.match?('a').should be_false - pattern.match?('abcd').should be_false - pattern.match?('/abc').should be_false - pattern.match?('').should be_false - pattern.match?('/').should be_false + expect(pattern.match?('abc')).to be_truthy + expect(pattern.match?('a')).to be_falsey + expect(pattern.match?('abcd')).to be_falsey + expect(pattern.match?('/abc')).to be_falsey + expect(pattern.match?('')).to be_falsey + expect(pattern.match?('/')).to be_falsey end it 'exact_path' do - pattern.exact_path.should == 'abc' + expect(pattern.exact_path).to eq('abc') end it 'could_match_children?' do - pattern.could_match_children?('').should be_false - pattern.could_match_children?('abc').should be_false - pattern.could_match_children?('/abc').should be_false + expect(pattern.could_match_children?('')).to be_falsey + expect(pattern.could_match_children?('abc')).to be_falsey + expect(pattern.could_match_children?('/abc')).to be_falsey end end context 'with simple pattern "/abc"' do let(:pattern) { Chef::ChefFS::FilePattern.new('/abc') } it 'match?' do - pattern.match?('/abc').should be_true - pattern.match?('abc').should be_false - pattern.match?('a').should be_false - pattern.match?('abcd').should be_false - pattern.match?('').should be_false - pattern.match?('/').should be_false + expect(pattern.match?('/abc')).to be_truthy + expect(pattern.match?('abc')).to be_falsey + expect(pattern.match?('a')).to be_falsey + expect(pattern.match?('abcd')).to be_falsey + expect(pattern.match?('')).to be_falsey + expect(pattern.match?('/')).to be_falsey end it 'exact_path' do - pattern.exact_path.should == '/abc' + expect(pattern.exact_path).to eq('/abc') end it 'could_match_children?' do - pattern.could_match_children?('abc').should be_false - pattern.could_match_children?('/abc').should be_false - pattern.could_match_children?('/').should be_true - pattern.could_match_children?('').should be_false + expect(pattern.could_match_children?('abc')).to be_falsey + expect(pattern.could_match_children?('/abc')).to be_falsey + expect(pattern.could_match_children?('/')).to be_truthy + expect(pattern.could_match_children?('')).to be_falsey end it 'exact_child_name_under' do - pattern.exact_child_name_under('/').should == 'abc' + expect(pattern.exact_child_name_under('/')).to eq('abc') end end context 'with simple pattern "abc/def/ghi"' do let(:pattern) { Chef::ChefFS::FilePattern.new('abc/def/ghi') } it 'match?' do - pattern.match?('abc/def/ghi').should be_true - pattern.match?('/abc/def/ghi').should be_false - pattern.match?('abc').should be_false - pattern.match?('abc/def').should be_false + expect(pattern.match?('abc/def/ghi')).to be_truthy + expect(pattern.match?('/abc/def/ghi')).to be_falsey + expect(pattern.match?('abc')).to be_falsey + expect(pattern.match?('abc/def')).to be_falsey end it 'exact_path' do - pattern.exact_path.should == 'abc/def/ghi' + expect(pattern.exact_path).to eq('abc/def/ghi') end it 'could_match_children?' do - pattern.could_match_children?('abc').should be_true - pattern.could_match_children?('xyz').should be_false - pattern.could_match_children?('/abc').should be_false - pattern.could_match_children?('abc/def').should be_true - pattern.could_match_children?('abc/xyz').should be_false - pattern.could_match_children?('abc/def/ghi').should be_false + expect(pattern.could_match_children?('abc')).to be_truthy + expect(pattern.could_match_children?('xyz')).to be_falsey + expect(pattern.could_match_children?('/abc')).to be_falsey + expect(pattern.could_match_children?('abc/def')).to be_truthy + expect(pattern.could_match_children?('abc/xyz')).to be_falsey + expect(pattern.could_match_children?('abc/def/ghi')).to be_falsey end it 'exact_child_name_under' do - pattern.exact_child_name_under('abc').should == 'def' - pattern.exact_child_name_under('abc/def').should == 'ghi' + expect(pattern.exact_child_name_under('abc')).to eq('def') + expect(pattern.exact_child_name_under('abc/def')).to eq('ghi') end end context 'with simple pattern "/abc/def/ghi"' do let(:pattern) { Chef::ChefFS::FilePattern.new('/abc/def/ghi') } it 'match?' do - pattern.match?('/abc/def/ghi').should be_true - pattern.match?('abc/def/ghi').should be_false - pattern.match?('/abc').should be_false - pattern.match?('/abc/def').should be_false + expect(pattern.match?('/abc/def/ghi')).to be_truthy + expect(pattern.match?('abc/def/ghi')).to be_falsey + expect(pattern.match?('/abc')).to be_falsey + expect(pattern.match?('/abc/def')).to be_falsey end it 'exact_path' do - pattern.exact_path.should == '/abc/def/ghi' + expect(pattern.exact_path).to eq('/abc/def/ghi') end it 'could_match_children?' do - pattern.could_match_children?('/abc').should be_true - pattern.could_match_children?('/xyz').should be_false - pattern.could_match_children?('abc').should be_false - pattern.could_match_children?('/abc/def').should be_true - pattern.could_match_children?('/abc/xyz').should be_false - pattern.could_match_children?('/abc/def/ghi').should be_false + expect(pattern.could_match_children?('/abc')).to be_truthy + expect(pattern.could_match_children?('/xyz')).to be_falsey + expect(pattern.could_match_children?('abc')).to be_falsey + expect(pattern.could_match_children?('/abc/def')).to be_truthy + expect(pattern.could_match_children?('/abc/xyz')).to be_falsey + expect(pattern.could_match_children?('/abc/def/ghi')).to be_falsey end it 'exact_child_name_under' do - pattern.exact_child_name_under('/').should == 'abc' - pattern.exact_child_name_under('/abc').should == 'def' - pattern.exact_child_name_under('/abc/def').should == 'ghi' + expect(pattern.exact_child_name_under('/')).to eq('abc') + expect(pattern.exact_child_name_under('/abc')).to eq('def') + expect(pattern.exact_child_name_under('/abc/def')).to eq('ghi') end end context 'with simple pattern "a\*\b"', :pending => (Chef::Platform.windows?) do let(:pattern) { Chef::ChefFS::FilePattern.new('a\*\b') } it 'match?' do - pattern.match?('a*b').should be_true - pattern.match?('ab').should be_false - pattern.match?('acb').should be_false - pattern.match?('ab').should be_false + expect(pattern.match?('a*b')).to be_truthy + expect(pattern.match?('ab')).to be_falsey + expect(pattern.match?('acb')).to be_falsey + expect(pattern.match?('ab')).to be_falsey end it 'exact_path' do - pattern.exact_path.should == 'a*b' + expect(pattern.exact_path).to eq('a*b') end it 'could_match_children?' do - pattern.could_match_children?('a/*b').should be_false + expect(pattern.could_match_children?('a/*b')).to be_falsey end end context 'with star pattern "/abc/*/ghi"' do let(:pattern) { Chef::ChefFS::FilePattern.new('/abc/*/ghi') } it 'match?' do - pattern.match?('/abc/def/ghi').should be_true - pattern.match?('/abc/ghi').should be_false + expect(pattern.match?('/abc/def/ghi')).to be_truthy + expect(pattern.match?('/abc/ghi')).to be_falsey end it 'exact_path' do - pattern.exact_path.should be_nil + expect(pattern.exact_path).to be_nil end it 'could_match_children?' do - pattern.could_match_children?('/abc').should be_true - pattern.could_match_children?('/xyz').should be_false - pattern.could_match_children?('abc').should be_false - pattern.could_match_children?('/abc/def').should be_true - pattern.could_match_children?('/abc/xyz').should be_true - pattern.could_match_children?('/abc/def/ghi').should be_false + expect(pattern.could_match_children?('/abc')).to be_truthy + expect(pattern.could_match_children?('/xyz')).to be_falsey + expect(pattern.could_match_children?('abc')).to be_falsey + expect(pattern.could_match_children?('/abc/def')).to be_truthy + expect(pattern.could_match_children?('/abc/xyz')).to be_truthy + expect(pattern.could_match_children?('/abc/def/ghi')).to be_falsey end it 'exact_child_name_under' do - pattern.exact_child_name_under('/').should == 'abc' - pattern.exact_child_name_under('/abc').should == nil - pattern.exact_child_name_under('/abc/def').should == 'ghi' + expect(pattern.exact_child_name_under('/')).to eq('abc') + expect(pattern.exact_child_name_under('/abc')).to eq(nil) + expect(pattern.exact_child_name_under('/abc/def')).to eq('ghi') end end context 'with star pattern "/abc/d*f/ghi"' do let(:pattern) { Chef::ChefFS::FilePattern.new('/abc/d*f/ghi') } it 'match?' do - pattern.match?('/abc/def/ghi').should be_true - pattern.match?('/abc/dxf/ghi').should be_true - pattern.match?('/abc/df/ghi').should be_true - pattern.match?('/abc/dxyzf/ghi').should be_true - pattern.match?('/abc/d/ghi').should be_false - pattern.match?('/abc/f/ghi').should be_false - pattern.match?('/abc/ghi').should be_false - pattern.match?('/abc/xyz/ghi').should be_false + expect(pattern.match?('/abc/def/ghi')).to be_truthy + expect(pattern.match?('/abc/dxf/ghi')).to be_truthy + expect(pattern.match?('/abc/df/ghi')).to be_truthy + expect(pattern.match?('/abc/dxyzf/ghi')).to be_truthy + expect(pattern.match?('/abc/d/ghi')).to be_falsey + expect(pattern.match?('/abc/f/ghi')).to be_falsey + expect(pattern.match?('/abc/ghi')).to be_falsey + expect(pattern.match?('/abc/xyz/ghi')).to be_falsey end it 'exact_path' do - pattern.exact_path.should be_nil + expect(pattern.exact_path).to be_nil end it 'could_match_children?' do - pattern.could_match_children?('/abc').should be_true - pattern.could_match_children?('/xyz').should be_false - pattern.could_match_children?('abc').should be_false - pattern.could_match_children?('/abc/def').should be_true - pattern.could_match_children?('/abc/xyz').should be_false - pattern.could_match_children?('/abc/dxyzf').should be_true - pattern.could_match_children?('/abc/df').should be_true - pattern.could_match_children?('/abc/d').should be_false - pattern.could_match_children?('/abc/f').should be_false - pattern.could_match_children?('/abc/def/ghi').should be_false + expect(pattern.could_match_children?('/abc')).to be_truthy + expect(pattern.could_match_children?('/xyz')).to be_falsey + expect(pattern.could_match_children?('abc')).to be_falsey + expect(pattern.could_match_children?('/abc/def')).to be_truthy + expect(pattern.could_match_children?('/abc/xyz')).to be_falsey + expect(pattern.could_match_children?('/abc/dxyzf')).to be_truthy + expect(pattern.could_match_children?('/abc/df')).to be_truthy + expect(pattern.could_match_children?('/abc/d')).to be_falsey + expect(pattern.could_match_children?('/abc/f')).to be_falsey + expect(pattern.could_match_children?('/abc/def/ghi')).to be_falsey end it 'exact_child_name_under' do - pattern.exact_child_name_under('/').should == 'abc' - pattern.exact_child_name_under('/abc').should == nil - pattern.exact_child_name_under('/abc/def').should == 'ghi' + expect(pattern.exact_child_name_under('/')).to eq('abc') + expect(pattern.exact_child_name_under('/abc')).to eq(nil) + expect(pattern.exact_child_name_under('/abc/def')).to eq('ghi') end end context 'with star pattern "/abc/d??f/ghi"' do let(:pattern) { Chef::ChefFS::FilePattern.new('/abc/d??f/ghi') } it 'match?' do - pattern.match?('/abc/deef/ghi').should be_true - pattern.match?('/abc/deeef/ghi').should be_false - pattern.match?('/abc/def/ghi').should be_false - pattern.match?('/abc/df/ghi').should be_false - pattern.match?('/abc/d/ghi').should be_false - pattern.match?('/abc/f/ghi').should be_false - pattern.match?('/abc/ghi').should be_false + expect(pattern.match?('/abc/deef/ghi')).to be_truthy + expect(pattern.match?('/abc/deeef/ghi')).to be_falsey + expect(pattern.match?('/abc/def/ghi')).to be_falsey + expect(pattern.match?('/abc/df/ghi')).to be_falsey + expect(pattern.match?('/abc/d/ghi')).to be_falsey + expect(pattern.match?('/abc/f/ghi')).to be_falsey + expect(pattern.match?('/abc/ghi')).to be_falsey end it 'exact_path' do - pattern.exact_path.should be_nil + expect(pattern.exact_path).to be_nil end it 'could_match_children?' do - pattern.could_match_children?('/abc').should be_true - pattern.could_match_children?('/xyz').should be_false - pattern.could_match_children?('abc').should be_false - pattern.could_match_children?('/abc/deef').should be_true - pattern.could_match_children?('/abc/deeef').should be_false - pattern.could_match_children?('/abc/def').should be_false - pattern.could_match_children?('/abc/df').should be_false - pattern.could_match_children?('/abc/d').should be_false - pattern.could_match_children?('/abc/f').should be_false - pattern.could_match_children?('/abc/deef/ghi').should be_false + expect(pattern.could_match_children?('/abc')).to be_truthy + expect(pattern.could_match_children?('/xyz')).to be_falsey + expect(pattern.could_match_children?('abc')).to be_falsey + expect(pattern.could_match_children?('/abc/deef')).to be_truthy + expect(pattern.could_match_children?('/abc/deeef')).to be_falsey + expect(pattern.could_match_children?('/abc/def')).to be_falsey + expect(pattern.could_match_children?('/abc/df')).to be_falsey + expect(pattern.could_match_children?('/abc/d')).to be_falsey + expect(pattern.could_match_children?('/abc/f')).to be_falsey + expect(pattern.could_match_children?('/abc/deef/ghi')).to be_falsey end it 'exact_child_name_under' do - pattern.exact_child_name_under('/').should == 'abc' - pattern.exact_child_name_under('/abc').should == nil - pattern.exact_child_name_under('/abc/deef').should == 'ghi' + expect(pattern.exact_child_name_under('/')).to eq('abc') + expect(pattern.exact_child_name_under('/abc')).to eq(nil) + expect(pattern.exact_child_name_under('/abc/deef')).to eq('ghi') end end context 'with star pattern "/abc/d[a-z][0-9]f/ghi"', :pending => (Chef::Platform.windows?) do let(:pattern) { Chef::ChefFS::FilePattern.new('/abc/d[a-z][0-9]f/ghi') } it 'match?' do - pattern.match?('/abc/de1f/ghi').should be_true - pattern.match?('/abc/deef/ghi').should be_false - pattern.match?('/abc/d11f/ghi').should be_false - pattern.match?('/abc/de11f/ghi').should be_false - pattern.match?('/abc/dee1f/ghi').should be_false - pattern.match?('/abc/df/ghi').should be_false - pattern.match?('/abc/d/ghi').should be_false - pattern.match?('/abc/f/ghi').should be_false - pattern.match?('/abc/ghi').should be_false + expect(pattern.match?('/abc/de1f/ghi')).to be_truthy + expect(pattern.match?('/abc/deef/ghi')).to be_falsey + expect(pattern.match?('/abc/d11f/ghi')).to be_falsey + expect(pattern.match?('/abc/de11f/ghi')).to be_falsey + expect(pattern.match?('/abc/dee1f/ghi')).to be_falsey + expect(pattern.match?('/abc/df/ghi')).to be_falsey + expect(pattern.match?('/abc/d/ghi')).to be_falsey + expect(pattern.match?('/abc/f/ghi')).to be_falsey + expect(pattern.match?('/abc/ghi')).to be_falsey end it 'exact_path' do - pattern.exact_path.should be_nil + expect(pattern.exact_path).to be_nil end it 'could_match_children?' do - pattern.could_match_children?('/abc').should be_true - pattern.could_match_children?('/xyz').should be_false - pattern.could_match_children?('abc').should be_false - pattern.could_match_children?('/abc/de1f').should be_true - pattern.could_match_children?('/abc/deef').should be_false - pattern.could_match_children?('/abc/d11f').should be_false - pattern.could_match_children?('/abc/de11f').should be_false - pattern.could_match_children?('/abc/dee1f').should be_false - pattern.could_match_children?('/abc/def').should be_false - pattern.could_match_children?('/abc/df').should be_false - pattern.could_match_children?('/abc/d').should be_false - pattern.could_match_children?('/abc/f').should be_false - pattern.could_match_children?('/abc/de1f/ghi').should be_false + expect(pattern.could_match_children?('/abc')).to be_truthy + expect(pattern.could_match_children?('/xyz')).to be_falsey + expect(pattern.could_match_children?('abc')).to be_falsey + expect(pattern.could_match_children?('/abc/de1f')).to be_truthy + expect(pattern.could_match_children?('/abc/deef')).to be_falsey + expect(pattern.could_match_children?('/abc/d11f')).to be_falsey + expect(pattern.could_match_children?('/abc/de11f')).to be_falsey + expect(pattern.could_match_children?('/abc/dee1f')).to be_falsey + expect(pattern.could_match_children?('/abc/def')).to be_falsey + expect(pattern.could_match_children?('/abc/df')).to be_falsey + expect(pattern.could_match_children?('/abc/d')).to be_falsey + expect(pattern.could_match_children?('/abc/f')).to be_falsey + expect(pattern.could_match_children?('/abc/de1f/ghi')).to be_falsey end it 'exact_child_name_under' do - pattern.exact_child_name_under('/').should == 'abc' - pattern.exact_child_name_under('/abc').should == nil - pattern.exact_child_name_under('/abc/de1f').should == 'ghi' + expect(pattern.exact_child_name_under('/')).to eq('abc') + expect(pattern.exact_child_name_under('/abc')).to eq(nil) + expect(pattern.exact_child_name_under('/abc/de1f')).to eq('ghi') end end context 'with star pattern "/abc/**/ghi"' do let(:pattern) { Chef::ChefFS::FilePattern.new('/abc/**/ghi') } it 'match?' do - pattern.match?('/abc/def/ghi').should be_true - pattern.match?('/abc/d/e/f/ghi').should be_true - pattern.match?('/abc/ghi').should be_false - pattern.match?('/abcdef/d/ghi').should be_false - pattern.match?('/abc/d/defghi').should be_false - pattern.match?('/xyz').should be_false + expect(pattern.match?('/abc/def/ghi')).to be_truthy + expect(pattern.match?('/abc/d/e/f/ghi')).to be_truthy + expect(pattern.match?('/abc/ghi')).to be_falsey + expect(pattern.match?('/abcdef/d/ghi')).to be_falsey + expect(pattern.match?('/abc/d/defghi')).to be_falsey + expect(pattern.match?('/xyz')).to be_falsey end it 'exact_path' do - pattern.exact_path.should be_nil + expect(pattern.exact_path).to be_nil end it 'could_match_children?' do - pattern.could_match_children?('/abc').should be_true - pattern.could_match_children?('/abc/d').should be_true - pattern.could_match_children?('/abc/d/e').should be_true - pattern.could_match_children?('/abc/d/e/f').should be_true - pattern.could_match_children?('/abc/def/ghi').should be_true - pattern.could_match_children?('abc').should be_false - pattern.could_match_children?('/xyz').should be_false + expect(pattern.could_match_children?('/abc')).to be_truthy + expect(pattern.could_match_children?('/abc/d')).to be_truthy + expect(pattern.could_match_children?('/abc/d/e')).to be_truthy + expect(pattern.could_match_children?('/abc/d/e/f')).to be_truthy + expect(pattern.could_match_children?('/abc/def/ghi')).to be_truthy + expect(pattern.could_match_children?('abc')).to be_falsey + expect(pattern.could_match_children?('/xyz')).to be_falsey end it 'exact_child_name_under' do - pattern.exact_child_name_under('/').should == 'abc' - pattern.exact_child_name_under('/abc').should == nil - pattern.exact_child_name_under('/abc/def').should == nil + expect(pattern.exact_child_name_under('/')).to eq('abc') + expect(pattern.exact_child_name_under('/abc')).to eq(nil) + expect(pattern.exact_child_name_under('/abc/def')).to eq(nil) end end context 'with star pattern "/abc**/ghi"' do let(:pattern) { Chef::ChefFS::FilePattern.new('/abc**/ghi') } it 'match?' do - pattern.match?('/abc/def/ghi').should be_true - pattern.match?('/abc/d/e/f/ghi').should be_true - pattern.match?('/abc/ghi').should be_true - pattern.match?('/abcdef/ghi').should be_true - pattern.match?('/abc/defghi').should be_false - pattern.match?('/xyz').should be_false + expect(pattern.match?('/abc/def/ghi')).to be_truthy + expect(pattern.match?('/abc/d/e/f/ghi')).to be_truthy + expect(pattern.match?('/abc/ghi')).to be_truthy + expect(pattern.match?('/abcdef/ghi')).to be_truthy + expect(pattern.match?('/abc/defghi')).to be_falsey + expect(pattern.match?('/xyz')).to be_falsey end it 'exact_path' do - pattern.exact_path.should be_nil + expect(pattern.exact_path).to be_nil end it 'could_match_children?' do - pattern.could_match_children?('/abc').should be_true - pattern.could_match_children?('/abcdef').should be_true - pattern.could_match_children?('/abc/d/e').should be_true - pattern.could_match_children?('/abc/d/e/f').should be_true - pattern.could_match_children?('/abc/def/ghi').should be_true - pattern.could_match_children?('abc').should be_false + expect(pattern.could_match_children?('/abc')).to be_truthy + expect(pattern.could_match_children?('/abcdef')).to be_truthy + expect(pattern.could_match_children?('/abc/d/e')).to be_truthy + expect(pattern.could_match_children?('/abc/d/e/f')).to be_truthy + expect(pattern.could_match_children?('/abc/def/ghi')).to be_truthy + expect(pattern.could_match_children?('abc')).to be_falsey end it 'could_match_children? /abc** returns false for /xyz' do - pending 'Make could_match_children? more rigorous' do - # At the moment, we return false for this, but in the end it would be nice to return true: - pattern.could_match_children?('/xyz').should be_false - end + pending 'Make could_match_children? more rigorous' + # At the moment, we return false for this, but in the end it would be nice to return true: + pattern.could_match_children?('/xyz').should be_falsey end it 'exact_child_name_under' do - pattern.exact_child_name_under('/').should == nil - pattern.exact_child_name_under('/abc').should == nil - pattern.exact_child_name_under('/abc/def').should == nil + expect(pattern.exact_child_name_under('/')).to eq(nil) + expect(pattern.exact_child_name_under('/abc')).to eq(nil) + expect(pattern.exact_child_name_under('/abc/def')).to eq(nil) end end context 'with star pattern "/abc/**ghi"' do let(:pattern) { Chef::ChefFS::FilePattern.new('/abc/**ghi') } it 'match?' do - pattern.match?('/abc/def/ghi').should be_true - pattern.match?('/abc/def/ghi/ghi').should be_true - pattern.match?('/abc/def/ghi/jkl').should be_false - pattern.match?('/abc/d/e/f/ghi').should be_true - pattern.match?('/abc/ghi').should be_true - pattern.match?('/abcdef/ghi').should be_false - pattern.match?('/abc/defghi').should be_true - pattern.match?('/xyz').should be_false + expect(pattern.match?('/abc/def/ghi')).to be_truthy + expect(pattern.match?('/abc/def/ghi/ghi')).to be_truthy + expect(pattern.match?('/abc/def/ghi/jkl')).to be_falsey + expect(pattern.match?('/abc/d/e/f/ghi')).to be_truthy + expect(pattern.match?('/abc/ghi')).to be_truthy + expect(pattern.match?('/abcdef/ghi')).to be_falsey + expect(pattern.match?('/abc/defghi')).to be_truthy + expect(pattern.match?('/xyz')).to be_falsey end it 'exact_path' do - pattern.exact_path.should be_nil + expect(pattern.exact_path).to be_nil end it 'could_match_children?' do - pattern.could_match_children?('/abc').should be_true - pattern.could_match_children?('/abcdef').should be_false - pattern.could_match_children?('/abc/d/e').should be_true - pattern.could_match_children?('/abc/d/e/f').should be_true - pattern.could_match_children?('/abc/def/ghi').should be_true - pattern.could_match_children?('abc').should be_false - pattern.could_match_children?('/xyz').should be_false + expect(pattern.could_match_children?('/abc')).to be_truthy + expect(pattern.could_match_children?('/abcdef')).to be_falsey + expect(pattern.could_match_children?('/abc/d/e')).to be_truthy + expect(pattern.could_match_children?('/abc/d/e/f')).to be_truthy + expect(pattern.could_match_children?('/abc/def/ghi')).to be_truthy + expect(pattern.could_match_children?('abc')).to be_falsey + expect(pattern.could_match_children?('/xyz')).to be_falsey end it 'exact_child_name_under' do - pattern.exact_child_name_under('/').should == 'abc' - pattern.exact_child_name_under('/abc').should == nil - pattern.exact_child_name_under('/abc/def').should == nil + expect(pattern.exact_child_name_under('/')).to eq('abc') + expect(pattern.exact_child_name_under('/abc')).to eq(nil) + expect(pattern.exact_child_name_under('/abc/def')).to eq(nil) end end context 'with star pattern "a**b**c"' do let(:pattern) { Chef::ChefFS::FilePattern.new('a**b**c') } it 'match?' do - pattern.match?('axybzwc').should be_true - pattern.match?('abc').should be_true - pattern.match?('axyzwc').should be_false - pattern.match?('ac').should be_false - pattern.match?('a/x/y/b/z/w/c').should be_true + expect(pattern.match?('axybzwc')).to be_truthy + expect(pattern.match?('abc')).to be_truthy + expect(pattern.match?('axyzwc')).to be_falsey + expect(pattern.match?('ac')).to be_falsey + expect(pattern.match?('a/x/y/b/z/w/c')).to be_truthy end it 'exact_path' do - pattern.exact_path.should be_nil + expect(pattern.exact_path).to be_nil end end context 'normalization tests' do it 'handles trailing slashes' do - p('abc/').normalized_pattern.should == 'abc' - p('abc/').exact_path.should == 'abc' - p('abc/').match?('abc').should be_true - p('//').normalized_pattern.should == '/' - p('//').exact_path.should == '/' - p('//').match?('/').should be_true - p('/./').normalized_pattern.should == '/' - p('/./').exact_path.should == '/' - p('/./').match?('/').should be_true + expect(p('abc/').normalized_pattern).to eq('abc') + expect(p('abc/').exact_path).to eq('abc') + expect(p('abc/').match?('abc')).to be_truthy + expect(p('//').normalized_pattern).to eq('/') + expect(p('//').exact_path).to eq('/') + expect(p('//').match?('/')).to be_truthy + expect(p('/./').normalized_pattern).to eq('/') + expect(p('/./').exact_path).to eq('/') + expect(p('/./').match?('/')).to be_truthy end it 'handles multiple slashes' do - p('abc//def').normalized_pattern.should == 'abc/def' - p('abc//def').exact_path.should == 'abc/def' - p('abc//def').match?('abc/def').should be_true - p('abc//').normalized_pattern.should == 'abc' - p('abc//').exact_path.should == 'abc' - p('abc//').match?('abc').should be_true + expect(p('abc//def').normalized_pattern).to eq('abc/def') + expect(p('abc//def').exact_path).to eq('abc/def') + expect(p('abc//def').match?('abc/def')).to be_truthy + expect(p('abc//').normalized_pattern).to eq('abc') + expect(p('abc//').exact_path).to eq('abc') + expect(p('abc//').match?('abc')).to be_truthy end it 'handles dot' do - p('abc/./def').normalized_pattern.should == 'abc/def' - p('abc/./def').exact_path.should == 'abc/def' - p('abc/./def').match?('abc/def').should be_true - p('./abc/def').normalized_pattern.should == 'abc/def' - p('./abc/def').exact_path.should == 'abc/def' - p('./abc/def').match?('abc/def').should be_true - p('/.').normalized_pattern.should == '/' - p('/.').exact_path.should == '/' - p('/.').match?('/').should be_true + expect(p('abc/./def').normalized_pattern).to eq('abc/def') + expect(p('abc/./def').exact_path).to eq('abc/def') + expect(p('abc/./def').match?('abc/def')).to be_truthy + expect(p('./abc/def').normalized_pattern).to eq('abc/def') + expect(p('./abc/def').exact_path).to eq('abc/def') + expect(p('./abc/def').match?('abc/def')).to be_truthy + expect(p('/.').normalized_pattern).to eq('/') + expect(p('/.').exact_path).to eq('/') + expect(p('/.').match?('/')).to be_truthy end it 'handles dot by itself', :pending => "decide what to do with dot by itself" do - p('.').normalized_pattern.should == '.' - p('.').exact_path.should == '.' - p('.').match?('.').should be_true - p('./').normalized_pattern.should == '.' - p('./').exact_path.should == '.' - p('./').match?('.').should be_true + expect(p('.').normalized_pattern).to eq('.') + expect(p('.').exact_path).to eq('.') + expect(p('.').match?('.')).to be_truthy + expect(p('./').normalized_pattern).to eq('.') + expect(p('./').exact_path).to eq('.') + expect(p('./').match?('.')).to be_truthy end it 'handles dotdot' do - p('abc/../def').normalized_pattern.should == 'def' - p('abc/../def').exact_path.should == 'def' - p('abc/../def').match?('def').should be_true - p('abc/def/../..').normalized_pattern.should == '' - p('abc/def/../..').exact_path.should == '' - p('abc/def/../..').match?('').should be_true - p('/*/../def').normalized_pattern.should == '/def' - p('/*/../def').exact_path.should == '/def' - p('/*/../def').match?('/def').should be_true - p('/*/*/../def').normalized_pattern.should == '/*/def' - p('/*/*/../def').exact_path.should be_nil - p('/*/*/../def').match?('/abc/def').should be_true - p('/abc/def/../..').normalized_pattern.should == '/' - p('/abc/def/../..').exact_path.should == '/' - p('/abc/def/../..').match?('/').should be_true - p('abc/../../def').normalized_pattern.should == '../def' - p('abc/../../def').exact_path.should == '../def' - p('abc/../../def').match?('../def').should be_true + expect(p('abc/../def').normalized_pattern).to eq('def') + expect(p('abc/../def').exact_path).to eq('def') + expect(p('abc/../def').match?('def')).to be_truthy + expect(p('abc/def/../..').normalized_pattern).to eq('') + expect(p('abc/def/../..').exact_path).to eq('') + expect(p('abc/def/../..').match?('')).to be_truthy + expect(p('/*/../def').normalized_pattern).to eq('/def') + expect(p('/*/../def').exact_path).to eq('/def') + expect(p('/*/../def').match?('/def')).to be_truthy + expect(p('/*/*/../def').normalized_pattern).to eq('/*/def') + expect(p('/*/*/../def').exact_path).to be_nil + expect(p('/*/*/../def').match?('/abc/def')).to be_truthy + expect(p('/abc/def/../..').normalized_pattern).to eq('/') + expect(p('/abc/def/../..').exact_path).to eq('/') + expect(p('/abc/def/../..').match?('/')).to be_truthy + expect(p('abc/../../def').normalized_pattern).to eq('../def') + expect(p('abc/../../def').exact_path).to eq('../def') + expect(p('abc/../../def').match?('../def')).to be_truthy end it 'handles dotdot with double star' do - p('abc**/def/../ghi').exact_path.should be_nil - p('abc**/def/../ghi').match?('abc/ghi').should be_true - p('abc**/def/../ghi').match?('abc/x/y/z/ghi').should be_true - p('abc**/def/../ghi').match?('ghi').should be_false + expect(p('abc**/def/../ghi').exact_path).to be_nil + expect(p('abc**/def/../ghi').match?('abc/ghi')).to be_truthy + expect(p('abc**/def/../ghi').match?('abc/x/y/z/ghi')).to be_truthy + expect(p('abc**/def/../ghi').match?('ghi')).to be_falsey end it 'raises error on dotdot with overlapping double star' do - lambda { Chef::ChefFS::FilePattern.new('abc/**/../def').exact_path }.should raise_error(ArgumentError) - lambda { Chef::ChefFS::FilePattern.new('abc/**/abc/../../def').exact_path }.should raise_error(ArgumentError) + expect { Chef::ChefFS::FilePattern.new('abc/**/../def').exact_path }.to raise_error(ArgumentError) + expect { Chef::ChefFS::FilePattern.new('abc/**/abc/../../def').exact_path }.to raise_error(ArgumentError) end it 'handles leading dotdot' do - p('../abc/def').exact_path.should == '../abc/def' - p('../abc/def').match?('../abc/def').should be_true - p('/../abc/def').exact_path.should == '/abc/def' - p('/../abc/def').match?('/abc/def').should be_true - p('..').exact_path.should == '..' - p('..').match?('..').should be_true - p('/..').exact_path.should == '/' - p('/..').match?('/').should be_true + expect(p('../abc/def').exact_path).to eq('../abc/def') + expect(p('../abc/def').match?('../abc/def')).to be_truthy + expect(p('/../abc/def').exact_path).to eq('/abc/def') + expect(p('/../abc/def').match?('/abc/def')).to be_truthy + expect(p('..').exact_path).to eq('..') + expect(p('..').match?('..')).to be_truthy + expect(p('/..').exact_path).to eq('/') + expect(p('/..').match?('/')).to be_truthy end end diff --git a/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb b/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb index 570246c41f..142755a4f1 100644 --- a/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +++ b/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb @@ -27,20 +27,20 @@ describe Chef::ChefFS::FileSystem::OperationFailedError do it 'include error cause' do allow_message_expectations_on_nil response_body = '{"error":["Invalid key test in request body"]}' - @response.stub(:code).and_return("400") - @response.stub(:body).and_return(response_body) + allow(@response).to receive(:code).and_return("400") + allow(@response).to receive(:body).and_return(response_body) exception = Net::HTTPServerException.new("(exception) unauthorized", @response) - proc { + expect { raise Chef::ChefFS::FileSystem::OperationFailedError.new(:write, self, exception), error_message - }.should raise_error(Chef::ChefFS::FileSystem::OperationFailedError, "#{error_message} cause: #{response_body}") + }.to raise_error(Chef::ChefFS::FileSystem::OperationFailedError, "#{error_message} cause: #{response_body}") end end context 'does not have a cause attribute' do it 'does not include error cause' do - proc { + expect { raise Chef::ChefFS::FileSystem::OperationFailedError.new(:write, self), error_message - }.should raise_error(Chef::ChefFS::FileSystem::OperationFailedError, error_message) + }.to raise_error(Chef::ChefFS::FileSystem::OperationFailedError, error_message) end end end diff --git a/spec/unit/chef_fs/file_system_spec.rb b/spec/unit/chef_fs/file_system_spec.rb index 50f20a7a1c..75ca4d4be9 100644 --- a/spec/unit/chef_fs/file_system_spec.rb +++ b/spec/unit/chef_fs/file_system_spec.rb @@ -43,13 +43,13 @@ describe Chef::ChefFS::FileSystem do context 'resolve_path' do it '/' do - Chef::ChefFS::FileSystem.resolve_path(fs, '/').path.should == '/' + expect(Chef::ChefFS::FileSystem.resolve_path(fs, '/').path).to eq('/') end it 'nonexistent /a' do - Chef::ChefFS::FileSystem.resolve_path(fs, '/a').path.should == '/a' + expect(Chef::ChefFS::FileSystem.resolve_path(fs, '/a').path).to eq('/a') end it 'nonexistent /a/b' do - Chef::ChefFS::FileSystem.resolve_path(fs, '/a/b').path.should == '/a/b' + expect(Chef::ChefFS::FileSystem.resolve_path(fs, '/a/b').path).to eq('/a/b') end end end @@ -114,34 +114,34 @@ describe Chef::ChefFS::FileSystem do no_blocking_calls_allowed end it 'resolves /' do - Chef::ChefFS::FileSystem.resolve_path(fs, '/').path.should == '/' + expect(Chef::ChefFS::FileSystem.resolve_path(fs, '/').path).to eq('/') end it 'resolves /x' do - Chef::ChefFS::FileSystem.resolve_path(fs, '/x').path.should == '/x' + expect(Chef::ChefFS::FileSystem.resolve_path(fs, '/x').path).to eq('/x') end it 'resolves /a' do - Chef::ChefFS::FileSystem.resolve_path(fs, '/a').path.should == '/a' + expect(Chef::ChefFS::FileSystem.resolve_path(fs, '/a').path).to eq('/a') end it 'resolves /a/aa' do - Chef::ChefFS::FileSystem.resolve_path(fs, '/a/aa').path.should == '/a/aa' + expect(Chef::ChefFS::FileSystem.resolve_path(fs, '/a/aa').path).to eq('/a/aa') end it 'resolves /a/aa/zz' do - Chef::ChefFS::FileSystem.resolve_path(fs, '/a/aa/zz').path.should == '/a/aa/zz' + expect(Chef::ChefFS::FileSystem.resolve_path(fs, '/a/aa/zz').path).to eq('/a/aa/zz') end it 'resolves nonexistent /q/x/w' do - Chef::ChefFS::FileSystem.resolve_path(fs, '/q/x/w').path.should == '/q/x/w' + expect(Chef::ChefFS::FileSystem.resolve_path(fs, '/q/x/w').path).to eq('/q/x/w') end end context 'empty?' do it 'is not empty /' do - Chef::ChefFS::FileSystem.resolve_path(fs, '/').empty?.should be false + expect(Chef::ChefFS::FileSystem.resolve_path(fs, '/').empty?).to be false end it 'is empty /y' do - Chef::ChefFS::FileSystem.resolve_path(fs, '/y').empty?.should be true + expect(Chef::ChefFS::FileSystem.resolve_path(fs, '/y').empty?).to be true end it 'is not a directory and can\'t be tested /x' do - lambda { Chef::ChefFS::FileSystem.resolve_path(fs, '/x').empty? }.should raise_error(NoMethodError) + expect { Chef::ChefFS::FileSystem.resolve_path(fs, '/x').empty? }.to raise_error(NoMethodError) end end end diff --git a/spec/unit/chef_fs/parallelizer.rb b/spec/unit/chef_fs/parallelizer.rb index a871b60e98..9cb97963ed 100644 --- a/spec/unit/chef_fs/parallelizer.rb +++ b/spec/unit/chef_fs/parallelizer.rb @@ -29,8 +29,8 @@ describe Chef::ChefFS::Parallelizer do sleep val outputs << val end - elapsed_time.should < 0.6 - outputs.should == [ 0.1, 0.3, 0.5 ] + expect(elapsed_time).to be < 0.6 + expect(outputs).to eq([ 0.1, 0.3, 0.5 ]) end context "With :ordered => false (unordered output)" do @@ -38,15 +38,15 @@ describe Chef::ChefFS::Parallelizer do parallelize([], :ordered => false) do sleep 10 end.to_a == [] - elapsed_time.should < 0.1 + expect(elapsed_time).to be < 0.1 end it "10 sleep(0.2)s complete within 0.5 seconds" do - parallelize(1.upto(10), :ordered => false) do |i| + expect(parallelize(1.upto(10), :ordered => false) do |i| sleep 0.2 'x' - end.to_a.should == %w(x x x x x x x x x x) - elapsed_time.should < 0.5 + end.to_a).to eq(%w(x x x x x x x x x x)) + expect(elapsed_time).to be < 0.5 end it "The output comes as soon as it is available" do @@ -54,10 +54,10 @@ describe Chef::ChefFS::Parallelizer do sleep val val end - enum.map do |value| - elapsed_time.should < value+0.1 + expect(enum.map do |value| + expect(elapsed_time).to be < value+0.1 value - end.should == [ 0.1, 0.3, 0.5 ] + end).to eq([ 0.1, 0.3, 0.5 ]) end it "An exception in input is passed through but does NOT stop processing" do @@ -67,8 +67,8 @@ describe Chef::ChefFS::Parallelizer do enum = parallelize(input, :ordered => false) { |x| sleep(x); x } results = [] expect { enum.each { |value| results << value } }.to raise_error 'hi' - results.should == [ 0.1, 0.3, 0.5 ] - elapsed_time.should < 0.6 + expect(results).to eq([ 0.1, 0.3, 0.5 ]) + expect(elapsed_time).to be < 0.6 end it "Exceptions in output are raised after all processing is done" do @@ -84,9 +84,9 @@ describe Chef::ChefFS::Parallelizer do end results = [] expect { enum.each { |value| results << value } }.to raise_error 'hi' - results.sort.should == [ 1, 2, 3 ] - elapsed_time.should < 0.3 - processed.should == 3 + expect(results.sort).to eq([ 1, 2, 3 ]) + expect(elapsed_time).to be < 0.3 + expect(processed).to eq(3) end it "Exceptions with :stop_on_exception are raised after all processing is done" do @@ -101,7 +101,7 @@ describe Chef::ChefFS::Parallelizer do x end expect { parallelized.to_a }.to raise_error 'hi' - processed.should == 4 + expect(processed).to eq(4) end end @@ -110,15 +110,15 @@ describe Chef::ChefFS::Parallelizer do parallelize([]) do sleep 10 end.to_a == [] - elapsed_time.should < 0.1 + expect(elapsed_time).to be < 0.1 end it "10 sleep(0.2)s complete within 0.5 seconds" do - parallelize(1.upto(10), :ordered => true) do |i| + expect(parallelize(1.upto(10), :ordered => true) do |i| sleep 0.2 'x' - end.to_a.should == %w(x x x x x x x x x x) - elapsed_time.should < 0.5 + end.to_a).to eq(%w(x x x x x x x x x x)) + expect(elapsed_time).to be < 0.5 end it "Output comes in the order of the input" do @@ -126,10 +126,10 @@ describe Chef::ChefFS::Parallelizer do sleep val val end.enum_for(:each_with_index) - enum.next.should == [ 0.5, 0 ] - enum.next.should == [ 0.3, 1 ] - enum.next.should == [ 0.1, 2 ] - elapsed_time.should < 0.6 + expect(enum.next).to eq([ 0.5, 0 ]) + expect(enum.next).to eq([ 0.3, 1 ]) + expect(enum.next).to eq([ 0.1, 2 ]) + expect(elapsed_time).to be < 0.6 end it "Exceptions in input are raised in the correct sequence but do NOT stop processing" do @@ -139,8 +139,8 @@ describe Chef::ChefFS::Parallelizer do results = [] enum = parallelize(input) { |x| sleep(x); x } expect { enum.each { |value| results << value } }.to raise_error 'hi' - elapsed_time.should < 0.6 - results.should == [ 0.5, 0.3, 0.1 ] + expect(elapsed_time).to be < 0.6 + expect(results).to eq([ 0.5, 0.3, 0.1 ]) end it "Exceptions in output are raised in the correct sequence and running processes do NOT stop processing" do @@ -156,9 +156,9 @@ describe Chef::ChefFS::Parallelizer do end results = [] expect { enum.each { |value| results << value } }.to raise_error 'hi' - results.should == [ 1, 2 ] - elapsed_time.should < 0.3 - processed.should == 3 + expect(results).to eq([ 1, 2 ]) + expect(elapsed_time).to be < 0.3 + expect(processed).to eq(3) end it "Exceptions with :stop_on_exception are raised after all processing is done" do @@ -173,7 +173,7 @@ describe Chef::ChefFS::Parallelizer do x end expect { parallelized.to_a }.to raise_error 'hi' - processed.should == 4 + expect(processed).to eq(4) end end @@ -187,10 +187,10 @@ describe Chef::ChefFS::Parallelizer do sleep 0.1 end enum = parallelize(input) { |x| x } - enum.map do |value| - elapsed_time.should < (value+1)*0.1 + expect(enum.map do |value| + expect(elapsed_time).to be < (value+1)*0.1 value - end.should == [ 1, 2, 3 ] + end).to eq([ 1, 2, 3 ]) end end @@ -226,44 +226,44 @@ describe Chef::ChefFS::Parallelizer do end it "parallelize with :main_thread_processing = true does not block" do - parallelizer.parallelize([1]) do |x| + expect(parallelizer.parallelize([1]) do |x| sleep(0.1) x - end.to_a.should == [ 1 ] - elapsed_time.should < 0.2 + end.to_a).to eq([ 1 ]) + expect(elapsed_time).to be < 0.2 end it "parallelize with :main_thread_processing = false waits for the job to finish" do - parallelizer.parallelize([1], :main_thread_processing => false) do |x| + expect(parallelizer.parallelize([1], :main_thread_processing => false) do |x| sleep(0.1) x+1 - end.to_a.should == [ 2 ] - elapsed_time.should > 0.3 + end.to_a).to eq([ 2 ]) + expect(elapsed_time).to be > 0.3 end it "resizing the Parallelizer to 0 waits for the job to stop" do - elapsed_time.should < 0.2 + expect(elapsed_time).to be < 0.2 parallelizer.resize(0) - parallelizer.num_threads.should == 0 - elapsed_time.should > 0.25 - @occupying_job_finished.should == [ true ] + expect(parallelizer.num_threads).to eq(0) + expect(elapsed_time).to be > 0.25 + expect(@occupying_job_finished).to eq([ true ]) end it "stopping the Parallelizer waits for the job to finish" do - elapsed_time.should < 0.2 + expect(elapsed_time).to be < 0.2 parallelizer.stop - parallelizer.num_threads.should == 0 - elapsed_time.should > 0.25 - @occupying_job_finished.should == [ true ] + expect(parallelizer.num_threads).to eq(0) + expect(elapsed_time).to be > 0.25 + expect(@occupying_job_finished).to eq([ true ]) end it "resizing the Parallelizer to 2 does not stop the job" do - elapsed_time.should < 0.2 + expect(elapsed_time).to be < 0.2 parallelizer.resize(2) - parallelizer.num_threads.should == 2 - elapsed_time.should < 0.2 + expect(parallelizer.num_threads).to eq(2) + expect(elapsed_time).to be < 0.2 sleep(0.3) - @occupying_job_finished.should == [ true ] + expect(@occupying_job_finished).to eq([ true ]) end end @@ -276,9 +276,9 @@ describe Chef::ChefFS::Parallelizer do sleep(0.05) # Just enough to yield and get other inputs in the queue x end - enum.count.should == 6 - outputs_processed.should == 0 - input_mapper.num_processed.should == 6 + expect(enum.count).to eq(6) + expect(outputs_processed).to eq(0) + expect(input_mapper.num_processed).to eq(6) end it ".count with arguments works normally" do @@ -288,10 +288,10 @@ describe Chef::ChefFS::Parallelizer do outputs_processed += 1 x end - enum.count { |x| x > 1 }.should == 6 - enum.count(2).should == 3 - outputs_processed.should == 20 - input_mapper.num_processed.should == 20 + expect(enum.count { |x| x > 1 }).to eq(6) + expect(enum.count(2)).to eq(3) + expect(outputs_processed).to eq(20) + expect(input_mapper.num_processed).to eq(20) end it ".first does not enumerate anything other than the first result(s)" do @@ -302,10 +302,10 @@ describe Chef::ChefFS::Parallelizer do sleep(0.05) # Just enough to yield and get other inputs in the queue x end - enum.first.should == 1 - enum.first(2).should == [1,2] - outputs_processed.should == 3 - input_mapper.num_processed.should == 3 + expect(enum.first).to eq(1) + expect(enum.first(2)).to eq([1,2]) + expect(outputs_processed).to eq(3) + expect(input_mapper.num_processed).to eq(3) end it ".take does not enumerate anything other than the first result(s)" do @@ -316,9 +316,9 @@ describe Chef::ChefFS::Parallelizer do sleep(0.05) # Just enough to yield and get other inputs in the queue x end - enum.take(2).should == [1,2] - outputs_processed.should == 2 - input_mapper.num_processed.should == 2 + expect(enum.take(2)).to eq([1,2]) + expect(outputs_processed).to eq(2) + expect(input_mapper.num_processed).to eq(2) end it ".drop does not process anything other than the last result(s)" do @@ -329,9 +329,9 @@ describe Chef::ChefFS::Parallelizer do sleep(0.05) # Just enough to yield and get other inputs in the queue x end - enum.drop(2).should == [3,4,5,6] - outputs_processed.should == 4 - input_mapper.num_processed.should == 6 + expect(enum.drop(2)).to eq([3,4,5,6]) + expect(outputs_processed).to eq(4) + expect(input_mapper.num_processed).to eq(6) end if Enumerable.method_defined?(:lazy) @@ -343,9 +343,9 @@ describe Chef::ChefFS::Parallelizer do sleep(0.05) # Just enough to yield and get other inputs in the queue x end - enum.lazy.take(2).to_a.should == [1,2] - outputs_processed.should == 2 - input_mapper.num_processed.should == 2 + expect(enum.lazy.take(2).to_a).to eq([1,2]) + expect(outputs_processed).to eq(2) + expect(input_mapper.num_processed).to eq(2) end it ".drop does not process anything other than the last result(s)" do @@ -356,9 +356,9 @@ describe Chef::ChefFS::Parallelizer do sleep(0.05) # Just enough to yield and get other inputs in the queue x end - enum.lazy.drop(2).to_a.should == [3,4,5,6] - outputs_processed.should == 4 - input_mapper.num_processed.should == 6 + expect(enum.lazy.drop(2).to_a).to eq([3,4,5,6]) + expect(outputs_processed).to eq(4) + expect(input_mapper.num_processed).to eq(6) end it "lazy enumerable is actually lazy" do @@ -372,8 +372,8 @@ describe Chef::ChefFS::Parallelizer do enum.lazy.take(2) enum.lazy.drop(2) sleep(0.1) - outputs_processed.should == 0 - input_mapper.num_processed.should == 0 + expect(outputs_processed).to eq(0) + expect(input_mapper.num_processed).to eq(0) end end end @@ -386,10 +386,10 @@ describe Chef::ChefFS::Parallelizer do outputs_processed += 1 x end - enum.map { |x| x }.should == [1,2,3] - enum.map { |x| x }.should == [1,2,3] - outputs_processed.should == 6 - input_mapper.num_processed.should == 6 + expect(enum.map { |x| x }).to eq([1,2,3]) + expect(enum.map { |x| x }).to eq([1,2,3]) + expect(outputs_processed).to eq(6) + expect(input_mapper.num_processed).to eq(6) end it ".first and then .map on the same parallel enumerable returns the correct results and re-processes the input" do @@ -399,10 +399,10 @@ describe Chef::ChefFS::Parallelizer do outputs_processed += 1 x end - enum.first.should == 1 - enum.map { |x| x }.should == [1,2,3] - outputs_processed.should >= 4 - input_mapper.num_processed.should >= 4 + expect(enum.first).to eq(1) + expect(enum.map { |x| x }).to eq([1,2,3]) + expect(outputs_processed).to be >= 4 + expect(input_mapper.num_processed).to be >= 4 end it "two simultaneous enumerations throws an exception" do @@ -424,7 +424,7 @@ describe Chef::ChefFS::Parallelizer do context "And main_thread_processing on" do it "succeeds in running" do - parallelizer.parallelize([0.5]) { |x| x*2 }.to_a.should == [1] + expect(parallelizer.parallelize([0.5]) { |x| x*2 }.to_a).to eq([1]) end end end @@ -435,11 +435,11 @@ describe Chef::ChefFS::Parallelizer do end it "does not have contention issues with large numbers of inputs" do - parallelizer.parallelize(1.upto(500)) { |x| x+1 }.to_a.should == 2.upto(501).to_a + expect(parallelizer.parallelize(1.upto(500)) { |x| x+1 }.to_a).to eq(2.upto(501).to_a) end it "does not have contention issues with large numbers of inputs with ordering off" do - parallelizer.parallelize(1.upto(500), :ordered => false) { |x| x+1 }.to_a.sort.should == 2.upto(501).to_a + expect(parallelizer.parallelize(1.upto(500), :ordered => false) { |x| x+1 }.to_a.sort).to eq(2.upto(501).to_a) end it "does not have contention issues with large numbers of jobs and inputs with ordering off" do @@ -451,7 +451,7 @@ describe Chef::ChefFS::Parallelizer do Thread.new { outputs[i] = parallelizers[i].to_a } end threads.each { |thread| thread.join } - outputs.each { |output| output.sort.should == 2.upto(501).to_a } + outputs.each { |output| expect(output.sort).to eq(2.upto(501).to_a) } end end |