mcollective-client 1.3.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of mcollective-client might be problematic. Click here for more details.

@@ -9,9 +9,22 @@ module MCollective
9
9
  PluginPackager.expects(:get_metadata).once.returns({:name => "foo"})
10
10
  end
11
11
 
12
- it "should replace spaces in the package name with underscores" do
13
- plugin = StandardDefinition.new(".", "test plugin", nil, nil, nil, :fooplugin)
14
- plugin.metadata[:name].should == "test_plugin"
12
+ describe "#initialize" do
13
+ it "should replace spaces in the package name with dashes" do
14
+ plugin = StandardDefinition.new(".", "test plugin", nil, nil, nil, nil, [], {}, "testplugin")
15
+ plugin.metadata[:name].should == "test-plugin"
16
+ end
17
+
18
+ it "should set dependencies if present" do
19
+ plugin = StandardDefinition.new(".", "test plugin", nil, nil, nil, nil, ["foo"], {}, "testplugin")
20
+ plugin.dependencies.should == ["foo"]
21
+ end
22
+
23
+ it "should set mc server, client and common dependencies" do
24
+ plugin = StandardDefinition.new(".", "test plugin", nil, nil, nil, nil, [], {:server => "pe-mcollective"}, "testplugin")
25
+ plugin.mcserver.should == "pe-mcollective"
26
+ plugin.mccommon.should == "mcollective-common"
27
+ end
15
28
  end
16
29
 
17
30
  describe "#identify_packages" do
@@ -19,9 +32,9 @@ module MCollective
19
32
  StandardDefinition.any_instance.expects(:common).once.returns(:check)
20
33
  StandardDefinition.any_instance.expects(:plugin).once.returns(:check)
21
34
 
22
- plugin = StandardDefinition.new(".", nil, nil, nil, nil, :fooplugin)
35
+ plugin = StandardDefinition.new(".", nil, nil, nil, nil, nil, [], {}, "testplugin")
23
36
  plugin.packagedata[:common].should == :check
24
- plugin.packagedata[:fooplugin].should == :check
37
+ plugin.packagedata["testplugin"].should == :check
25
38
  end
26
39
  end
27
40
 
@@ -30,25 +43,25 @@ module MCollective
30
43
  it "should return nil if the plugin doesn't contain any files" do
31
44
  StandardDefinition.any_instance.expects(:common).returns(nil)
32
45
  PluginPackager.expects(:check_dir_present).returns(false)
33
- plugin = StandardDefinition.new(".", nil, nil, nil, nil, :fooplugin)
34
- plugin.packagedata[:fooplugin].should == nil
46
+ plugin = StandardDefinition.new(".", nil, nil, nil, nil, nil, [], {}, "testplugin")
47
+ plugin.packagedata["testplugin"].should == nil
35
48
  end
36
49
 
37
50
  it "should add plugin files to the file list" do
38
51
  StandardDefinition.any_instance.expects(:common).returns(nil)
39
52
  PluginPackager.expects(:check_dir_present).returns(true)
40
- Dir.expects(:glob).with("./fooplugin/*").returns(["file.rb"])
41
- plugin = StandardDefinition.new(".", nil, nil, nil, nil, :fooplugin)
42
- plugin.packagedata[:fooplugin][:files].should == ["file.rb"]
53
+ Dir.expects(:glob).with("./testplugin/*").returns(["file.rb"])
54
+ plugin = StandardDefinition.new(".", nil, nil, nil, nil, nil, [], {}, "testplugin")
55
+ plugin.packagedata["testplugin"][:files].should == ["file.rb"]
43
56
  end
44
57
 
45
58
  it "should add common package as dependency if present" do
46
59
  StandardDefinition.any_instance.expects(:common).returns(true)
47
60
  PluginPackager.expects(:check_dir_present).returns(true)
48
- Dir.expects(:glob).with("./fooplugin/*").returns(["file.rb"])
49
- plugin = StandardDefinition.new(".", nil, nil, nil, nil, :fooplugin)
50
- plugin.packagedata[:fooplugin][:files].should == ["file.rb"]
51
- plugin.packagedata[:fooplugin][:dependencies].should == ["mcollective", "mcollective-foo-common"]
61
+ Dir.expects(:glob).with("./testplugin/*").returns(["file.rb"])
62
+ plugin = StandardDefinition.new(".", nil, nil, nil, nil, nil, [], {}, "testplugin")
63
+ plugin.packagedata["testplugin"][:files].should == ["file.rb"]
64
+ plugin.packagedata["testplugin"][:dependencies].should == ["mcollective", "mcollective-foo-common"]
52
65
  end
53
66
  end
54
67
 
@@ -59,14 +72,14 @@ module MCollective
59
72
 
60
73
  it "should return nil if common doesn't contain any files" do
61
74
  PluginPackager.expects(:check_dir_present).returns(false)
62
- plugin = StandardDefinition.new(".", nil, nil, nil, nil, :fooplugin)
75
+ plugin = StandardDefinition.new(".", nil, nil, nil, nil, nil, [], {}, "testplugin")
63
76
  plugin.packagedata[:common].should == nil
64
77
  end
65
78
 
66
79
  it "should add common files to the file list" do
67
80
  PluginPackager.expects(:check_dir_present).returns(true)
68
81
  Dir.expects(:glob).with("./util/*").returns(["common.rb"])
69
- plugin = StandardDefinition.new(".", nil, nil, nil, nil, :fooplugin)
82
+ plugin = StandardDefinition.new(".", nil, nil, nil, nil, nil, [], {}, "testplugin")
70
83
  plugin.packagedata[:common][:files].should == ["common.rb"]
71
84
  end
72
85
  end
@@ -0,0 +1,285 @@
1
+ #!/usr/bin/env rspec
2
+ require 'spec_helper'
3
+ require File.dirname(__FILE__) + '/../../../../../plugins/mcollective/pluginpackager/debpackage_packager.rb'
4
+
5
+ module MCollective
6
+ module PluginPackager
7
+ describe DebpackagePackager do
8
+
9
+ let(:maketmpdir) do
10
+ tmpdir = Dir.mktmpdir("mc-test")
11
+ @tmpdirs << tmpdir
12
+ tmpdir
13
+ end
14
+
15
+ before :all do
16
+ @tmpdirs = []
17
+ end
18
+
19
+ before :each do
20
+ PluginPackager.stubs(:build_tool?).with("debuild").returns(true)
21
+ @plugin = mock()
22
+ end
23
+
24
+ after :all do
25
+ @tmpdirs.each{|tmpdir| FileUtils.rm_rf tmpdir if File.directory? tmpdir}
26
+ end
27
+
28
+ describe "#initialize" do
29
+ it "should raise an exception if debuild isn't present" do
30
+ PluginPackager.expects(:build_tool?).with("debuild").returns(false)
31
+ expect{
32
+ DebpackagePackager.new("plugin")
33
+ }.to raise_error RuntimeError, "package 'debuild' is not installed"
34
+ end
35
+
36
+ it "should set the correct libdir and verbose value" do
37
+ PluginPackager.expects(:build_tool?).with("debuild").returns(true)
38
+ packager = DebpackagePackager.new("plugin", nil, nil, true)
39
+ packager.libdir.should == "/usr/share/mcollective/plugins/mcollective/"
40
+ packager.verbose.should == true
41
+ end
42
+ end
43
+
44
+ describe "#create_packages" do
45
+ before :each do
46
+ @packager = DebpackagePackager.new(@plugin)
47
+ @plugin.stubs(:packagedata).returns({:test => {:files => ["test.rb"]}})
48
+ @plugin.stubs(:metadata).returns({:name => "test_plugin", :version => "1"})
49
+ @plugin.stubs(:iteration).returns("1")
50
+ @packager.stubs(:prepare_tmpdirs)
51
+ @packager.stubs(:create_package)
52
+ @packager.stubs(:cleanup_tmpdirs)
53
+ Dir.stubs(:mktmpdir).with("mcollective_packager").returns("/tmp")
54
+ Dir.stubs(:mkdir)
55
+ end
56
+
57
+ it "should set the package instance variables" do
58
+ @packager.create_packages
59
+ @packager.current_package_type.should == :test
60
+ @packager.current_package_data.should == {:files => ["test.rb"]}
61
+ @packager.current_package_shortname.should == "mcollective-test_plugin-test"
62
+ @packager.current_package_fullname.should == "mcollective-test_plugin-test_1-1"
63
+ end
64
+
65
+ it "Should create the build dir" do
66
+ Dir.expects(:mkdir).with("/tmp/mcollective-test_plugin-test_1-1")
67
+ @packager.create_packages
68
+ end
69
+
70
+ it "should create packages" do
71
+ @packager.expects(:create_package)
72
+ @packager.create_packages
73
+ end
74
+ end
75
+
76
+ describe "#create_package" do
77
+ it "should raise an exception if the package cannot be created" do
78
+ packager = DebpackagePackager.new(@plugin)
79
+ packager.stubs(:create_file).raises("test exception")
80
+ expect{
81
+ packager.create_package
82
+ }.to raise_error RuntimeError, "Could not build package - test exception"
83
+ end
84
+
85
+ it "should correctly create a package" do
86
+ packager = DebpackagePackager.new(@plugin, nil, nil, true)
87
+
88
+ packager.expects(:create_file).with("control")
89
+ packager.expects(:create_file).with("Makefile")
90
+ packager.expects(:create_file).with("compat")
91
+ packager.expects(:create_file).with("rules")
92
+ packager.expects(:create_file).with("copyright")
93
+ packager.expects(:create_file).with("changelog")
94
+ packager.expects(:create_tar)
95
+ packager.expects(:create_install)
96
+ packager.expects(:create_preandpost_install)
97
+
98
+ packager.build_dir = "/tmp"
99
+ packager.tmpdir = "/tmp"
100
+ packager.current_package_fullname = "test"
101
+ PluginPackager.expects(:safe_system).with("debuild -i -us -uc")
102
+ FileUtils.expects(:cp).with(File.join("/tmp", "test_all.deb"), ".")
103
+ packager.expects(:puts).with("Created package test")
104
+
105
+ packager.create_package
106
+ end
107
+
108
+ it "should add a signature if one is given" do
109
+ packager = DebpackagePackager.new(@plugin, nil, "test", true)
110
+
111
+ packager.expects(:create_file).with("control")
112
+ packager.expects(:create_file).with("Makefile")
113
+ packager.expects(:create_file).with("compat")
114
+ packager.expects(:create_file).with("rules")
115
+ packager.expects(:create_file).with("copyright")
116
+ packager.expects(:create_file).with("changelog")
117
+ packager.expects(:create_tar)
118
+ packager.expects(:create_install)
119
+ packager.expects(:create_preandpost_install)
120
+
121
+ packager.build_dir = "/tmp"
122
+ packager.tmpdir = "/tmp"
123
+ packager.current_package_fullname = "test"
124
+ PluginPackager.expects(:safe_system).with("debuild -i -ktest")
125
+ FileUtils.expects(:cp).with(File.join("/tmp", "test_all.deb"), ".")
126
+ packager.expects(:puts).with("Created package test")
127
+
128
+ packager.create_package
129
+ end
130
+ end
131
+
132
+ describe "#create_preandpost_install" do
133
+ before :each do
134
+ @packager = DebpackagePackager.new(@plugin)
135
+ end
136
+
137
+ it "should raise an exception if preinstall is not null and preinstall script isn't present" do
138
+ @plugin.stubs(:preinstall).returns("myscript")
139
+ File.expects(:exists?).with("myscript").returns(false)
140
+ expect{
141
+ @packager.create_preandpost_install
142
+ }.to raise_error RuntimeError, "pre-install script 'myscript' not found"
143
+ end
144
+
145
+ it "should raise an exception if postinstall is not null and postinstall script isn't present" do
146
+ @plugin.stubs(:preinstall).returns(nil)
147
+ @plugin.stubs(:postinstall).returns("myscript")
148
+ File.expects(:exists?).with("myscript").returns(false)
149
+ expect{
150
+ @packager.create_preandpost_install
151
+ }.to raise_error RuntimeError, "post-install script 'myscript' not found"
152
+ end
153
+
154
+ it "should copy the preinstall and postinstall scripts to the correct directory with the correct name" do
155
+ @plugin.stubs(:postinstall).returns("myscript")
156
+ @plugin.stubs(:preinstall).returns("myscript")
157
+ @packager.build_dir = "/tmp/"
158
+ @packager.current_package_shortname = "test"
159
+ File.expects(:exists?).with("myscript").twice.returns(true)
160
+ FileUtils.expects(:cp).with("myscript", "/tmp/debian/test.preinst")
161
+ FileUtils.expects(:cp).with("myscript", "/tmp/debian/test.postinst")
162
+ @packager.create_preandpost_install
163
+ end
164
+ end
165
+
166
+ describe "#create_install" do
167
+ before :each do
168
+ @packager = DebpackagePackager.new(@plugin)
169
+ end
170
+
171
+ it "should raise an exception if the install file can't be created" do
172
+ File.expects(:join).raises("test error")
173
+ expect{
174
+ @packager.create_install
175
+ }.to raise_error RuntimeError, "Could not create install file - test error"
176
+ end
177
+
178
+ it "should copy the package install file to the correct location" do
179
+ tmpdir = maketmpdir
180
+ Dir.mkdir(File.join(tmpdir, "debian"))
181
+ @packager.build_dir = tmpdir
182
+ @packager.current_package_shortname = "test"
183
+ @packager.current_package_data = {:files => ["foo.rb"]}
184
+ @packager.create_install
185
+ install_file = File.read("#{tmpdir}/debian/test.install")
186
+ install_file.should == "/usr/share/mcollective/plugins/mcollective/foo.rb /usr/share/mcollective/plugins/mcollective/.\n"
187
+ end
188
+ end
189
+
190
+ describe "#create_tar" do
191
+ before :each do
192
+ @packager = DebpackagePackager.new(@plugin, nil, true)
193
+ end
194
+
195
+ it "should raise an exception if the tarball can't be built" do
196
+ PluginPackager.expects(:do_quietly?).raises("test error")
197
+ expect{
198
+ @packager.create_tar
199
+ }.to raise_error RuntimeError, "Could not create tarball - test error"
200
+ end
201
+
202
+ it "should create a tarball containing the package files" do
203
+ @packager.tmpdir = "/tmp"
204
+ @packager.build_dir = "/build_dir"
205
+ @packager.current_package_shortname = "test"
206
+ @plugin.stubs(:metadata).returns(@plugin)
207
+ @plugin.stubs(:[]).with(:version).returns("1")
208
+ @plugin.stubs(:iteration).returns("1")
209
+ PluginPackager.expects(:safe_system).with("tar -Pcvzf /tmp/test_1.orig.tar.gz /build_dir")
210
+ @packager.create_tar
211
+ end
212
+ end
213
+
214
+ describe "#create_file" do
215
+ before :each do
216
+ @packager = DebpackagePackager.new(@plugin)
217
+ end
218
+
219
+ it "should raise an exception if the file can't be created" do
220
+ File.expects(:dirname).raises("test error")
221
+ expect{
222
+ @packager.create_file("test")
223
+ }.to raise_error RuntimeError, "could not create test file - test error"
224
+ end
225
+
226
+ it "should place a build file in the debian directory" do
227
+ tmpdir = maketmpdir
228
+ Dir.mkdir(File.join(tmpdir, "debian"))
229
+ @packager.build_dir = tmpdir
230
+ File.expects(:read).returns("testfile")
231
+ @packager.create_file("testfile")
232
+ File.unstub(:read)
233
+ result = File.read(File.join(tmpdir, "debian", "testfile"))
234
+ result.stubs(:result)
235
+ result.should == "testfile\n"
236
+ end
237
+ end
238
+
239
+ describe "#prepare_tmpdirs" do
240
+ before :all do
241
+ @tmpfile = Tempfile.new("mc-file").path
242
+ end
243
+
244
+ after :all do
245
+ FileUtils.rm(@tmpfile)
246
+ end
247
+
248
+ it "should create the correct tmp dirs and copy package contents to correct dir" do
249
+ packager = DebpackagePackager.new(@plugin)
250
+ tmpdir = maketmpdir
251
+ packager.build_dir = tmpdir
252
+ @plugin.stubs(:target_path).returns("")
253
+
254
+ packager.prepare_tmpdirs({:files => [@tmpfile]})
255
+ File.directory?(tmpdir).should == true
256
+ File.directory?(File.join(tmpdir, "debian")).should == true
257
+ File.exists?(File.join(tmpdir, packager.libdir, "tmp", File.basename(@tmpfile))).should == true
258
+ end
259
+ end
260
+
261
+ describe "#cleanup_tmpdirs" do
262
+ before :all do
263
+ @tmpdir = maketmpdir
264
+ end
265
+
266
+ before :each do
267
+ @packager = DebpackagePackager.new(@plugin)
268
+ end
269
+
270
+ it "should cleanup temp directories" do
271
+ @packager.tmpdir = @tmpdir
272
+ @packager.cleanup_tmpdirs
273
+ File.directory?(@tmpdir).should == false
274
+ end
275
+
276
+ it "should not delete any directories if @tmpdir isn't present" do
277
+ @packager = DebpackagePackager.new(@plugin)
278
+ @packager.tmpdir = rand.to_s
279
+ FileUtils.expects(:rm_r).never
280
+ @packager.cleanup_tmpdirs
281
+ end
282
+ end
283
+ end
284
+ end
285
+ end
@@ -7,222 +7,50 @@ require File.dirname(__FILE__) + '/../../../../../plugins/mcollective/pluginpack
7
7
 
8
8
  module MCollective
9
9
  module PluginPackager
10
- describe OspackagePackager do
11
- before :all do
12
-
13
- class OspackagePackager
14
- ENV = {"PATH" => "."}
15
- end
16
-
17
- class TestPlugin
18
- attr_accessor :path, :packagedata, :metadata, :target_path, :vendor, :iteration
19
- attr_accessor :postinstall
20
-
21
- def initialize
22
- @path = "/tmp"
23
- @packagedata = {:testpackage => {:files => ["/tmp/test.rb"],
24
- :dependencies => ["mcollective"],
25
- :description => "testpackage"}}
26
- @iteration = 1
27
- @postinstall = "/tmp/test.sh"
28
- @metadata = {:name => "testplugin",
29
- :description => "A Test Plugin",
30
- :author => "Psy",
31
- :license => "Apache 2",
32
- :version => "0",
33
- :url => "http://foo.bar.com",
34
- :timeout => 5}
35
- @vendor = "Puppet Labs"
36
- @target_path = "/tmp"
37
- end
38
- end
39
-
40
- @testplugin = TestPlugin.new
41
- end
42
-
43
- describe "#initialize" do
44
- it "should correctly identify a RedHat system" do
45
- File.expects(:exists?).with("/etc/redhat-release").returns(true)
46
- OspackagePackager.any_instance.expects(:build_tool?).with("rpmbuild").returns(true)
47
-
48
- ospackage = OspackagePackager.new(@testplugin)
49
- ospackage.libdir.should == "usr/libexec/mcollective/mcollective/"
50
- ospackage.package_type.should == "RPM"
51
- end
52
-
53
- it "should correctly identify a Debian System" do
54
- File.expects(:exists?).with("/etc/redhat-release").returns(false)
55
- File.expects(:exists?).with("/etc/debian_version").returns(true)
56
- OspackagePackager.any_instance.expects(:build_tool?).with("ar").returns(true)
10
+ describe "#initialize" do
57
11
 
58
- ospackage = OspackagePackager.new(@testplugin)
59
- ospackage.libdir.should == "usr/share/mcollective/plugins/mcollective"
60
- ospackage.package_type.should == "Deb"
61
- end
62
-
63
- it "should raise an exception if it cannot identify the operating system" do
64
- File.expects(:exists?).with("/etc/redhat-release").returns(false)
65
- File.expects(:exists?).with("/etc/debian_version").returns(false)
66
-
67
- expect{
68
- ospackage = OspackagePackager.new(@testplugin)
69
- }.to raise_exception "error: cannot identify operating system."
70
- end
71
-
72
- it "should identify if rpmbuild is present for RedHat systems" do
73
- File.expects(:exists?).with("/etc/redhat-release").returns(true)
74
- File.expects(:exists?).with("./rpmbuild").returns(true)
75
- ospackage = OspackagePackager.new(@testplugin)
76
- end
77
-
78
- it "should raise an exception if rpmbuild is not present for RedHat systems" do
79
- File.expects(:exists?).with("/etc/redhat-release").returns(true)
80
- File.expects(:exists?).with("./rpmbuild").returns(false)
81
- expect{
82
- ospackage = OspackagePackager.new(@testplugin)
83
- }.to raise_error "error: package 'rpm-build' is not installed."
84
- end
85
-
86
- it "should identify if ar is present for Debian systems" do
87
- File.expects(:exists?).with("/etc/redhat-release").returns(false)
88
- File.expects(:exists?).with("/etc/debian_version").returns(true)
89
- File.expects(:exists?).with("./ar").returns(true)
90
-
91
- ospackage = OspackagePackager.new(@testplugin)
92
- end
93
-
94
- it "should raise an exception if the build tool is not present" do
95
- File.expects(:exists?).with("/etc/redhat-release").returns(false)
96
- File.expects(:exists?).with("/etc/debian_version").returns(true)
97
- File.expects(:exists?).with("./ar").returns(false)
98
- expect{
99
- ospackage = OspackagePackager.new(@testplugin)
100
- }.to raise_error "error: package 'ar' is not installed."
101
- end
102
- end
103
-
104
- describe "#create_packages" do
105
- it "should prepare temp directories, create a package and clean up when done" do
106
- OspackagePackager.any_instance.stubs(:gem).with("fpm", "= 0.4.3")
107
- OspackagePackager.any_instance.stubs(:require).with("fpm")
108
- OspackagePackager.any_instance.stubs(:require).with("tmpdir")
109
-
110
- File.expects(:exists?).with("/etc/redhat-release").returns(true)
111
- OspackagePackager.any_instance.expects(:build_tool?).with("rpmbuild").returns(true)
112
- Dir.expects(:mktmpdir).with("mcollective_packager").returns("/tmp/mcollective_packager")
113
- FileUtils.expects(:mkdir_p).with("/tmp/mcollective_packager/usr/libexec/mcollective/mcollective/")
114
-
115
- ospackage = OspackagePackager.new(@testplugin)
116
- ospackage.expects(:prepare_tmpdirs).once
117
- ospackage.expects(:create_package).once
118
- ospackage.expects(:cleanup_tmpdirs).once
119
-
120
- ospackage.create_packages
121
- end
12
+ before :all do
13
+ @packager = mock()
14
+ @packager.stubs(:new)
122
15
  end
123
16
 
124
- describe "#create_package" do
125
- before :all do
126
- module ::FPM
127
- class Package
128
- class Dir
129
- end
130
- class RPM
131
- end
132
- end
133
- end
134
-
135
- @fpm_dir = mock
136
- @fpm_type = mock
137
- @package = mock
138
- @fpm_dir.stubs(:convert).returns(@fpm_type)
139
- @fpm_dir.stubs(:attributes).returns({:chdir => nil})
140
- @fpm_dir.stubs(:input)
141
- @package.stubs(:metadata).returns({:name => "testpackage", :version => "1"})
142
- @package.stubs(:iteration).returns("1")
143
- OspackagePackager.any_instance.stubs(:package).returns(@package)
144
- end
145
-
146
- it "should run fpm with the correct parameters" do
147
- File.stubs(:exists?).returns(true)
148
- OspackagePackager.any_instance.expects(:build_tool?).returns(true)
149
- ospackage = OspackagePackager.new(@testpackage)
150
- ::FPM::Package::Dir.stubs(:new).returns(@fpm_dir)
151
- ospackage.expects(:params)
152
- ospackage.expects(:do_quietly?)
153
- @fpm_dir.expects(:cleanup)
154
- @fpm_type.expects(:cleanup)
155
- ospackage.expects(:puts).with("Successfully built RPM 'mcollective-testpackage-testpackage-1-1.noarch.rpm'")
156
- ospackage.create_package(:testpackage, {:files => ["/tmp/test.rb"], :description => "testpackage", :dependencies =>"dependencies"})
157
- end
17
+ it "should correctly set members and create the correct packager on redhat" do
18
+ File.expects(:exists?).with("/etc/redhat-release").returns(true)
19
+ PluginPackager.expects(:[]).with("RpmpackagePackager").returns(@packager)
20
+ ospackager = OspackagePackager.new("package")
21
+ ospackager.package_type.should == "RPM"
158
22
  end
159
23
 
160
- describe "#do_quietly?" do
161
- it "should run a block quietly" do
162
- require 'stringio'
163
-
164
- File.expects(:exists?).with("/etc/redhat-release").returns(true)
165
- OspackagePackager.any_instance.expects(:build_tool?).with("rpmbuild").returns(true)
166
- ospackage = OspackagePackager.new(@testplugin)
167
-
168
- old_stdout = $stdout
169
- new_stdout = File.open("/tmp/output.txt", "w+")
170
- $stdout = new_stdout
171
- ospackage.do_quietly?{puts "teststring"}
172
- $stdout = old_stdout
173
- File.read("/tmp/output.txt").should == ""
174
- FileUtils.rm("/tmp/output.txt")
175
- end
24
+ it "should correctly set members and create the correct packager on debian" do
25
+ File.expects(:exists?).with("/etc/redhat-release").returns(false)
26
+ File.expects(:exists?).with("/etc/debian_version").returns(true)
27
+ PluginPackager.expects(:[]).with("DebpackagePackager").returns(@packager)
28
+ ospackager = OspackagePackager.new("package")
29
+ ospackager.package_type.should == "Deb"
176
30
  end
177
31
 
178
- describe "#params" do
179
- it "should create all paramaters needed by fpm" do
180
- File.expects(:exists?).with("/etc/redhat-release").returns(true)
181
- OspackagePackager.any_instance.expects(:build_tool?).with("rpmbuild").returns(true)
182
- ospackage = OspackagePackager.new(@testplugin)
183
-
184
- fpm_type = mock
185
- fpm_type.expects(:name=).with("mcollective-testplugin-testpackage")
186
- fpm_type.expects(:maintainer=).with("Psy")
187
- fpm_type.expects(:version=).with("0")
188
- fpm_type.expects(:url=).with("http://foo.bar.com")
189
- fpm_type.expects(:license=).with("Apache 2")
190
- fpm_type.expects(:iteration=).with(1)
191
- fpm_type.expects(:vendor=).with("Puppet Labs")
192
- fpm_type.expects(:architecture=).with("all")
193
- fpm_type.expects(:description=).with("A Test Plugin\n\ntestpackage")
194
- fpm_type.expects(:dependencies=).with(["mcollective"])
195
- fpm_type.expects(:scripts).returns({"post-install" => nil})
196
-
197
- ospackage.params(fpm_type,:testpackage, @testplugin.packagedata[:testpackage])
198
-
199
- end
32
+ it "should raise an exception if the os can't be identified" do
33
+ File.expects(:exists?).with("/etc/redhat-release").returns(false)
34
+ File.expects(:exists?).with("/etc/debian_version").returns(false)
35
+ expect{
36
+ OspackagePackager.new("package")
37
+ }.to raise_error RuntimeError
200
38
  end
39
+ end
201
40
 
202
- describe "#prepare_tmpdirs" do
203
- it "should create temp directories and copy package files" do
204
- File.expects(:exists?).with("/etc/redhat-release").returns(true)
205
- OspackagePackager.any_instance.expects(:build_tool?).with("rpmbuild").returns(true)
206
- File.expects(:directory?).with("/tmp/mcollective_packager/").returns(false)
207
- FileUtils.expects(:mkdir_p).with("/tmp/mcollective_packager/")
208
- FileUtils.expects(:cp_r).with("/tmp/test.rb", "/tmp/mcollective_packager/")
209
-
210
- ospackage = OspackagePackager.new(@testplugin)
211
- ospackage.workingdir = "/tmp/mcollective_packager/"
212
- ospackage.prepare_tmpdirs(@testplugin.packagedata[:testpackage])
213
- end
41
+ describe "#create_packages" do
42
+ before :all do
43
+ @packager = mock
44
+ @packager.stubs(:new).returns(@packager)
214
45
  end
215
46
 
216
- describe "#cleanup_tmpdirs" do
217
- it "should remove temp directories" do
218
- File.expects(:exists?).with("/etc/redhat-release").returns(true)
219
- OspackagePackager.any_instance.expects(:build_tool?).with("rpmbuild").returns(true)
220
- FileUtils.expects(:rm_r).with("/tmp/mcollective_packager/")
221
-
222
- ospackage = OspackagePackager.new(@testplugin)
223
- ospackage.tmpdir = "/tmp/mcollective_packager/"
224
- ospackage.cleanup_tmpdirs
225
- end
47
+ it "should call a packagers create_packages class" do
48
+ File.expects(:exists?).with("/etc/redhat-release").returns(true)
49
+ PluginPackager.expects(:[]).with("RpmpackagePackager").returns(@packager)
50
+ @packager.expects(:create_packages)
51
+ ospackager = OspackagePackager.new("package")
52
+ ospackager.class.should == OspackagePackager
53
+ ospackager.create_packages
226
54
  end
227
55
  end
228
56
  end