packaging 0.108.2 → 0.109.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -2
  3. data/lib/packaging/artifactory.rb +15 -10
  4. data/lib/packaging/config/validations.rb +1 -1
  5. data/lib/packaging/config.rb +5 -5
  6. data/lib/packaging/deb/repo.rb +4 -4
  7. data/lib/packaging/nuget.rb +1 -1
  8. data/lib/packaging/paths.rb +4 -3
  9. data/lib/packaging/sign/msi.rb +6 -8
  10. data/lib/packaging/util/execution.rb +1 -1
  11. data/lib/packaging/util/ezbake.rb +1 -1
  12. data/lib/packaging/util/file.rb +4 -6
  13. data/lib/packaging/util/net.rb +8 -12
  14. data/lib/packaging/util/ship.rb +17 -7
  15. data/lib/packaging/util/tool.rb +1 -1
  16. data/lib/packaging/util/version.rb +7 -5
  17. data/spec/lib/packaging/config_spec.rb +300 -279
  18. data/spec/lib/packaging/deb/repo_spec.rb +138 -76
  19. data/spec/lib/packaging/deb_spec.rb +28 -25
  20. data/spec/lib/packaging/repo_spec.rb +52 -31
  21. data/spec/lib/packaging/rpm/repo_spec.rb +18 -37
  22. data/spec/lib/packaging/sign_spec.rb +22 -43
  23. data/spec/lib/packaging/tar_spec.rb +48 -44
  24. data/spec/lib/packaging/util/execution_spec.rb +32 -32
  25. data/spec/lib/packaging/util/file_spec.rb +112 -75
  26. data/spec/lib/packaging/util/gpg_spec.rb +24 -19
  27. data/spec/lib/packaging/util/jenkins_spec.rb +79 -48
  28. data/spec/lib/packaging/util/misc_spec.rb +13 -8
  29. data/spec/lib/packaging/util/net_spec.rb +193 -152
  30. data/spec/lib/packaging/util/rake_utils_spec.rb +24 -18
  31. data/spec/lib/packaging_spec.rb +7 -9
  32. data/tasks/apple.rake +7 -8
  33. data/tasks/deb.rake +1 -1
  34. data/tasks/fetch.rake +2 -2
  35. data/tasks/mock.rake +3 -3
  36. data/tasks/nightly_repos.rake +11 -9
  37. data/tasks/rpm.rake +2 -3
  38. data/tasks/ship.rake +4 -2
  39. data/tasks/sign.rake +8 -10
  40. data/tasks/z_data_dump.rake +3 -3
  41. metadata +46 -33
@@ -7,7 +7,7 @@ describe 'Pkg::Sign' do
7
7
  allow(Pkg::Config).to receive(:gpg_key).and_return('7F438280EF8D349F')
8
8
  end
9
9
 
10
- describe '#signed?' do
10
+ describe '#has_sig?' do
11
11
  let(:rpm) { 'foo.rpm' }
12
12
  let(:el7_signed_response) do
13
13
  <<~DOC
@@ -17,7 +17,6 @@ describe 'Pkg::Sign' do
17
17
  MD5 digest: OK (d5f06ba2a9053de532326d0659ec0d11)
18
18
  DOC
19
19
  end
20
-
21
20
  let(:sles12_signed_response) do
22
21
  <<~DOC
23
22
  Header V4 RSA/SHA256 Signature, key ID ef8d349f: NOKEY
@@ -26,36 +25,34 @@ describe 'Pkg::Sign' do
26
25
  MD5 digest: OK (3093a09ac39bc17751f913e19ca74432)
27
26
  DOC
28
27
  end
29
-
30
28
  let(:unsigned_response) do
31
29
  <<~DOC
32
30
  Header SHA1 digest: OK (f9404cc95f200568c2dbb1fd24e1119e3e4a40a9)
33
31
  MD5 digest: OK (816095f3cee145091c3fa07a0915ce85)
34
32
  DOC
35
33
  end
36
-
37
34
  it 'returns true if rpm has been signed (el7)' do
38
35
  allow(Pkg::Sign::Rpm).to receive(:`).and_return(el7_signed_response)
39
- expect(Pkg::Sign::Rpm.signed?(rpm)).to be true
36
+ expect(Pkg::Sign::Rpm.has_sig?(rpm)).to be true
40
37
  end
41
38
  it 'returns true if rpm has been signed (sles12)' do
42
39
  allow(Pkg::Sign::Rpm).to receive(:`).and_return(sles12_signed_response)
43
- expect(Pkg::Sign::Rpm.signed?(rpm)).to be true
40
+ expect(Pkg::Sign::Rpm.has_sig?(rpm)).to be true
44
41
  end
45
42
  it 'returns false if rpm has not been signed' do
46
43
  allow(Pkg::Sign::Rpm).to receive(:`).and_return(unsigned_response)
47
- expect(Pkg::Sign::Rpm.signed?(rpm)).to be false
44
+ expect(Pkg::Sign::Rpm.has_sig?(rpm)).to be false
48
45
  end
49
46
  it 'fails with unexpected output' do
50
47
  allow(Pkg::Sign::Rpm)
51
48
  .to receive(:`)
52
49
  .and_return('something that is definitely not a normal response')
53
- expect { Pkg::Sign::Rpm.signed?(rpm) }
50
+ expect { Pkg::Sign::Rpm.has_sig?(rpm) }
54
51
  .to raise_error(RuntimeError, /Something went wrong checking the signature/)
55
52
  end
56
53
  it 'fails if gpg_key is not set' do
57
54
  allow(Pkg::Config).to receive(:gpg_key).and_return(nil)
58
- expect { Pkg::Sign::Rpm.signed?(rpm) }
55
+ expect { Pkg::Sign::Rpm.has_sig?(rpm) }
59
56
  .to raise_error(RuntimeError, /You need to set `gpg_key` in your build defaults./)
60
57
  end
61
58
  end
@@ -63,59 +60,41 @@ describe 'Pkg::Sign' do
63
60
  describe '#sign_all' do
64
61
  let(:rpm_directory) { Dir.mktmpdir }
65
62
  let(:rpms_not_to_sign) do
66
- ["#{rpm_directory}/aix/7.1/PC1/ppc/puppet-agent-5.5.3-1.aix7.1.ppc.rpm"]
63
+ %W[#{rpm_directory}/aix/7.1/PC1/ppc/puppet-agent-5.5.3-1.aix7.1.ppc.rpm]
67
64
  end
68
-
69
65
  let(:v3_rpms) do
70
- ["#{rpm_directory}/sles/11/PC1/x86_64/puppet-agent-5.5.3-1.sles11.x86_64.rpm"]
66
+ %W[#{rpm_directory}/sles/11/PC1/x86_64/puppet-agent-5.5.3-1.sles11.x86_64.rpm]
71
67
  end
72
-
73
68
  let(:v4_rpms) do
74
- ["#{rpm_directory}/el/7/PC1/aarch64/puppet-agent-5.5.3-1.el7.aarch64.rpm"]
69
+ %W[%#{rpm_directory}/el/7/PC1/aarch64/puppet-agent-5.5.3-1.el7.aarch64.rpm]
75
70
  end
76
-
77
71
  let(:rpms) { rpms_not_to_sign + v3_rpms + v4_rpms }
78
-
79
72
  let(:already_signed_rpms) do
80
- ["#{rpm_directory}/el/6/PC1/x86_64/puppet-agent-5.5.3-1.el6.x86_64.rpm"]
73
+ %W[#{rpm_directory}/el/6/PC1/x86_64/puppet-agent-5.5.3-1.el6.x86_64.rpm]
81
74
  end
82
-
83
75
  let(:noarch_rpms) do
84
- [
85
- "#{rpm_directory}/el/6/puppet5/i386/puppetserver-5.3.3-1.el6.noarch.rpm",
86
- "#{rpm_directory}/el/6/puppet5/x86_64/puppetserver-5.3.3-1.el6.noarch.rpm",
87
- "#{rpm_directory}/el/7/puppet5/i386/puppetserver-5.3.3-1.el7.noarch.rpm",
88
- "#{rpm_directory}/el/7/puppet5/x86_64/puppetserver-5.3.3-1.el7.noarch.rpm",
89
- "#{rpm_directory}/sles/12/puppet5/i386/puppetserver-5.3.3-1.sles12.noarch.rpm",
90
- "#{rpm_directory}/sles/12/puppet5/x86_64/puppetserver-5.3.3-1.sles12.noarch.rpm"
76
+ %W[
77
+ #{rpm_directory}/el/6/puppet5/i386/puppetserver-5.3.3-1.el6.noarch.rpm
78
+ #{rpm_directory}/el/6/puppet5/x86_64/puppetserver-5.3.3-1.el6.noarch.rpm
79
+ #{rpm_directory}/el/7/puppet5/i386/puppetserver-5.3.3-1.el7.noarch.rpm
80
+ #{rpm_directory}/el/7/puppet5/x86_64/puppetserver-5.3.3-1.el7.noarch.rpm
81
+ #{rpm_directory}/sles/12/puppet5/i386/puppetserver-5.3.3-1.sles12.noarch.rpm
82
+ #{rpm_directory}/sles/12/puppet5/x86_64/puppetserver-5.3.3-1.sles12.noarch.rpm
91
83
  ]
92
84
  end
93
-
94
85
  it 'signs both v3 and v4 rpms' do
95
86
  allow(Dir).to receive(:[]).with("#{rpm_directory}/**/*.rpm").and_return(rpms)
96
87
  rpms.each do |rpm|
97
88
  allow(Pkg::Sign::Rpm).to receive(:signed?).and_return(false)
98
89
  end
99
-
100
- v3_items = v3_rpms.length
101
- v4_items = v4_rpms.length
102
-
103
- expect(Pkg::Sign::Rpm)
104
- .to receive(:sign)
105
- .with(v3_rpms.join(' '), :v3)
106
- .exactly(v3_items).times
107
- expect(Pkg::Sign::Rpm)
108
- .to receive(:sign)
109
- .with(v4_rpms.join(' '), :v4)
110
- .exactly(v4_items).times
111
-
90
+ expect(Pkg::Sign::Rpm).to receive(:sign).with(v3_rpms.join(' '), :v3)
91
+ expect(Pkg::Sign::Rpm).to receive(:sign).with(v4_rpms.join(' '), :v4)
112
92
  Pkg::Sign::Rpm.sign_all(rpm_directory)
113
93
  end
114
94
 
115
95
  it 'does not sign AIX rpms' do
116
96
  allow(Dir).to receive(:[]).with("#{rpm_directory}/**/*.rpm").and_return(rpms_not_to_sign)
117
- allow(Pkg::Sign::Rpm).to receive(:signed?)
118
- expect(Pkg::Sign::Rpm).to_not receive(:legacy_sign)
97
+ allow(Pkg::Sign::Rpm).to receive(:signed?).and_return(false)
119
98
  expect(Pkg::Sign::Rpm).to_not receive(:sign)
120
99
  Pkg::Sign::Rpm.sign_all(rpm_directory)
121
100
  end
@@ -133,7 +112,7 @@ describe 'Pkg::Sign' do
133
112
  it 'deletes and relinks rpms with the same basename' do
134
113
  allow(Dir).to receive(:[]).with("#{rpm_directory}/**/*.rpm").and_return(noarch_rpms)
135
114
  allow(Pkg::Sign::Rpm).to receive(:sign)
136
- allow(Pkg::Sign::Rpm).to receive(:signed?)
115
+ allow(Pkg::Sign::Rpm).to receive(:signed?).and_return(false)
137
116
  expect(FileUtils).to receive(:rm).exactly(noarch_rpms.count / 2).times
138
117
  expect(FileUtils).to receive(:ln).exactly(noarch_rpms.count / 2).times
139
118
  Pkg::Sign::Rpm.sign_all(rpm_directory)
@@ -141,7 +120,7 @@ describe 'Pkg::Sign' do
141
120
 
142
121
  it 'does not fail if there are no rpms to sign' do
143
122
  allow(Dir).to receive(:[]).with("#{rpm_directory}/**/*.rpm").and_return([])
144
- expect(Pkg::Sign::Rpm.sign_all(rpm_directory)).to_not raise_error
123
+ expect { Pkg::Sign::Rpm.sign_all(rpm_directory) }.to_not raise_error
145
124
  end
146
125
  end
147
126
  end
@@ -1,35 +1,36 @@
1
1
  # -*- ruby -*-
2
2
  require 'spec_helper'
3
3
 
4
- describe "tar.rb" do
5
- let(:project) { "packaging" }
6
- let(:version) { "1.2.3" }
7
- let(:files) { [ "a", "b", "c" ] }
4
+ describe 'tar.rb' do
5
+ let(:project) { 'packaging' }
6
+ let(:version) { '1.2.3' }
7
+ let(:files) { %w[a b c] }
8
8
  let(:templates) do
9
9
  [
10
- "ext/redhat/spec.erb",
11
- { "source" => "ext/debian/control.erb", "target" => "ext/debian/not-a-control-file" },
12
- "ext/debian/changelog.erb",
13
- "ext/packaging/thing.erb"
10
+ 'ext/redhat/spec.erb',
11
+ { 'source' => 'ext/debian/control.erb', 'target' => 'ext/debian/not-a-control-file' },
12
+ 'ext/debian/changelog.erb',
13
+ 'ext/packaging/thing.erb'
14
14
  ]
15
15
  end
16
16
  let(:expanded_templates) do
17
17
  [
18
18
  "#{PROJECT_ROOT}/ext/redhat/spec.erb",
19
- { "source" => "ext/debian/control.erb", "target" => "ext/debian/not-a-control-file" },
19
+ { 'source' => 'ext/debian/control.erb', 'target' => 'ext/debian/not-a-control-file' },
20
20
  "#{PROJECT_ROOT}/ext/debian/changelog.erb"
21
21
  ]
22
22
  end
23
23
  before(:each) do
24
24
  Pkg::Config.config_from_hash(
25
25
  {
26
- :templates => templates,
27
- :project => project,
28
- :version => version,
29
- :files => files,
30
- :project_root => PROJECT_ROOT,
31
- :packaging_root => "ext/packaging"
32
- })
26
+ templates: templates,
27
+ project: project,
28
+ version: version,
29
+ files: files,
30
+ project_root: PROJECT_ROOT,
31
+ packaging_root: 'ext/packaging'
32
+ }
33
+ )
33
34
  end
34
35
 
35
36
  describe '#initialize' do
@@ -51,63 +52,66 @@ describe "tar.rb" do
51
52
  end
52
53
  end
53
54
 
54
- describe "#expand_templates" do
55
- it "should be invoked when Pkg::Config.templates is set" do
56
- Pkg::Tar.any_instance.should_receive(:expand_templates)
55
+ describe '#expand_templates' do
56
+ it 'should be invoked when Pkg::Config.templates is set' do
57
+ expect_any_instance_of(Pkg::Tar).to receive(:expand_templates)
57
58
  Pkg::Tar.new
58
59
  end
59
60
 
60
- it "packaging templates should be filtered and paths should be expanded" do
61
+ it 'packaging templates should be filtered and paths should be expanded' do
61
62
  templates.each do |temp|
62
63
  if temp.is_a?(String)
63
- Dir.stub(:glob).with(File.join(PROJECT_ROOT, temp)).and_return(File.join(PROJECT_ROOT, temp))
64
+ allow(Dir)
65
+ .to receive(:glob)
66
+ .with(File.join(PROJECT_ROOT, temp))
67
+ .and_return(File.join(PROJECT_ROOT, temp))
64
68
  end
65
69
  end
66
70
 
67
71
  tar = Pkg::Tar.new
68
72
  tar.templates = templates
69
73
  tar.expand_templates
70
- tar.templates.should eq expanded_templates
74
+ expect(tar.templates).to eq(expanded_templates)
71
75
  end
72
76
  end
73
77
 
74
- describe "#template" do
78
+ describe '#template' do
75
79
  before(:each) do
76
80
  Pkg::Config.templates = expanded_templates
77
81
  end
78
82
 
79
- it "should handle hashes and strings correctly" do
80
- # Set up correct stubs and expectations
83
+ it 'should handle hashes and strings correctly' do
81
84
  expanded_templates.each do |temp|
82
- if temp.is_a?(String)
85
+ case temp
86
+ when String
83
87
  full_path_temp = File.join(PROJECT_ROOT, temp)
84
- target = full_path_temp.sub(File.extname(full_path_temp), "")
85
- elsif temp.is_a?(Hash)
86
- full_path_temp = File.join(PROJECT_ROOT, temp["source"])
87
- target = File.join(PROJECT_ROOT, temp["target"])
88
+ target = full_path_temp.sub(File.extname(full_path_temp), '')
89
+ when Hash
90
+ full_path_temp = File.join(PROJECT_ROOT, temp['source'])
91
+ target = File.join(PROJECT_ROOT, temp['target'])
88
92
  end
89
93
 
90
- Dir.stub(:glob).with(full_path_temp).and_return(full_path_temp)
91
- File.stub(:exist?).with(full_path_temp).and_return(true)
92
- Pkg::Util::File.should_receive(:erb_file).with(full_path_temp, target, true, :binding => an_instance_of(Binding))
94
+ allow(Dir).to receive(:glob).with(full_path_temp).and_return(full_path_temp)
95
+ allow(File).to receive(:exist?).with(full_path_temp).and_return(true)
96
+ expect(Pkg::Util::File)
97
+ .to receive(:erb_file)
98
+ .with(full_path_temp, target, true, binding: an_instance_of(Binding))
93
99
  end
94
100
 
95
101
  Pkg::Tar.new.template
96
102
  end
97
103
 
98
- it "should raise an error if the template source can't be found" do
99
- # Set up correct stubs and expectations
104
+ it 'should raise an error if the template source can\'t be found' do
100
105
  expanded_templates.each do |temp|
101
- if temp.is_a?(String)
102
- full_path_temp = File.join(PROJECT_ROOT, temp)
103
- target = full_path_temp.sub(File.extname(full_path_temp), "")
104
- elsif temp.is_a?(Hash)
105
- full_path_temp = File.join(PROJECT_ROOT, temp["source"])
106
- target = File.join(PROJECT_ROOT, temp["target"])
107
- end
106
+ full_path_temp = case temp
107
+ when String
108
+ File.join(PROJECT_ROOT, temp)
109
+ when Hash
110
+ File.join(PROJECT_ROOT, temp['source'])
111
+ end
108
112
 
109
- Dir.stub(:glob).with(full_path_temp).and_return(full_path_temp)
110
- File.stub(:exist?).with(full_path_temp).and_return(false)
113
+ allow(Dir).to receive(:glob).with(full_path_temp).and_return(full_path_temp)
114
+ allow(File).to receive(:exist?).with(full_path_temp).and_return(false)
111
115
  end
112
116
 
113
117
  expect { Pkg::Tar.new.template }.to raise_error RuntimeError
@@ -1,56 +1,56 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "Pkg::Util::Execution" do
4
- let(:command) { "/usr/bin/do-something-important --arg1=thing2" }
5
- let(:output) { "the command returns some really cool stuff that may be useful later" }
3
+ describe 'Pkg::Util::Execution' do
4
+ let(:command) { '/usr/bin/do-something-important --arg1=thing2' }
5
+ let(:output) { 'the command returns some really cool stuff that may be useful later' }
6
6
 
7
7
  describe "#success?" do
8
- it "should return false on failure" do
9
- %x{false}
10
- Pkg::Util::Execution.success?.should be_false
8
+ it 'should return false on failure' do
9
+ %x(false)
10
+ expect(Pkg::Util::Execution.success?).to be false
11
11
  end
12
12
 
13
- it "should return true on success" do
14
- %x{true}
15
- Pkg::Util::Execution.success?.should be_true
13
+ it 'should return true on success' do
14
+ %x(true)
15
+ expect(Pkg::Util::Execution.success?).to be true
16
16
  end
17
17
 
18
- it "should return false when passed an exitstatus object from a failure" do
19
- %x{false}
20
- Pkg::Util::Execution.success?($?).should be_false
18
+ it 'should return false when passed an exitstatus object from a failure' do
19
+ %x(false)
20
+ expect(Pkg::Util::Execution.success?($?)).to be false
21
21
  end
22
22
 
23
- it "should return true when passed and exitstatus object from a success" do
24
- %x{true}
25
- Pkg::Util::Execution.success?($?).should be_true
23
+ it 'should return true when passed and exitstatus object from a success' do
24
+ %x(true)
25
+ expect(Pkg::Util::Execution.success?($?)).to be true
26
26
  end
27
27
  end
28
28
 
29
- describe "#ex" do
30
- it "should raise an error if the command fails" do
31
- Pkg::Util::Execution.should_receive(:`).with(command).and_return(true)
32
- Pkg::Util::Execution.should_receive(:success?).and_return(false)
33
- expect{ Pkg::Util::Execution.ex(command) }.to raise_error(RuntimeError)
29
+ describe '#ex' do
30
+ it 'should raise an error if the command fails' do
31
+ expect(Pkg::Util::Execution).to receive(:`).with(command).and_return(true)
32
+ expect(Pkg::Util::Execution).to receive(:success?).and_return(false)
33
+ expect { Pkg::Util::Execution.ex(command) }.to raise_error(RuntimeError)
34
34
  end
35
35
 
36
- it "should return the output of the command for success" do
37
- Pkg::Util::Execution.should_receive(:`).with(command).and_return(output)
38
- Pkg::Util::Execution.should_receive(:success?).and_return(true)
39
- Pkg::Util::Execution.ex(command).should == output
36
+ it 'should return the output of the command for success' do
37
+ expect(Pkg::Util::Execution).to receive(:`).with(command).and_return(output)
38
+ expect(Pkg::Util::Execution).to receive(:success?).and_return(true)
39
+ expect(Pkg::Util::Execution.ex(command)).to eq output
40
40
  end
41
41
  end
42
42
 
43
- describe "#capture3" do
44
- it "should raise an error if the command fails" do
45
- Open3.should_receive(:capture3).with(command).and_return([output, '', 1])
46
- Pkg::Util::Execution.should_receive(:success?).with(1).and_return(false)
47
- expect{ Pkg::Util::Execution.capture3(command) }.to raise_error(RuntimeError, /#{output}/)
43
+ describe '#capture3' do
44
+ it 'should raise an error if the command fails' do
45
+ expect(Open3).to receive(:capture3).with(command).and_return([output, '', 1])
46
+ expect(Pkg::Util::Execution).to receive(:success?).with(1).and_return(false)
47
+ expect { Pkg::Util::Execution.capture3(command) }.to raise_error(RuntimeError, /#{output}/)
48
48
  end
49
49
 
50
50
  it "should return the output of the command for success" do
51
- Open3.should_receive(:capture3).with(command).and_return([output, '', 0])
52
- Pkg::Util::Execution.should_receive(:success?).with(0).and_return(true)
53
- Pkg::Util::Execution.capture3(command).should == [output, '', 0]
51
+ expect(Open3).to receive(:capture3).with(command).and_return([output, '', 0])
52
+ expect(Pkg::Util::Execution).to receive(:success?).with(0).and_return(true)
53
+ expect(Pkg::Util::Execution.capture3(command)).to eq([output, '', 0])
54
54
  end
55
55
  end
56
56
  end
@@ -1,112 +1,146 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "Pkg::Util::File" do
4
- let(:source) { "/tmp/placething.tar.gz" }
5
- let(:target) { "/tmp" }
6
- let(:options) { "--thing-for-tar" }
7
- let(:tar) { "/usr/bin/tar" }
8
- let(:files) { ["foo.rb", "foo/bar.rb"] }
9
- let(:symlinks) { ["bar.rb"] }
10
- let(:dirs) { ["foo"] }
11
- let(:empty_dirs) { ["bar"] }
12
-
13
-
14
- describe "#untar_into" do
3
+ describe 'Pkg::Util::File' do
4
+ let(:source) { '/tmp/placething.tar.gz' }
5
+ let(:target) { '/tmp' }
6
+ let(:options) { '--thing-for-tar' }
7
+ let(:tar) { '/usr/bin/tar' }
8
+ let(:files) { ['foo.rb', 'foo/bar.rb'] }
9
+ let(:symlinks) { ['bar.rb'] }
10
+ let(:dirs) { ['foo'] }
11
+ let(:empty_dirs) { ['bar'] }
12
+
13
+
14
+ describe '#untar_into' do
15
15
  before :each do
16
- Pkg::Util::Tool.stub(:find_tool).with('tar', :required => true) { tar }
16
+ allow(Pkg::Util::Tool)
17
+ .to receive(:find_tool)
18
+ .with('tar', required: true)
19
+ .and_return(tar)
17
20
  end
18
21
 
19
- it "raises an exception if the source doesn't exist" do
20
- Pkg::Util::File.should_receive(:file_exists?).with(source, {:required => true}).and_raise(RuntimeError)
21
- Pkg::Util::Execution.should_not_receive(:capture3)
22
+ it 'raises an exception if the source doesn\'t exist' do
23
+ expect(Pkg::Util::File)
24
+ .to receive(:file_exists?)
25
+ .with(source, { required: true })
26
+ .and_raise(RuntimeError)
27
+ expect(Pkg::Util::Execution).not_to receive(:capture3)
22
28
  expect { Pkg::Util::File.untar_into(source) }.to raise_error(RuntimeError)
23
29
  end
24
30
 
25
- it "unpacks the tarball to the current directory if no target is passed" do
26
- Pkg::Util::File.should_receive(:file_exists?).with(source, {:required => true}) { true }
27
- Pkg::Util::Execution.should_receive(:capture3).with("#{tar} -xf #{source}")
31
+ it 'unpacks the tarball to the current directory if no target is passed' do
32
+ expect(Pkg::Util::File)
33
+ .to receive(:file_exists?)
34
+ .with(source, { required: true }) { true }
35
+ expect(Pkg::Util::Execution)
36
+ .to receive(:capture3)
37
+ .with("#{tar} -xf #{source}")
28
38
  Pkg::Util::File.untar_into(source)
29
39
  end
30
40
 
31
- it "unpacks the tarball to the current directory with options if no target is passed" do
32
- Pkg::Util::File.should_receive(:file_exists?).with(source, {:required => true}) { true }
33
- Pkg::Util::Execution.should_receive(:capture3).with("#{tar} #{options} -xf #{source}")
41
+ it 'unpacks the tarball to the current directory with options if no target is passed' do
42
+ expect(Pkg::Util::File)
43
+ .to receive(:file_exists?)
44
+ .with(source, { required: true }) { true }
45
+ expect(Pkg::Util::Execution)
46
+ .to receive(:capture3)
47
+ .with("#{tar} #{options} -xf #{source}")
34
48
  Pkg::Util::File.untar_into(source, nil, options)
35
49
  end
36
50
 
37
- it "unpacks the tarball into the target" do
38
- File.stub(:capture3ist?).with(source) { true }
39
- Pkg::Util::File.should_receive(:file_exists?).with(source, {:required => true}) { true }
40
- Pkg::Util::File.should_receive(:file_writable?).with(target) { true }
41
- Pkg::Util::Execution.should_receive(:capture3).with("#{tar} -C #{target} -xf #{source}")
51
+ it 'unpacks the tarball into the target' do
52
+ allow(File).to receive(:capture3ist?).with(source).and_return(true)
53
+ expect(Pkg::Util::File).to receive(:file_exists?).with(source, { required: true }) { true }
54
+ expect(Pkg::Util::File).to receive(:file_writable?).with(target) { true }
55
+ expect(Pkg::Util::Execution).to receive(:capture3).with("#{tar} -C #{target} -xf #{source}")
42
56
  Pkg::Util::File.untar_into(source, target)
43
57
  end
44
58
 
45
59
  it "unpacks the tarball into the target with options passed" do
46
- File.stub(:capture3ist?).with(source) { true }
47
- Pkg::Util::File.should_receive(:file_exists?).with(source, {:required => true}) { true }
48
- Pkg::Util::File.should_receive(:file_writable?).with(target) { true }
49
- Pkg::Util::Execution.should_receive(:capture3).with("#{tar} #{options} -C #{target} -xf #{source}")
60
+ allow(File).to receive(:capture3ist?).with(source).and_return(true)
61
+ expect(Pkg::Util::File).to receive(:file_exists?).with(source, { required: true }) { true }
62
+ expect(Pkg::Util::File).to receive(:file_writable?).with(target) { true }
63
+ expect(Pkg::Util::Execution)
64
+ .to receive(:capture3)
65
+ .with("#{tar} #{options} -C #{target} -xf #{source}")
50
66
  Pkg::Util::File.untar_into(source, target, options)
51
67
  end
52
68
  end
53
69
 
54
- describe "#files_with_ext" do
55
- it "returns nothing if there are no files with that extension" do
56
- Pkg::Util::File.files_with_ext("./spec/fixtures/configs/components", ".fake").should be_empty
70
+ describe '#files_with_ext' do
71
+ it 'returns nothing if there are no files with that extension' do
72
+ expect(Pkg::Util::File.files_with_ext('./spec/fixtures/configs/components', '.fake'))
73
+ .to be_empty
57
74
  end
58
75
 
59
- it "returns only the files with that extension" do
60
- expect(Pkg::Util::File.files_with_ext("./spec/fixtures/configs/components", ".json")).to include("./spec/fixtures/configs/components/test_file.json")
61
- expect(Pkg::Util::File.files_with_ext("./spec/fixtures/configs/components", ".json")).to include("./spec/fixtures/configs/components/test_file_2.json")
76
+ it 'returns only the files with that extension' do
77
+ expect(Pkg::Util::File.files_with_ext('./spec/fixtures/configs/components', '.json'))
78
+ .to include('./spec/fixtures/configs/components/test_file.json')
79
+ expect(Pkg::Util::File.files_with_ext('./spec/fixtures/configs/components', '.json'))
80
+ .to include('./spec/fixtures/configs/components/test_file_2.json')
62
81
  end
63
82
  end
64
83
 
65
- describe "#install_files_into_dir" do
66
- it "selects the correct files to install" do
84
+ describe '#install_files_into_dir' do
85
+ it 'selects the correct files to install' do
67
86
  Pkg::Config.load_defaults
68
87
  workdir = Pkg::Util::File.mktemp
69
88
  patterns = []
70
89
 
71
- # Set up a bunch of default settings for these to avoid a lot more stubbing in each section below
72
- File.stub(:file?) { false }
73
- File.stub(:symlink?) { false }
74
- File.stub(:directory?) { false }
75
- Pkg::Util::File.stub(:empty_dir?) { false }
90
+ allow(File).to receive(:file?).and_return(false)
91
+ allow(File).to receive(:symlink?).and_return(false)
92
+ allow(File).to receive(:directory?).and_return(false)
93
+ allow(Pkg::Util::File).to receive(:empty_dir?).and_return(false)
76
94
 
77
95
  # Files should have the path made and should be copied
78
96
  files.each do |file|
79
- File.stub(:file?).with(file).and_return(true)
80
- Dir.stub(:[]).with(file).and_return(file)
81
- FileUtils.should_receive(:mkpath).with(File.dirname(File.join(workdir, file)), :verbose => false)
82
- FileUtils.should_receive(:cp).with(file, File.join(workdir, file), :verbose => false, :preserve => true)
97
+ allow(File).to receive(:file?).with(file).and_return(true)
98
+ allow(Dir).to receive(:[]).with(file).and_return(file)
99
+ expect(FileUtils)
100
+ .to receive(:mkpath)
101
+ .with(File.dirname(File.join(workdir, file)), verbose: false)
102
+ expect(FileUtils)
103
+ .to receive(:cp)
104
+ .with(file, File.join(workdir, file), verbose: false, preserve: true)
83
105
  patterns << file
84
106
  end
85
107
 
86
108
  # Symlinks should have the path made and should be copied
87
109
  symlinks.each do |file|
88
- File.stub(:symlink?).with(file).and_return(true)
89
- Dir.stub(:[]).with(file).and_return(file)
90
- FileUtils.should_receive(:mkpath).with(File.dirname(File.join(workdir, file)), :verbose => false)
91
- FileUtils.should_receive(:cp).with(file, File.join(workdir, file), :verbose => false, :preserve => true)
110
+ allow(File).to receive(:symlink?).with(file).and_return(true)
111
+ allow(Dir).to receive(:[]).with(file).and_return(file)
112
+ expect(FileUtils)
113
+ .to receive(:mkpath)
114
+ .with(File.dirname(File.join(workdir, file)), verbose: false)
115
+ expect(FileUtils)
116
+ .to receive(:cp)
117
+ .with(file, File.join(workdir, file), verbose: false, preserve: true)
92
118
  patterns << file
93
119
  end
94
120
 
95
- # Dirs should be added to patterns but no acted upon
121
+ # Dirs should be added to patterns but not acted upon
96
122
  dirs.each do |dir|
97
- File.stub(:directory?).with(dir).and_return(true)
98
- Dir.stub(:[]).with("#{dir}/**/*").and_return(dir)
99
- FileUtils.should_not_receive(:mkpath).with(File.dirname(File.join(workdir, dir)), :verbose => false)
100
- FileUtils.should_not_receive(:cp).with(dir, File.join(workdir, dir), :verbose => false, :preserve => true)
123
+ allow(File).to receive(:directory?).with(dir).and_return(true)
124
+ allow(Dir).to receive(:[]).with("#{dir}/**/*").and_return(dir)
125
+ expect(FileUtils)
126
+ .not_to receive(:mkpath)
127
+ .with(File.dirname(File.join(workdir, dir)), verbose: false)
128
+ expect(FileUtils)
129
+ .not_to receive(:cp)
130
+ .with(dir, File.join(workdir, dir), verbose: false, preserve: true)
101
131
  patterns << dir
102
132
  end
103
133
 
104
134
  # Empty dirs should have the path created and nothing copied
105
135
  empty_dirs.each do |dir|
106
- Pkg::Util::File.stub(:empty_dir?).with(dir).and_return(true)
107
- Dir.stub(:[]).with(dir).and_return(dir)
108
- FileUtils.should_receive(:mkpath).with(File.join(workdir, dir), :verbose => false)
109
- FileUtils.should_not_receive(:cp).with(dir, File.join(workdir, dir), :verbose => false, :preserve => true)
136
+ allow(Pkg::Util::File).to receive(:empty_dir?).with(dir).and_return(true)
137
+ allow(Dir).to receive(:[]).with(dir).and_return(dir)
138
+ expect(FileUtils)
139
+ .to receive(:mkpath)
140
+ .with(File.join(workdir, dir), verbose: false)
141
+ expect(FileUtils)
142
+ .not_to receive(:cp)
143
+ .with(dir, File.join(workdir, dir), verbose: false, preserve: true)
110
144
  patterns << dir
111
145
  end
112
146
 
@@ -115,25 +149,28 @@ describe "Pkg::Util::File" do
115
149
  end
116
150
  end
117
151
 
118
- describe "#directories" do
119
- it "returns nil if there is no directory" do
120
- File.should_receive(:directory?).with("/tmp").and_return(false)
121
- Pkg::Util::File.directories("/tmp").should be_nil
152
+ describe '#directories' do
153
+ it 'returns nil if there is no directory' do
154
+ expect(File).to receive(:directory?).with('/tmp').and_return(false)
155
+ expect(Pkg::Util::File.directories('/tmp')).to be_nil
122
156
  end
123
157
 
124
- it "returns the empty array if there are no dirs in the directory" do
125
- File.should_receive(:directory?).with("/tmp").and_return(true)
126
- Dir.should_receive(:glob).with("*").and_return([])
127
- Pkg::Util::File.directories("/tmp").should be_empty
158
+ it 'returns the empty array if there are no dirs in the directory' do
159
+ expect(File).to receive(:directory?).with('/tmp').and_return(true)
160
+ expect(Dir).to receive(:glob).with('*').and_return([])
161
+ expect(Pkg::Util::File.directories("/tmp")).to be_empty
128
162
  end
129
163
 
130
- it "returns an array of the top level directories inside a directory" do
131
- File.stub(:directory?) { false }
132
- ["/tmp", "/tmp/dir", "/tmp/other_dir"].each do |dir|
133
- File.should_receive(:directory?).with(dir).and_return(true)
164
+ it 'returns an array of the top level directories inside a directory' do
165
+ allow(File).to receive(:directory?).and_return(false)
166
+ ['/tmp', '/tmp/dir', '/tmp/other_dir'].each do |dir|
167
+ expect(File).to receive(:directory?).with(dir).and_return(true)
134
168
  end
135
- Dir.should_receive(:glob).with("*").and_return(["/tmp/file", "/tmp/dir", "/tmp/other_dir"])
136
- Pkg::Util::File.directories("/tmp").should eq(["/tmp/dir", "/tmp/other_dir"])
169
+ expect(Dir)
170
+ .to receive(:glob)
171
+ .with('*')
172
+ .and_return(['/tmp/file', '/tmp/dir', '/tmp/other_dir'])
173
+ expect(Pkg::Util::File.directories('/tmp')).to eq(['/tmp/dir', '/tmp/other_dir'])
137
174
  end
138
175
  end
139
176
  end