ovirt 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,37 @@
1
+ FactoryGirl.define do
2
+ factory :template, :class => "Ovirt::Template" do
3
+ initialize_with { new(service, {}) }
4
+ service { build(:service) }
5
+ end
6
+
7
+ factory :template_full, :parent => :template do
8
+ initialize_with do
9
+ new(service,
10
+ :id => "128f9ffd-b82c-41e4-8c00-9742ed173bac",
11
+ :href => "/api/vms/128f9ffd-b82c-41e4-8c00-9742ed173bac",
12
+ :cluster => {
13
+ :id => "5be5d08a-a60b-11e2-bee6-005056a217db",
14
+ :href => "/api/clusters/5be5d08a-a60b-11e2-bee6-005056a217db"},
15
+ :template => {
16
+ :id => "00000000-0000-0000-0000-000000000000",
17
+ :href => "/api/templates/00000000-0000-0000-0000-000000000000"},
18
+ :name => "bd-skeletal-clone-from-template",
19
+ :origin => "rhev",
20
+ :type => "server",
21
+ :memory => 536_870_912,
22
+ :stateless => false,
23
+ :creation_time => "2013-09-04 16:24:20 -0400",
24
+ :status => {:state => "down"},
25
+ :display => {:type => "spice", :monitors => 1},
26
+ :usb => {:enabled => false},
27
+ :cpu => {:topology => {:sockets => 1, :cores => 1}},
28
+ :high_availability => {:priority => 1, :enabled => false},
29
+ :os => {:type => "rhel5_64", :boot_order => [{:dev => "hd"}]},
30
+ :custom_attributes => [],
31
+ :placement_policy => {:affinity => "migratable", :host => {}},
32
+ :memory_policy => {:guaranteed => 536_870_912},
33
+ :guest_info => {}
34
+ )
35
+ end
36
+ end
37
+ end
data/spec/factories/vm.rb CHANGED
@@ -7,7 +7,6 @@ FactoryGirl.define do
7
7
  factory :vm_full, :parent => :vm do
8
8
  initialize_with do
9
9
  new(service,
10
- {
11
10
  :actions => {:stop => '/api/vms/128f9ffd-b82c-41e4-8c00-9742ed173bac/stop'},
12
11
  :id => "128f9ffd-b82c-41e4-8c00-9742ed173bac",
13
12
  :href => "/api/vms/128f9ffd-b82c-41e4-8c00-9742ed173bac",
@@ -33,8 +32,7 @@ FactoryGirl.define do
33
32
  :placement_policy => {:affinity => "migratable", :host => {}},
34
33
  :memory_policy => {:guaranteed => 536_870_912},
35
34
  :guest_info => {}
36
- }
37
- )
35
+ )
38
36
  end
39
37
  end
40
38
  end
data/spec/service_spec.rb CHANGED
@@ -1,4 +1,3 @@
1
- require 'spec_helper'
2
1
  require 'rest-client'
3
2
 
4
3
  describe Ovirt::Service do
@@ -7,7 +6,7 @@ describe Ovirt::Service do
7
6
  context "#resource_post" do
8
7
  it "raises Ovirt::Error if HTTP 409 response code received" do
9
8
  error_detail = "API error"
10
- return_data = <<-EOX.chomp
9
+ return_data = <<-EOX.chomp
11
10
  <action>
12
11
  <fault>
13
12
  <detail>#{error_detail}</detail>
@@ -16,90 +15,90 @@ describe Ovirt::Service do
16
15
  EOX
17
16
 
18
17
  rest_client = double('rest_client').as_null_object
19
- rest_client.should_receive(:post) do |&block|
20
- return_data.stub(:code).and_return(409)
18
+ expect(rest_client).to receive(:post) do |&block|
19
+ allow(return_data).to receive(:code).and_return(409)
21
20
  block.call(return_data)
22
21
  end
23
22
 
24
- service.stub(:create_resource).and_return(rest_client)
23
+ allow(service).to receive(:create_resource).and_return(rest_client)
25
24
  expect { service.resource_post('uri', 'data') }.to raise_error(Ovirt::Error, error_detail)
26
25
  end
27
26
 
28
27
  it "raises Ovirt::Error if HTTP 409 response code received" do
29
28
  error_detail = "Usage message"
30
- return_data = <<-EOX.chomp
29
+ return_data = <<-EOX.chomp
31
30
  <usage_message>
32
31
  <message>#{error_detail}</message>
33
32
  </usage_message>
34
33
  EOX
35
34
 
36
35
  rest_client = double('rest_client').as_null_object
37
- rest_client.should_receive(:post) do |&block|
38
- return_data.stub(:code).and_return(409)
36
+ expect(rest_client).to receive(:post) do |&block|
37
+ allow(return_data).to receive(:code).and_return(409)
39
38
  block.call(return_data)
40
39
  end
41
40
 
42
- service.stub(:create_resource).and_return(rest_client)
41
+ allow(service).to receive(:create_resource).and_return(rest_client)
43
42
  expect { service.resource_post('uri', 'data') }.to raise_error(Ovirt::UsageError, error_detail)
44
43
  end
45
44
  end
46
45
 
47
46
  it "#resource_get on exception" do
48
- service.stub(:create_resource).and_raise(Exception, "BLAH")
47
+ allow(service).to receive(:create_resource).and_raise(Exception, "BLAH")
49
48
  expect { service.resource_get('api') }.to raise_error(Exception, "BLAH")
50
49
  end
51
50
 
52
51
  context ".ovirt?" do
53
52
  it "false when ResourceNotFound" do
54
- described_class.any_instance.should_receive(:engine_ssh_public_key).and_raise(RestClient::ResourceNotFound)
55
- described_class.ovirt?(:server => "127.0.0.1").should be false
53
+ expect_any_instance_of(described_class).to receive(:engine_ssh_public_key).and_raise(RestClient::ResourceNotFound)
54
+ expect(described_class.ovirt?(:server => "127.0.0.1")).to be false
56
55
  end
57
56
 
58
57
  it "true when key non-empty" do
59
58
  fake_key = "ssh-rsa " + ("A" * 372) + " ovirt-engine\n"
60
- described_class.any_instance.should_receive(:engine_ssh_public_key).and_return(fake_key)
61
- described_class.ovirt?(:server => "127.0.0.1").should be true
59
+ expect_any_instance_of(described_class).to receive(:engine_ssh_public_key).and_return(fake_key)
60
+ expect(described_class.ovirt?(:server => "127.0.0.1")).to be true
62
61
  end
63
62
 
64
63
  it "false when key empty" do
65
64
  fake_key = "\n"
66
- described_class.any_instance.should_receive(:engine_ssh_public_key).and_return(fake_key)
67
- described_class.ovirt?(:server => "127.0.0.1").should be false
65
+ expect_any_instance_of(described_class).to receive(:engine_ssh_public_key).and_return(fake_key)
66
+ expect(described_class.ovirt?(:server => "127.0.0.1")).to be false
68
67
  end
69
68
  end
70
69
 
71
70
  context "#base_uri" do
72
- let(:defaults) { {:username => nil, :password => nil}}
71
+ let(:defaults) { {:username => nil, :password => nil} }
73
72
  subject { described_class.new(defaults.merge(@options)).send(:base_uri) }
74
73
 
75
74
  it "ipv4" do
76
75
  @options = {:server => "127.0.0.1"}
77
- subject.should == "https://127.0.0.1:443"
76
+ expect(subject).to eq("https://127.0.0.1:443")
78
77
  end
79
78
 
80
79
  it "ipv6" do
81
80
  @options = {:server => "::1"}
82
- subject.should == "https://[::1]:443"
81
+ expect(subject).to eq("https://[::1]:443")
83
82
  end
84
83
 
85
84
  it "hostname" do
86
85
  @options = {:server => "nobody.com"}
87
- subject.should == "https://nobody.com:443"
86
+ expect(subject).to eq("https://nobody.com:443")
88
87
  end
89
88
 
90
89
  it "port 4443" do
91
90
  @options = {:server => "nobody.com", :port => 4443}
92
- subject.should == "https://nobody.com:4443"
91
+ expect(subject).to eq("https://nobody.com:4443")
93
92
  end
94
93
 
95
94
  it "blank port" do
96
95
  @options = {:server => "nobody.com", :port => ""}
97
- subject.should == "https://nobody.com"
96
+ expect(subject).to eq("https://nobody.com")
98
97
  end
99
98
 
100
99
  it "nil port uses defaults" do
101
100
  @options = {:server => "nobody.com", :port => nil}
102
- subject.should == "https://nobody.com:443"
101
+ expect(subject).to eq("https://nobody.com:443")
103
102
  end
104
103
  end
105
104
  end
data/spec/spec_helper.rb CHANGED
@@ -3,19 +3,99 @@ FactoryGirl.find_definitions
3
3
 
4
4
  # This file was generated by the `rspec --init` command. Conventionally, all
5
5
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
6
- # Require this file using `require "spec_helper"` to ensure that it is only
7
- # loaded once.
6
+ # The generated `.rspec` file contains `--require spec_helper` which will cause
7
+ # this file to always be loaded, without a need to explicitly require it in any
8
+ # files.
9
+ #
10
+ # Given that it is always loaded, you are encouraged to keep this file as
11
+ # light-weight as possible. Requiring heavyweight dependencies from this file
12
+ # will add to the boot time of your test suite on EVERY test run, even for an
13
+ # individual file that may not need all of that loaded. Instead, consider making
14
+ # a separate helper file that requires the additional dependencies and performs
15
+ # the additional setup, and require it from the spec files that actually need
16
+ # it.
17
+ #
18
+ # The `.rspec` file also contains a few flags that are not defaults but that
19
+ # users commonly want.
8
20
  #
9
21
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
10
22
  RSpec.configure do |config|
11
- config.treat_symbols_as_metadata_keys_with_true_values = true
12
- config.run_all_when_everything_filtered = true
23
+ # rspec-expectations config goes here. You can use an alternate
24
+ # assertion/expectation library such as wrong or the stdlib/minitest
25
+ # assertions if you prefer.
26
+ config.expect_with :rspec do |expectations|
27
+ # This option will default to `true` in RSpec 4. It makes the `description`
28
+ # and `failure_message` of custom matchers include text for helper methods
29
+ # defined using `chain`, e.g.:
30
+ # be_bigger_than(2).and_smaller_than(4).description
31
+ # # => "be bigger than 2 and smaller than 4"
32
+ # ...rather than:
33
+ # # => "be bigger than 2"
34
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
35
+ end
36
+
37
+ # rspec-mocks config goes here. You can use an alternate test double
38
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
39
+ config.mock_with :rspec do |mocks|
40
+ # Prevents you from mocking or stubbing a method that does not exist on
41
+ # a real object. This is generally recommended, and will default to
42
+ # `true` in RSpec 4.
43
+ # TODO: Enable this and fix related failures
44
+ # mocks.verify_partial_doubles = true
45
+ end
13
46
 
14
- # Run specs in random order to surface order dependencies. If you find an
15
- # order dependency and want to debug it, you can fix the order by providing
16
- # the seed, which is printed after each run.
17
- # --seed 1234
18
- config.order = 'random'
47
+ # The settings below are suggested to provide a good initial experience
48
+ # with RSpec, but feel free to customize to your heart's content.
49
+ # # These two settings work together to allow you to limit a spec run
50
+ # # to individual examples or groups you care about by tagging them with
51
+ # # `:focus` metadata. When nothing is tagged with `:focus`, all examples
52
+ # # get run.
53
+ # config.filter_run :focus
54
+ # config.run_all_when_everything_filtered = true
55
+ #
56
+ # # Allows RSpec to persist some state between runs in order to support
57
+ # # the `--only-failures` and `--next-failure` CLI options. We recommend
58
+ # # you configure your source control system to ignore this file.
59
+ # config.example_status_persistence_file_path = "spec/examples.txt"
60
+ #
61
+ # # Limits the available syntax to the non-monkey patched syntax that is
62
+ # # recommended. For more details, see:
63
+ # # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
64
+ # # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
65
+ # # - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
66
+ # config.disable_monkey_patching!
67
+ #
68
+ # # This setting enables warnings. It's recommended, but in some cases may
69
+ # # be too noisy due to issues in dependencies.
70
+ # config.warnings = true
71
+ #
72
+ # # Many RSpec users commonly either run the entire suite or an individual
73
+ # # file, and it's useful to allow more verbose output when running an
74
+ # # individual spec file.
75
+ # if config.files_to_run.one?
76
+ # # Use the documentation formatter for detailed output,
77
+ # # unless a formatter has already been configured
78
+ # # (e.g. via a command-line flag).
79
+ # config.default_formatter = 'doc'
80
+ # end
81
+ #
82
+ # # Print the 10 slowest examples and example groups at the
83
+ # # end of the spec run, to help surface which specs are running
84
+ # # particularly slow.
85
+ # config.profile_examples = 10
86
+ #
87
+ # # Run specs in random order to surface order dependencies. If you find an
88
+ # # order dependency and want to debug it, you can fix the order by providing
89
+ # # the seed, which is printed after each run.
90
+ # # --seed 1234
91
+ # config.order = :random
92
+ #
93
+ # # Seed global randomization in this process using the `--seed` CLI option.
94
+ # # Setting this allows you to use `--seed` to deterministically reproduce
95
+ # # test failures related to randomization by passing the same `--seed` value
96
+ # # as the one that triggered the failure.
97
+ # Kernel.srand config.seed
98
+ config.order = :random
19
99
  config.include FactoryGirl::Syntax::Methods
20
100
  end
21
101
 
@@ -1,42 +1,13 @@
1
- require 'spec_helper'
2
-
3
1
  describe Ovirt::Template do
4
- let(:service) { build(:service) }
5
- before do
6
- @template = Ovirt::Template.new(service, {
7
- :id => "128f9ffd-b82c-41e4-8c00-9742ed173bac",
8
- :href => "/api/vms/128f9ffd-b82c-41e4-8c00-9742ed173bac",
9
- :cluster => {
10
- :id => "5be5d08a-a60b-11e2-bee6-005056a217db",
11
- :href => "/api/clusters/5be5d08a-a60b-11e2-bee6-005056a217db"},
12
- :template => {
13
- :id => "00000000-0000-0000-0000-000000000000",
14
- :href => "/api/templates/00000000-0000-0000-0000-000000000000"},
15
- :name => "bd-skeletal-clone-from-template",
16
- :origin => "rhev",
17
- :type => "server",
18
- :memory => 536870912,
19
- :stateless => false,
20
- :creation_time => "2013-09-04 16:24:20 -0400",
21
- :status => {:state => "down"},
22
- :display => {:type => "spice", :monitors => 1},
23
- :usb => {:enabled => false},
24
- :cpu => {:topology => {:sockets => 1, :cores => 1}},
25
- :high_availability => {:priority => 1, :enabled => false},
26
- :os => {:type => "rhel5_64", :boot_order => [{:dev => "hd"}]},
27
- :custom_attributes => [],
28
- :placement_policy => {:affinity => "migratable", :host => {}},
29
- :memory_policy => {:guaranteed => 536870912},
30
- :guest_info => {}
31
- })
32
- end
2
+ let(:service) { template.service }
3
+ let(:template) { build(:template_full) }
33
4
 
34
5
  context "#create_vm" do
35
6
  it "clones properties for skeletal clones" do
36
- options = {:clone_type => :skeletal}
7
+ options = {:clone_type => :skeletal}
37
8
  expected_data = {
38
9
  :clone_type => :linked,
39
- :memory => 536870912,
10
+ :memory => 536_870_912,
40
11
  :stateless => false,
41
12
  :type => "server",
42
13
  :display => {:type => "spice", :monitors => 1},
@@ -44,11 +15,11 @@ describe Ovirt::Template do
44
15
  :cpu => {:topology => {:sockets => 1, :cores => 1}},
45
16
  :high_availability => {:priority => 1, :enabled => false},
46
17
  :os_type => "rhel5_64"}
47
- @template.stub(:nics).and_return([])
48
- @template.stub(:disks).and_return([])
49
- service.stub(:blank_template).and_return(double('blank template'))
50
- service.blank_template.should_receive(:create_vm).once.with(expected_data)
51
- @template.create_vm(options)
18
+ allow(template).to receive(:nics).and_return([])
19
+ allow(template).to receive(:disks).and_return([])
20
+ allow(service).to receive(:blank_template).and_return(double('blank template'))
21
+ expect(service.blank_template).to receive(:create_vm).once.with(expected_data)
22
+ template.create_vm(options)
52
23
  end
53
24
 
54
25
  it "overrides properties for linked clones" do
@@ -90,19 +61,17 @@ EOX
90
61
  :name => 'new name',
91
62
  :cluster => 'fb27f9a0-cb75-4e0f-8c07-8dec0c5ab483',
92
63
  :os_type => 'test'}
93
- service.should_receive(:resource_post).once.with(:vms, expected_data).and_return(response_xml)
94
- @template.create_vm(options)
64
+ expect(service).to receive(:resource_post).once.with(:vms, expected_data).and_return(response_xml)
65
+ template.create_vm(options)
95
66
  end
96
67
 
97
68
  context "#create_new_disks_from_template" do
98
69
  before do
99
- @disk = Ovirt::Disk.new(service, {
100
- :id=>"01eae62b-90df-424d-978c-beaa7eb2f7f6",
101
- :href=>"/api/templates/54f1b9f4-0e89-4c72-9a26-f94dcb857264/disks/01eae62b-90df-424d-978c-beaa7eb2f7f6",
102
- :name=>"clone_Disk1",
103
- :storage_domains=>[{:id=>"aa7e70e5-40d0-43e2-a605-92ce6ba652a8"}]
104
- })
105
- @template.stub(:disks).and_return([@disk])
70
+ @disk = Ovirt::Disk.new(service, :id => "01eae62b-90df-424d-978c-beaa7eb2f7f6",
71
+ :href => "/api/templates/54f1b9f4-0e89-4c72-9a26-f94dcb857264/disks/01eae62b-90df-424d-978c-beaa7eb2f7f6",
72
+ :name => "clone_Disk1",
73
+ :storage_domains => [{:id => "aa7e70e5-40d0-43e2-a605-92ce6ba652a8"}])
74
+ allow(template).to receive(:disks).and_return([@disk])
106
75
 
107
76
  @vm = double('rhevm_vm')
108
77
  end
@@ -111,24 +80,24 @@ EOX
111
80
  expected_data = @disk.attributes.dup
112
81
  expected_data[:storage] = expected_data[:storage_domains].first[:id]
113
82
 
114
- @vm.should_receive(:create_disk).once.with(expected_data)
115
- @template.send(:create_new_disks_from_template, @vm, {})
83
+ expect(@vm).to receive(:create_disk).once.with(expected_data)
84
+ template.send(:create_new_disks_from_template, @vm, {})
116
85
  end
117
86
 
118
87
  it "with a storage override" do
119
88
  expected_data = @disk.attributes.dup
120
- options = {:storage => "xxxxxxxx-40d0-43e2-a605-92ce6ba652a8"}
89
+ options = {:storage => "xxxxxxxx-40d0-43e2-a605-92ce6ba652a8"}
121
90
  expected_data.merge!(options)
122
91
 
123
- @vm.should_receive(:create_disk).once.with(expected_data)
124
- @template.send(:create_new_disks_from_template, @vm, options)
92
+ expect(@vm).to receive(:create_disk).once.with(expected_data)
93
+ template.send(:create_new_disks_from_template, @vm, options)
125
94
  end
126
95
  end
127
96
 
128
97
  context "build_clone_xml" do
129
98
  it "Properly sets vm/cpu/topology attributes" do
130
- Ovirt::Base.stub(:object_to_id)
131
- xml = @template.send(:build_clone_xml, :name => "Blank", :cluster => "6b8f1c1e-3eb0-11e4-8420-56847afe9799")
99
+ allow(Ovirt::Base).to receive(:object_to_id)
100
+ xml = template.send(:build_clone_xml, :name => "Blank", :cluster => "6b8f1c1e-3eb0-11e4-8420-56847afe9799")
132
101
  nodeset = Nokogiri::XML.parse(xml).xpath("//vm/cpu/topology")
133
102
  node = nodeset.first
134
103
 
data/spec/vm_spec.rb CHANGED
@@ -1,5 +1,3 @@
1
- require 'spec_helper'
2
-
3
1
  describe Ovirt::Vm do
4
2
  let(:service) { vm.service }
5
3
  let(:vm) { build(:vm_full) }
@@ -8,23 +6,23 @@ describe Ovirt::Vm do
8
6
  before do
9
7
  @resource_url = "#{vm.attributes[:href]}/disks"
10
8
  @base_options = {
11
- :storage => "aa7e70e5-abcd-1234-a605-92ce6ba652a8",
12
- :id => "01eae62b-90df-424d-978c-beaa7eb2f7f6",
13
- :href => "/api/templates/54f1b9f4-0e89-4c72-9a26-f94dcb857264/disks/01eae62b-90df-424d-978c-beaa7eb2f7f6",
14
- :name => "bd-clone_Disk1",
15
- :interface => "virtio",
16
- :format => "raw",
17
- :image_id => "a791ba77-8cc1-44de-9945-69f0a291cc47",
18
- :size => 10737418240,
19
- :provisioned_size => 10737418240,
20
- :actual_size => 1316855808,
21
- :sparse => true,
22
- :bootable => true,
23
- :wipe_after_delete => true,
24
- :propagate_errors => true,
25
- :status => {:state => "ok"},
26
- :storage_domains => [{:id => "aa7e70e5-40d0-43e2-a605-92ce6ba652a8"}],
27
- :storage_domain_id => "aa7e70e5-40d0-43e2-a605-92ce6ba652a8"
9
+ :storage => "aa7e70e5-abcd-1234-a605-92ce6ba652a8",
10
+ :id => "01eae62b-90df-424d-978c-beaa7eb2f7f6",
11
+ :href => "/api/templates/54f1b9f4-0e89-4c72-9a26-f94dcb857264/disks/01eae62b-90df-424d-978c-beaa7eb2f7f6",
12
+ :name => "bd-clone_Disk1",
13
+ :interface => "virtio",
14
+ :format => "raw",
15
+ :image_id => "a791ba77-8cc1-44de-9945-69f0a291cc47",
16
+ :size => 10_737_418_240,
17
+ :provisioned_size => 10_737_418_240,
18
+ :actual_size => 1_316_855_808,
19
+ :sparse => true,
20
+ :bootable => true,
21
+ :wipe_after_delete => true,
22
+ :propagate_errors => true,
23
+ :status => {:state => "ok"},
24
+ :storage_domains => [{:id => "aa7e70e5-40d0-43e2-a605-92ce6ba652a8"}],
25
+ :storage_domain_id => "aa7e70e5-40d0-43e2-a605-92ce6ba652a8"
28
26
  }
29
27
  @base_data = <<-EOX.chomp
30
28
  <disk>
@@ -44,29 +42,29 @@ EOX
44
42
  end
45
43
 
46
44
  [:sparse, :bootable, :wipe_after_delete, :propagate_errors].each do |boolean_key|
47
- context "xml #{boolean_key.to_s} value" do
45
+ context "xml #{boolean_key} value" do
48
46
  it "set to true" do
49
47
  expected_data = @base_data
50
- options = @base_options.merge(boolean_key => true)
48
+ options = @base_options.merge(boolean_key => true)
51
49
 
52
- service.should_receive(:resource_post).once.with(@resource_url, expected_data)
50
+ expect(service).to receive(:resource_post).once.with(@resource_url, expected_data)
53
51
  vm.create_disk(options)
54
52
  end
55
53
 
56
54
  it "set to false" do
57
- expected_data = @base_data.gsub("<#{boolean_key.to_s}>true</#{boolean_key.to_s}>", "<#{boolean_key.to_s}>false</#{boolean_key.to_s}>")
58
- options = @base_options.merge(boolean_key => false)
55
+ expected_data = @base_data.gsub("<#{boolean_key}>true</#{boolean_key}>", "<#{boolean_key}>false</#{boolean_key}>")
56
+ options = @base_options.merge(boolean_key => false)
59
57
 
60
- service.should_receive(:resource_post).once.with(@resource_url, expected_data)
58
+ expect(service).to receive(:resource_post).once.with(@resource_url, expected_data)
61
59
  vm.create_disk(options)
62
60
  end
63
61
 
64
62
  it "unset" do
65
- expected_data = @base_data.gsub(" <#{boolean_key.to_s}>true</#{boolean_key.to_s}>\n", "")
66
- options = @base_options.dup
63
+ expected_data = @base_data.gsub(" <#{boolean_key}>true</#{boolean_key}>\n", "")
64
+ options = @base_options.dup
67
65
  options.delete(boolean_key)
68
66
 
69
- service.should_receive(:resource_post).once.with(@resource_url, expected_data)
67
+ expect(service).to receive(:resource_post).once.with(@resource_url, expected_data)
70
68
  vm.create_disk(options)
71
69
  end
72
70
  end
@@ -81,7 +79,7 @@ EOX
81
79
  end
82
80
 
83
81
  def expected_data(element)
84
- return <<-EOX.chomp
82
+ <<-EOX.chomp
85
83
  <nic>
86
84
  <name>#{@name}</name>
87
85
  #{element}
@@ -91,30 +89,30 @@ EOX
91
89
 
92
90
  it "populates the interface" do
93
91
  interface = 'interface'
94
- service.should_receive(:resource_post).once.with(
95
- @resource_url, expected_data("<interface>#{interface}</interface>"))
96
- vm.create_nic(@base_options.merge({:interface => interface}))
92
+ expect(service).to receive(:resource_post).once.with(
93
+ @resource_url, expected_data("<interface>#{interface}</interface>"))
94
+ vm.create_nic(@base_options.merge(:interface => interface))
97
95
  end
98
96
 
99
97
  it "populates the network id" do
100
98
  network_id = 'network_id'
101
- service.should_receive(:resource_post).once.with(
102
- @resource_url, expected_data("<network id=\"#{network_id}\"/>"))
103
- vm.create_nic(@base_options.merge({:network_id => network_id}))
99
+ expect(service).to receive(:resource_post).once.with(
100
+ @resource_url, expected_data("<network id=\"#{network_id}\"/>"))
101
+ vm.create_nic(@base_options.merge(:network_id => network_id))
104
102
  end
105
103
 
106
104
  it "populates the MAC address" do
107
105
  mac_address = 'mac_address'
108
- service.should_receive(:resource_post).once.with(
109
- @resource_url, expected_data("<mac address=\"#{mac_address}\"/>"))
110
- vm.create_nic(@base_options.merge({:mac_address => mac_address}))
106
+ expect(service).to receive(:resource_post).once.with(
107
+ @resource_url, expected_data("<mac address=\"#{mac_address}\"/>"))
108
+ vm.create_nic(@base_options.merge(:mac_address => mac_address))
111
109
  end
112
110
  end
113
111
 
114
112
  context "#memory_reserve" do
115
113
  it "updates the memory policy guarantee" do
116
114
  memory_reserve = 1.gigabyte
117
- expected_data = <<-EOX.chomp
115
+ expected_data = <<-EOX.chomp
118
116
  <vm>
119
117
  <memory_policy>
120
118
  <guaranteed>#{memory_reserve}</guaranteed>
@@ -131,9 +129,9 @@ EOX
131
129
  </vm>
132
130
  EOX
133
131
 
134
- service.should_receive(:resource_put).once.with(
135
- vm.attributes[:href],
136
- expected_data).and_return(return_data)
132
+ expect(service).to receive(:resource_put).once.with(
133
+ vm.attributes[:href],
134
+ expected_data).and_return(return_data)
137
135
  vm.memory_reserve = memory_reserve
138
136
  end
139
137
  end
@@ -149,12 +147,12 @@ EOX
149
147
  EOX
150
148
 
151
149
  rest_client = double('rest_client').as_null_object
152
- rest_client.should_receive(:post) do |&block|
153
- return_data.stub(:code).and_return(409)
150
+ expect(rest_client).to receive(:post) do |&block|
151
+ allow(return_data).to receive(:code).and_return(409)
154
152
  block.call(return_data)
155
153
  end
156
154
 
157
- service.stub(:create_resource).and_return(rest_client)
155
+ allow(service).to receive(:create_resource).and_return(rest_client)
158
156
  expect { vm.stop }.to raise_error Ovirt::VmIsNotRunning
159
157
  end
160
158
  end
@@ -194,8 +192,8 @@ EOX
194
192
  </memory_policy>
195
193
  </vm>
196
194
  EOX
197
- service.should_receive(:version).twice.and_return(:major=>"3", :minor=>"0", :build=>"0", :revision=>"0")
198
- service.should_receive(:resource_put).once.with(vm.attributes[:href], expected_data).and_return(return_data)
195
+ expect(service).to receive(:version).twice.and_return(:major => "3", :minor => "0", :build => "0", :revision => "0")
196
+ expect(service).to receive(:resource_put).once.with(vm.attributes[:href], expected_data).and_return(return_data)
199
197
  vm.detach_floppy
200
198
  end
201
199
 
@@ -224,8 +222,8 @@ EOX
224
222
  </memory_policy>
225
223
  </vm>
226
224
  EOX
227
- service.should_receive(:version).and_return(:major=>"3", :minor=>"3", :build=>"0", :revision=>"0")
228
- service.should_receive(:resource_put).once.with(vm.attributes[:href], expected_data).and_return(return_data)
225
+ expect(service).to receive(:version).and_return(:major => "3", :minor => "3", :build => "0", :revision => "0")
226
+ expect(service).to receive(:resource_put).once.with(vm.attributes[:href], expected_data).and_return(return_data)
229
227
  vm.detach_floppy
230
228
  end
231
229
  end