Skip to content

Commit 12687ca

Browse files
authored
Merge pull request #1257 from kbrock/supports_unsupports
Use standard SupportsFeatureMixin
2 parents 1fad879 + 5938104 commit 12687ca

5 files changed

+23
-20
lines changed

spec/requests/cloud_volume_snapshots_spec.rb

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
let(:ems) { FactoryBot.create(:ems_cinder) }
55
let(:cloud_volume) { FactoryBot.create(:cloud_volume_openstack, :ext_management_system => ems) }
66
let(:cloud_volume_snapshot) { FactoryBot.create(:cloud_volume_snapshot_openstack, :cloud_volume => cloud_volume, :ext_management_system => ems) }
7+
let(:snapshot_klass) { ems.class_by_ems(:CloudVolumeSnapshot) }
78

89
describe "as a subcollection of cloud volumes" do
910
describe "GET /api/cloud_volumes/:c_id/cloud_volume_snapshots" do
@@ -61,7 +62,7 @@
6162
describe "POST /api/cloud_volumes/:c_id/cloud_volume_snapshots" do
6263
it "can queue the creation of a cloud volume snapshot" do
6364
api_basic_authorize(subcollection_action_identifier(:cloud_volumes, :cloud_volume_snapshots, :create))
64-
stub_supports(CloudVolumeSnapshot, :create)
65+
stub_supports(snapshot_klass, :create)
6566

6667
post(api_cloud_volume_cloud_volume_snapshots_url(nil, cloud_volume), :params => {:name => "new snapshot"})
6768

@@ -70,7 +71,7 @@
7071

7172
it "renders a failed action response if cloud volume snapshotting is not supported" do
7273
api_basic_authorize(subcollection_action_identifier(:cloud_volumes, :cloud_volume_snapshots, :create))
73-
stub_supports_not(ems.class_by_ems(:CloudVolumeSnapshot), :create)
74+
stub_supports_not(snapshot_klass, :create)
7475

7576
post(api_cloud_volume_cloud_volume_snapshots_url(nil, cloud_volume), :params => {:name => "Alice's snapshot"})
7677

@@ -82,7 +83,7 @@
8283
it "create & delete cloud volume snapshot" do
8384
api_basic_authorize('cloud_volume_snapshot_delete')
8485

85-
stub_supports(CloudVolumeSnapshot, :delete)
86+
stub_supports(snapshot_klass, :delete)
8687
post(api_cloud_volume_snapshot_url(nil, cloud_volume_snapshot), :params => gen_request(:delete))
8788

8889
expect_single_action_result(:success => true, :message => /Deleting Cloud Volume Snapshot id: #{cloud_volume_snapshot.id} name: '#{cloud_volume_snapshot.name}'/)

spec/requests/cloud_volumes_spec.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@
266266

267267
it 'attach raise an error if the cloud volume does not support attach' do
268268
cloud_volume = FactoryBot.create(:cloud_volume_autosde)
269-
stub_supports_not(:cloud_volume, :attach)
269+
stub_supports_not(cloud_volume, :attach)
270270

271271
api_basic_authorize(action_identifier(:cloud_volumes, :attach, :resource_actions, :post))
272272

@@ -281,7 +281,7 @@
281281

282282
it 'detach raise an error if the cloud volume does not support detach' do
283283
cloud_volume = FactoryBot.create(:cloud_volume_autosde)
284-
stub_supports_not(:cloud_volume, :detach)
284+
stub_supports_not(cloud_volume, :detach)
285285

286286
api_basic_authorize(action_identifier(:cloud_volumes, :detach, :resource_actions, :post))
287287

spec/requests/host_initiator_groups_spec.rb

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
describe "Host Initiator Groups API" do
2+
let(:provider) { FactoryBot.create(:ems_autosde, :name => 'Autosde') }
3+
let(:host_initiator_group_klass) { provider.class_by_ems('HostInitiatorGroup') }
4+
25
include Spec::Support::SupportsHelper
36
context "POST /api/host_initiator_groups" do
47
it "with an invalid ems_id it responds with 404 Not Found" do
@@ -20,7 +23,7 @@
2023

2124
it "creates new Host Initiator Group" do
2225
api_basic_authorize(collection_action_identifier(:host_initiator_groups, :create))
23-
provider = FactoryBot.create(:ems_autosde, :name => 'Autosde')
26+
2427
request = {
2528
"action" => "create",
2629
"resource" => {
@@ -37,7 +40,7 @@
3740

3841
it "Refuses to create without appropriate role" do
3942
api_basic_authorize
40-
provider = FactoryBot.create(:ems_autosde, :name => 'Autosde')
43+
4144
request = {
4245
"action" => "create",
4346
"resource" => {
@@ -53,9 +56,8 @@
5356

5457
it "Won't create for unsupported models" do
5558
api_basic_authorize(collection_action_identifier(:host_initiator_groups, :create))
56-
provider = FactoryBot.create(:ems_autosde, :name => 'Autosde')
5759

58-
stub_supports_not(ManageIQ::Providers::Autosde::StorageManager::HostInitiatorGroup, :create)
60+
stub_supports_not(host_initiator_group_klass, :create)
5961

6062
request = {
6163
"action" => "create",
@@ -73,23 +75,21 @@
7375
end
7476

7577
it "deletes a single Host Initiator Group" do
76-
provider = FactoryBot.create(:ems_autosde, :name => 'Autosde')
77-
host_initiator_group = FactoryBot.create("ManageIQ::Providers::Autosde::StorageManager::HostInitiatorGroup", :name => 'test_host_initiator_group', :ext_management_system => provider)
78+
host_initiator_group = FactoryBot.create(host_initiator_group_klass.name, :name => 'test_host_initiator_group', :ext_management_system => provider)
7879
api_basic_authorize('host_initiator_group_delete')
7980

80-
stub_supports(HostInitiatorGroup, :delete)
81+
stub_supports(host_initiator_group_klass, :delete)
8182
post(api_host_initiator_group_url(nil, host_initiator_group), :params => gen_request(:delete))
8283

8384
expect_single_action_result(:success => true, :message => /Deleting Host Initiator Group id: #{host_initiator_group.id} name: '#{host_initiator_group.name}'/)
8485
end
8586

8687
it "deletes multiple Host Initiator Groups" do
87-
provider = FactoryBot.create(:ems_autosde, :name => 'Autosde')
88-
host_initiator_group1 = FactoryBot.create("ManageIQ::Providers::Autosde::StorageManager::HostInitiatorGroup", :name => 'test_host_initiator_group1', :ext_management_system => provider)
89-
host_initiator_group2 = FactoryBot.create("ManageIQ::Providers::Autosde::StorageManager::HostInitiatorGroup", :name => 'test_host_initiator_group2', :ext_management_system => provider)
88+
host_initiator_group1 = FactoryBot.create(host_initiator_group_klass.name, :name => 'test_host_initiator_group1', :ext_management_system => provider)
89+
host_initiator_group2 = FactoryBot.create(host_initiator_group_klass.name, :name => 'test_host_initiator_group2', :ext_management_system => provider)
9090
api_basic_authorize('host_initiator_group_delete')
9191

92-
stub_supports(HostInitiatorGroup, :delete)
92+
stub_supports(host_initiator_group_klass, :delete)
9393
post(api_host_initiator_groups_url, :params => gen_request(:delete, [{"href" => api_host_initiator_group_url(nil, host_initiator_group1)}, {"href" => api_host_initiator_group_url(nil, host_initiator_group2)}]))
9494

9595
results = response.parsed_body["results"]

spec/requests/providers_spec.rb

+1
Original file line numberDiff line numberDiff line change
@@ -1629,6 +1629,7 @@ def gen_import_request
16291629
context 'valid provider' do
16301630
before do
16311631
class DummyProvider
1632+
include SupportsFeatureMixin
16321633
def self.permitted?
16331634
true
16341635
end

spec/requests/storage_services_spec.rb

+5-4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
include Spec::Support::SupportsHelper
33

44
let(:provider) { FactoryBot.create(:ems_autosde) }
5+
let(:storage_service_klass) { FactoryBot.build(:storage_service).class }
56

67
context "GET /api/storage_services" do
78
it "returns all storage_services" do
@@ -46,7 +47,7 @@
4647
"description" => "description of test_storage_service",
4748
}
4849
}
49-
stub_supports(StorageService, :create)
50+
stub_supports(storage_service_klass, :create)
5051
post(api_storage_services_url, :params => request)
5152
expect_multiple_action_result(1, :success => true, :message => /Creating Storage Service test_storage_service for Provider #{provider.name}/, :task => true)
5253
end
@@ -56,7 +57,7 @@
5657
service = FactoryBot.create(:storage_service, :name => 'test_service', :ext_management_system => provider)
5758
api_basic_authorize('storage_service_delete')
5859

59-
stub_supports(StorageService, :delete)
60+
stub_supports(storage_service_klass, :delete)
6061
post(api_storage_service_url(nil, service), :params => gen_request(:delete))
6162

6263
expect_single_action_result(:success => true, :message => /Deleting Storage Service id: #{service.id} name: '#{service.name}'/)
@@ -67,7 +68,7 @@
6768
service2 = FactoryBot.create(:storage_service, :name => 'test_service2', :ext_management_system => provider)
6869
api_basic_authorize('storage_service_delete')
6970

70-
stub_supports(StorageService, :delete)
71+
stub_supports(storage_service_klass, :delete)
7172
post(api_storage_services_url, :params => gen_request(:delete, [{"href" => api_storage_service_url(nil, service1)}, {"href" => api_storage_service_url(nil, service2)}]))
7273

7374
results = response.parsed_body["results"]
@@ -86,7 +87,7 @@
8687

8788
api_basic_authorize('storage_service_edit')
8889

89-
stub_supports(StorageService, :update)
90+
stub_supports(storage_service_klass, :update)
9091
put(api_storage_service_url(nil, storage_service))
9192

9293
expect(response.parsed_body["message"]).to include("Updating")

0 commit comments

Comments
 (0)