linux_admin 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
data/spec/spec_helper.rb CHANGED
@@ -1,31 +1,82 @@
1
1
  # This file was generated by the `rspec --init` command. Conventionally, all
2
2
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
- # Require this file using `require "spec_helper"` to ensure that it is only
4
- # loaded once.
3
+ # The generated `.rspec` file contains `--require spec_helper` which will cause this
4
+ # file to always be loaded, without a need to explicitly require it in any files.
5
+ #
6
+ # Given that it is always loaded, you are encouraged to keep this file as
7
+ # light-weight as possible. Requiring heavyweight dependencies from this file
8
+ # will add to the boot time of your test suite on EVERY test run, even for an
9
+ # individual file that may not need all of that loaded. Instead, make a
10
+ # separate helper file that requires this one and then use it only in the specs
11
+ # that actually need it.
12
+ #
13
+ # The `.rspec` file also contains a few flags that are not defaults but that
14
+ # users commonly want.
5
15
  #
6
16
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
17
  RSpec.configure do |config|
8
- config.treat_symbols_as_metadata_keys_with_true_values = true
18
+ # The settings below are suggested to provide a good initial experience
19
+ # with RSpec, but feel free to customize to your heart's content.
20
+
21
+ # These two settings work together to allow you to limit a spec run
22
+ # to individual examples or groups you care about by tagging them with
23
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
24
+ # get run.
25
+ config.filter_run :focus
9
26
  config.run_all_when_everything_filtered = true
10
- # config.filter_run :focus
27
+
28
+ # Many RSpec users commonly either run the entire suite or an individual
29
+ # file, and it's useful to allow more verbose output when running an
30
+ # individual spec file.
31
+ if config.files_to_run.one?
32
+ # Use the documentation formatter for detailed output,
33
+ # unless a formatter has already been configured
34
+ # (e.g. via a command-line flag).
35
+ config.default_formatter = 'doc'
36
+ end
37
+
38
+ # Print the 10 slowest examples and example groups at the
39
+ # end of the spec run, to help surface which specs are running
40
+ # particularly slow.
41
+ # config.profile_examples = 10
11
42
 
12
43
  # Run specs in random order to surface order dependencies. If you find an
13
44
  # order dependency and want to debug it, you can fix the order by providing
14
45
  # the seed, which is printed after each run.
15
46
  # --seed 1234
16
- config.order = 'random'
47
+ config.order = :random
17
48
 
18
- config.before do
19
- Kernel.stub(:spawn).and_raise("Spawning is not permitted in specs. Please change your spec to use expectations/stubs.")
20
- # by default, have it say it is running Red Hat linux
21
- stub_distro
49
+ # Seed global randomization in this process using the `--seed` CLI option.
50
+ # Setting this allows you to use `--seed` to deterministically reproduce
51
+ # test failures related to randomization by passing the same `--seed` value
52
+ # as the one that triggered the failure.
53
+ Kernel.srand config.seed
54
+
55
+ # rspec-expectations config goes here. You can use an alternate
56
+ # assertion/expectation library such as wrong or the stdlib/minitest
57
+ # assertions if you prefer.
58
+ config.expect_with :rspec do |expectations|
59
+ # Enable only the newer, non-monkey-patching expect syntax.
60
+ # For more details, see:
61
+ # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
62
+ expectations.syntax = :expect
63
+ end
64
+
65
+ # rspec-mocks config goes here. You can use an alternate test double
66
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
67
+ config.mock_with :rspec do |mocks|
68
+ # Enable only the newer, non-monkey-patching expect syntax.
69
+ # For more details, see:
70
+ # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
71
+ mocks.syntax = :expect
72
+
73
+ # Prevents you from mocking or stubbing a method that does not exist on
74
+ # a real object. This is generally recommended.
75
+ mocks.verify_partial_doubles = true
22
76
  end
23
77
 
24
78
  config.after do
25
79
  clear_caches
26
-
27
- # reset the distro, tested in various placed & used extensively
28
- LinuxAdmin::Distros.instance_variable_set(:@local, nil)
29
80
  end
30
81
  end
31
82
 
@@ -39,13 +90,13 @@ require 'linux_admin'
39
90
 
40
91
  def etc_issue_contains(contents)
41
92
  LinuxAdmin::EtcIssue.instance.send(:refresh)
42
- allow(File).to receive(:exists?).with('/etc/issue').at_least(:once).and_return(true)
93
+ allow(File).to receive(:exist?).with('/etc/issue').at_least(:once).and_return(true)
43
94
  allow(File).to receive(:read).with('/etc/issue').at_least(:once).and_return(contents)
44
95
  end
45
96
 
46
97
  def stub_distro(distro = LinuxAdmin::Distros.rhel)
47
98
  # simply alias test distro to redhat distro for time being
48
- LinuxAdmin::Distros.stub(:local => distro)
99
+ allow(LinuxAdmin::Distros).to receive_messages(:local => distro)
49
100
  end
50
101
 
51
102
  def data_file_path(to)
@@ -58,4 +109,7 @@ end
58
109
 
59
110
  def clear_caches
60
111
  LinuxAdmin::RegistrationSystem.instance_variable_set(:@registration_type, nil)
112
+
113
+ # reset the distro, tested in various placed & used extensively
114
+ LinuxAdmin::Distros.instance_variable_set(:@local, nil)
61
115
  end
@@ -1,20 +1,18 @@
1
- require 'spec_helper'
2
-
3
1
  describe LinuxAdmin::SubscriptionManager do
4
2
  context "#registered?" do
5
3
  it "system with subscription-manager commands" do
6
- described_class.any_instance.should_receive(:run).once.with("subscription-manager identity").and_return(double(:exit_status => 0))
7
- expect(described_class.new.registered?).to be_true
4
+ expect_any_instance_of(described_class).to receive(:run).once.with("subscription-manager identity").and_return(double(:exit_status => 0))
5
+ expect(described_class.new.registered?).to be_truthy
8
6
  end
9
7
 
10
8
  it "system without subscription-manager commands" do
11
- described_class.any_instance.should_receive(:run).once.with("subscription-manager identity").and_return(double(:exit_status => 255))
12
- expect(described_class.new.registered?).to be_false
9
+ expect_any_instance_of(described_class).to receive(:run).once.with("subscription-manager identity").and_return(double(:exit_status => 255))
10
+ expect(described_class.new.registered?).to be_falsey
13
11
  end
14
12
  end
15
13
 
16
14
  it "#refresh" do
17
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager refresh")
15
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager refresh")
18
16
  described_class.new.refresh
19
17
  end
20
18
 
@@ -39,15 +37,15 @@ describe LinuxAdmin::SubscriptionManager do
39
37
  run_params.store_path(:params, "--serverurl=", "https://server.url")
40
38
  base_options.store_path(:server_url, "https://server.url")
41
39
 
42
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager register", run_params)
43
- LinuxAdmin::Rpm.should_receive(:upgrade).with("http://server.url/pub/candlepin-cert-consumer-latest.noarch.rpm")
40
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager register", run_params)
41
+ expect(LinuxAdmin::Rpm).to receive(:upgrade).with("http://server.url/pub/katello-ca-consumer-latest.noarch.rpm")
44
42
 
45
43
  described_class.new.register(base_options)
46
44
  end
47
45
 
48
46
  it "without server_url" do
49
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager register", run_params)
50
- described_class.any_instance.should_not_receive(:install_server_certificate)
47
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager register", run_params)
48
+ expect_any_instance_of(described_class).not_to receive(:install_server_certificate)
51
49
 
52
50
  described_class.new.register(base_options)
53
51
  end
@@ -56,30 +54,30 @@ describe LinuxAdmin::SubscriptionManager do
56
54
 
57
55
  context "#subscribe" do
58
56
  it "with pools" do
59
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager attach", {:params=>[["--pool", 123], ["--pool", 456]]})
57
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager attach", {:params=>[["--pool", 123], ["--pool", 456]]})
60
58
  described_class.new.subscribe({:pools => [123, 456]})
61
59
  end
62
60
 
63
61
  it "without pools" do
64
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager attach", {:params=>{"--auto"=>nil}})
62
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager attach", {:params=>{"--auto"=>nil}})
65
63
  described_class.new.subscribe({})
66
64
  end
67
65
  end
68
66
 
69
67
  context "#subscribed_products" do
70
68
  it "subscribed" do
71
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager list --installed").and_return(double(:output => sample_output("subscription_manager/output_list_installed_subscribed")))
69
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager list --installed").and_return(double(:output => sample_output("subscription_manager/output_list_installed_subscribed")))
72
70
  expect(described_class.new.subscribed_products).to eq(["69", "167"])
73
71
  end
74
72
 
75
73
  it "not subscribed" do
76
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager list --installed").and_return(double(:output => sample_output("subscription_manager/output_list_installed_not_subscribed")))
74
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager list --installed").and_return(double(:output => sample_output("subscription_manager/output_list_installed_not_subscribed")))
77
75
  expect(described_class.new.subscribed_products).to eq(["167"])
78
76
  end
79
77
  end
80
78
 
81
79
  it "#available_subscriptions" do
82
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager list --all --available").and_return(double(:output => sample_output("subscription_manager/output_list_all_available")))
80
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager list --all --available").and_return(double(:output => sample_output("subscription_manager/output_list_all_available")))
83
81
  expect(described_class.new.available_subscriptions).to eq({
84
82
  "82c042fca983889b10178893f29b06e3" => {
85
83
  :subscription_name => "Example Subscription",
@@ -132,8 +130,8 @@ describe LinuxAdmin::SubscriptionManager do
132
130
  it "with valid credentials" do
133
131
  run_options = ["subscription-manager orgs", {:params=>{"--username="=>"SomeUser", "--password="=>"SomePass", "--proxy="=>"1.2.3.4", "--proxyuser="=>"ProxyUser", "--proxypassword="=>"ProxyPass", "--serverurl="=>"192.168.1.1"}}]
134
132
 
135
- LinuxAdmin::Rpm.should_receive(:upgrade).with("http://192.168.1.1/pub/candlepin-cert-consumer-latest.noarch.rpm")
136
- described_class.any_instance.should_receive(:run!).once.with(*run_options).and_return(double(:output => sample_output("subscription_manager/output_orgs")))
133
+ expect(LinuxAdmin::Rpm).to receive(:upgrade).with("http://192.168.1.1/pub/katello-ca-consumer-latest.noarch.rpm")
134
+ expect_any_instance_of(described_class).to receive(:run!).once.with(*run_options).and_return(double(:output => sample_output("subscription_manager/output_orgs")))
137
135
 
138
136
  expect(described_class.new.organizations({:username=>"SomeUser", :password=>"SomePass", :proxy_address=>"1.2.3.4", :proxy_username=>"ProxyUser", :proxy_password=>"ProxyPass", :server_url=>"192.168.1.1"})).to eq({"SomeOrg"=>{:name=>"SomeOrg", :key=>"1234567"}})
139
137
  end
@@ -146,19 +144,19 @@ describe LinuxAdmin::SubscriptionManager do
146
144
  :exit_status => 255
147
145
  )
148
146
  )
149
- AwesomeSpawn.should_receive(:run!).once.with(*run_options).and_raise(error)
147
+ expect(AwesomeSpawn).to receive(:run!).once.with(*run_options).and_raise(error)
150
148
  expect { described_class.new.organizations({:username=>"BadUser", :password=>"BadPass"}) }.to raise_error(LinuxAdmin::CredentialError)
151
149
  end
152
150
  end
153
151
 
154
152
  it "#enable_repo" do
155
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager repos", {:params=>{"--enable="=>"abc"}})
153
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager repos", {:params=>{"--enable="=>"abc"}})
156
154
 
157
155
  described_class.new.enable_repo("abc")
158
156
  end
159
157
 
160
158
  it "#disable_repo" do
161
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager repos", {:params=>{"--disable="=>"abc"}})
159
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager repos", {:params=>{"--disable="=>"abc"}})
162
160
 
163
161
  described_class.new.disable_repo("abc")
164
162
  end
@@ -185,7 +183,7 @@ describe LinuxAdmin::SubscriptionManager do
185
183
  }
186
184
  ]
187
185
 
188
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager repos").and_return(double(:output => sample_output("subscription_manager/output_repos")))
186
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager repos").and_return(double(:output => sample_output("subscription_manager/output_repos")))
189
187
 
190
188
  expect(described_class.new.all_repos).to eq(expected)
191
189
  end
@@ -193,7 +191,7 @@ describe LinuxAdmin::SubscriptionManager do
193
191
  it "#enabled_repos" do
194
192
  expected = ["some-repo-source-rpms", "some-repo-rpms"]
195
193
 
196
- described_class.any_instance.should_receive(:run!).once.with("subscription-manager repos").and_return(double(:output => sample_output("subscription_manager/output_repos")))
194
+ expect_any_instance_of(described_class).to receive(:run!).once.with("subscription-manager repos").and_return(double(:output => sample_output("subscription_manager/output_repos")))
197
195
 
198
196
  expect(described_class.new.enabled_repos).to eq(expected)
199
197
  end
data/spec/system_spec.rb CHANGED
@@ -1,9 +1,7 @@
1
- require 'spec_helper'
2
-
3
1
  describe LinuxAdmin::System do
4
2
  describe "#reboot!" do
5
3
  it "reboots the system" do
6
- LinuxAdmin::System.should_receive(:run!).
4
+ expect(LinuxAdmin::System).to receive(:run!).
7
5
  with(LinuxAdmin::System.cmd(:shutdown),
8
6
  :params => { '-r' => 'now'})
9
7
  LinuxAdmin::System.reboot!
@@ -12,7 +10,7 @@ describe LinuxAdmin::System do
12
10
 
13
11
  describe "#shutdown!" do
14
12
  it "shuts down the system" do
15
- LinuxAdmin::System.should_receive(:run!).
13
+ expect(LinuxAdmin::System).to receive(:run!).
16
14
  with(LinuxAdmin::System.cmd(:shutdown),
17
15
  :params => { '-h' => '0'})
18
16
  LinuxAdmin::System.shutdown!
@@ -1,5 +1,3 @@
1
- require 'spec_helper'
2
-
3
1
  describe LinuxAdmin::VolumeGroup do
4
2
  before(:each) do
5
3
  @groups = <<eos
@@ -18,7 +16,7 @@ eos
18
16
  it "uses lvextend" do
19
17
  vg = described_class.new :name => 'vg'
20
18
  lv = LinuxAdmin::LogicalVolume.new :name => 'lv', :volume_group => vg
21
- vg.should_receive(:run!).
19
+ expect(vg).to receive(:run!).
22
20
  with(vg.cmd(:lvextend),
23
21
  :params => ['lv', 'vg'])
24
22
  vg.attach_to(lv)
@@ -27,8 +25,8 @@ eos
27
25
  it "returns self" do
28
26
  vg = described_class.new :name => 'vg'
29
27
  lv = LinuxAdmin::LogicalVolume.new :name => 'lv', :volume_group => vg
30
- vg.stub(:run!)
31
- vg.attach_to(lv).should == vg
28
+ allow(vg).to receive(:run!)
29
+ expect(vg.attach_to(lv)).to eq(vg)
32
30
  end
33
31
  end
34
32
 
@@ -36,7 +34,7 @@ eos
36
34
  it "uses vgextend" do
37
35
  vg = described_class.new :name => 'vg'
38
36
  pv = LinuxAdmin::PhysicalVolume.new :device_name => '/dev/hda'
39
- vg.should_receive(:run!).
37
+ expect(vg).to receive(:run!).
40
38
  with(vg.cmd(:vgextend),
41
39
  :params => ['vg', '/dev/hda'])
42
40
  vg.extend_with(pv)
@@ -45,16 +43,16 @@ eos
45
43
  it "assigns volume group to physical volume" do
46
44
  vg = described_class.new :name => 'vg'
47
45
  pv = LinuxAdmin::PhysicalVolume.new :device_name => '/dev/hda'
48
- vg.stub(:run!)
46
+ allow(vg).to receive(:run!)
49
47
  vg.extend_with(pv)
50
- pv.volume_group.should == vg
48
+ expect(pv.volume_group).to eq(vg)
51
49
  end
52
50
 
53
51
  it "returns self" do
54
52
  vg = described_class.new :name => 'vg'
55
53
  pv = LinuxAdmin::PhysicalVolume.new :device_name => '/dev/hda'
56
- vg.stub(:run!)
57
- vg.extend_with(pv).should == vg
54
+ allow(vg).to receive(:run!)
55
+ expect(vg.extend_with(pv)).to eq(vg)
58
56
  end
59
57
  end
60
58
 
@@ -65,29 +63,29 @@ eos
65
63
 
66
64
  it "uses vgcreate" do
67
65
  described_class.instance_variable_set(:@vgs, [])
68
- described_class.should_receive(:run!).
66
+ expect(described_class).to receive(:run!).
69
67
  with(LinuxAdmin.cmd(:vgcreate),
70
68
  :params => ['vg', '/dev/hda'])
71
69
  described_class.create 'vg', @pv
72
70
  end
73
71
 
74
72
  it "returns new volume group" do
75
- described_class.stub(:run! => double(:output => ""))
73
+ allow(described_class).to receive_messages(:run! => double(:output => ""))
76
74
  vg = described_class.create 'vg', @pv
77
- vg.should be_an_instance_of(described_class)
78
- vg.name.should == 'vg'
75
+ expect(vg).to be_an_instance_of(described_class)
76
+ expect(vg.name).to eq('vg')
79
77
  end
80
78
 
81
79
  it "adds volume group to local registry" do
82
- described_class.stub(:run! => double(:output => ""))
80
+ allow(described_class).to receive_messages(:run! => double(:output => ""))
83
81
  vg = described_class.create 'vg', @pv
84
- described_class.scan.should include(vg)
82
+ expect(described_class.scan).to include(vg)
85
83
  end
86
84
  end
87
85
 
88
86
  describe "#scan" do
89
87
  it "uses vgdisplay" do
90
- described_class.should_receive(:run!).
88
+ expect(described_class).to receive(:run!).
91
89
  with(LinuxAdmin.cmd(:vgdisplay),
92
90
  :params => { '-c' => nil}).
93
91
  and_return(double(:output => @groups))
@@ -95,11 +93,11 @@ eos
95
93
  end
96
94
 
97
95
  it "returns local volume groups" do
98
- described_class.should_receive(:run!).and_return(double(:output => @groups))
96
+ expect(described_class).to receive(:run!).and_return(double(:output => @groups))
99
97
  vgs = described_class.scan
100
98
 
101
- vgs[0].should be_an_instance_of(described_class)
102
- vgs[0].name.should == 'vg_foobar'
99
+ expect(vgs[0]).to be_an_instance_of(described_class)
100
+ expect(vgs[0].name).to eq('vg_foobar')
103
101
  end
104
102
  end
105
103
  end
data/spec/yum_spec.rb CHANGED
@@ -1,25 +1,23 @@
1
- require 'spec_helper'
2
-
3
1
  describe LinuxAdmin::Yum do
4
2
  before(:each) do
5
- FileUtils.stub(:mkdir_p => true)
3
+ allow(FileUtils).to receive_messages(:mkdir_p => true)
6
4
  end
7
5
 
8
6
  context ".create_repo" do
9
7
  it "default arguments" do
10
- described_class.should_receive(:run!).once.with("createrepo", {:params=>{nil=>"some/path", "--database"=>nil, "--unique-md-filenames"=>nil}})
8
+ expect(described_class).to receive(:run!).once.with("createrepo", {:params=>{nil=>"some/path", "--database"=>nil, "--unique-md-filenames"=>nil}})
11
9
  described_class.create_repo("some/path")
12
10
  end
13
11
 
14
12
  it "bare create" do
15
- described_class.should_receive(:run!).once.with("createrepo", {:params=>{nil=>"some/path"}})
13
+ expect(described_class).to receive(:run!).once.with("createrepo", {:params=>{nil=>"some/path"}})
16
14
  described_class.create_repo("some/path", :database => false, :unique_file_names => false)
17
15
  end
18
16
  end
19
17
 
20
18
  context ".download_packages" do
21
19
  it "with valid input" do
22
- described_class.should_receive(:run!).once.with("repotrack", {:params=>{"-p"=>"some/path", nil=>"pkg_a pkg_b"}})
20
+ expect(described_class).to receive(:run!).once.with("repotrack", {:params=>{"-p"=>"some/path", nil=>"pkg_a pkg_b"}})
23
21
  described_class.download_packages("some/path", "pkg_a pkg_b")
24
22
  end
25
23
 
@@ -29,8 +27,8 @@ describe LinuxAdmin::Yum do
29
27
  end
30
28
 
31
29
  it ".repo_settings" do
32
- described_class.should_receive(:parse_repo_dir).once.with("/etc/yum.repos.d").and_return(true)
33
- expect(described_class.repo_settings).to be_true
30
+ expect(described_class).to receive(:parse_repo_dir).once.with("/etc/yum.repos.d").and_return(true)
31
+ expect(described_class.repo_settings).to be_truthy
34
32
  end
35
33
 
36
34
  it ".parse_repo_dir" do
@@ -68,41 +66,47 @@ describe LinuxAdmin::Yum do
68
66
 
69
67
  context ".updates_available?" do
70
68
  it "check updates for a specific package" do
71
- described_class.should_receive(:run).once.with("yum check-update", {:params=>{nil=>["abc"]}}).and_return(double(:exit_status => 100))
72
- expect(described_class.updates_available?("abc")).to be_true
69
+ expect(described_class).to receive(:run).once.with("yum check-update", {:params=>{nil=>["abc"]}}).and_return(double(:exit_status => 100))
70
+ expect(described_class.updates_available?("abc")).to be_truthy
73
71
  end
74
72
 
75
73
  it "updates are available" do
76
- described_class.stub(:run => double(:exit_status => 100))
77
- expect(described_class.updates_available?).to be_true
74
+ allow(described_class).to receive_messages(:run => double(:exit_status => 100))
75
+ expect(described_class.updates_available?).to be_truthy
78
76
  end
79
77
 
80
78
  it "updates not available" do
81
- described_class.stub(:run => double(:exit_status => 0))
82
- expect(described_class.updates_available?).to be_false
79
+ allow(described_class).to receive_messages(:run => double(:exit_status => 0))
80
+ expect(described_class.updates_available?).to be_falsey
83
81
  end
84
82
 
85
83
  it "other exit code" do
86
- described_class.stub(:run => double(:exit_status => 255))
84
+ allow(described_class).to receive_messages(:run => double(:exit_status => 255))
87
85
  expect { described_class.updates_available? }.to raise_error
88
86
  end
89
87
 
90
88
  it "other error" do
91
- described_class.stub(:run).and_raise(RuntimeError)
89
+ allow(described_class).to receive(:run).and_raise(RuntimeError)
92
90
  expect { described_class.updates_available? }.to raise_error(RuntimeError)
93
91
  end
94
92
  end
95
93
 
96
94
  context ".update" do
97
95
  it "no arguments" do
98
- described_class.should_receive(:run!).once.with("yum -y update", {:params=>nil})
96
+ expect(described_class).to receive(:run!).once.with("yum -y update", :params => nil).and_return(AwesomeSpawn::CommandResult.new("", "", "", 0))
99
97
  described_class.update
100
98
  end
101
99
 
102
100
  it "with arguments" do
103
- described_class.should_receive(:run!).once.with("yum -y update", {:params=>{nil=>["1 2", "3"]}})
101
+ expect(described_class).to receive(:run!).once.with("yum -y update", :params => {nil => ["1 2", "3"]}).and_return(AwesomeSpawn::CommandResult.new("", "", "", 0))
104
102
  described_class.update("1 2", "3")
105
103
  end
104
+
105
+ it "with bad arguments" do
106
+ error = AwesomeSpawn::CommandResult.new("", "Loaded plugins: product-id\nNo Packages marked for Update\n", "Blah blah ...\nNo Match for argument: \n", 0)
107
+ expect(described_class).to receive(:run!).once.with("yum -y update", :params => {nil => [""]}).and_return(error)
108
+ expect { described_class.update("") }.to raise_error(AwesomeSpawn::CommandResultError)
109
+ end
106
110
  end
107
111
 
108
112
  context ".version_available" do
@@ -111,12 +115,12 @@ describe LinuxAdmin::Yum do
111
115
  end
112
116
 
113
117
  it "with one package" do
114
- described_class.should_receive(:run!).once.with("repoquery --qf=\"%{name} %{version}\"", {:params=>{nil=>["subscription-manager"]}}).and_return(double(:output => sample_output("yum/output_repoquery_single")))
118
+ expect(described_class).to receive(:run!).once.with("repoquery --qf=\"%{name} %{version}\"", {:params=>{nil=>["subscription-manager"]}}).and_return(double(:output => sample_output("yum/output_repoquery_single")))
115
119
  expect(described_class.version_available("subscription-manager")).to eq({"subscription-manager" => "1.1.23.1"})
116
120
  end
117
121
 
118
122
  it "with multiple packages" do
119
- described_class.should_receive(:run!).once.with("repoquery --qf=\"%{name} %{version}\"", {:params=>{nil=>["curl", "subscription-manager", "wget"]}}).and_return(double(:output => sample_output("yum/output_repoquery_multiple")))
123
+ expect(described_class).to receive(:run!).once.with("repoquery --qf=\"%{name} %{version}\"", {:params=>{nil=>["curl", "subscription-manager", "wget"]}}).and_return(double(:output => sample_output("yum/output_repoquery_multiple")))
120
124
  expect(described_class.version_available("curl", "subscription-manager", "wget")).to eq({
121
125
  "curl" => "7.19.7",
122
126
  "subscription-manager" => "1.1.23.1",
@@ -127,13 +131,13 @@ describe LinuxAdmin::Yum do
127
131
 
128
132
  context ".repo_list" do
129
133
  it "with no arguments" do
130
- described_class.should_receive(:run!).with("yum repolist", {:params=>{nil=>"enabled"}}).and_return(double(:output => sample_output("yum/output_repo_list")))
134
+ expect(described_class).to receive(:run!).with("yum repolist", {:params=>{nil=>"enabled"}}).and_return(double(:output => sample_output("yum/output_repo_list")))
131
135
  expect(described_class.repo_list).to eq(["rhel-6-server-rpms", "rhel-ha-for-rhel-6-server-rpms", "rhel-lb-for-rhel-6-server-rpms"])
132
136
  end
133
137
 
134
138
  it "with argument" do
135
- described_class.should_receive(:run!).with("yum repolist", {:params=>{nil=>"enabled"}}).and_return(double(:output => sample_output("yum/output_repo_list")))
139
+ expect(described_class).to receive(:run!).with("yum repolist", {:params=>{nil=>"enabled"}}).and_return(double(:output => sample_output("yum/output_repo_list")))
136
140
  expect(described_class.repo_list("enabled")).to eq(["rhel-6-server-rpms", "rhel-ha-for-rhel-6-server-rpms", "rhel-lb-for-rhel-6-server-rpms"])
137
141
  end
138
142
  end
139
- end
143
+ end