linux_admin 0.9.1 → 0.9.2

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.
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