3 require 'puppet/provider/keystone_role/openstack'
5 provider_class = Puppet::Type.type(:keystone_role).provider(:openstack)
7 describe provider_class do
9 shared_examples 'authenticated with environment variables' do
10 ENV['OS_USERNAME'] = 'test'
11 ENV['OS_PASSWORD'] = 'abc123'
12 ENV['OS_PROJECT_NAME'] = 'test'
13 ENV['OS_AUTH_URL'] = 'http://127.0.0.1:5000'
16 describe 'when creating a role' do
17 it_behaves_like 'authenticated with environment variables' do
26 Puppet::Type::Keystone_role.new(role_attrs)
30 provider_class.new(resource)
34 it 'creates a role' do
35 provider.class.stubs(:openstack)
36 .with('role', 'list', '--quiet', '--format', 'csv', [])
38 "1cb05cfed7c24279be884ba4f6520262","foo"
40 provider.class.stubs(:openstack)
41 .with('role', 'create', '--format', 'shell', 'foo')
42 .returns('name="foo"')
44 expect(provider.exists?).to be_truthy
48 describe '#destroy' do
49 it 'destroys a role' do
50 provider.class.stubs(:openstack)
51 .with('role', 'list', '--quiet', '--format', 'csv', [])
52 .returns('"ID","Name"')
53 provider.class.stubs(:openstack)
54 .with('role', 'delete', [])
56 expect(provider.exists?).to be_falsey
62 context 'when role does not exist' do
64 provider.class.stubs(:openstack)
65 .with('role', 'list', '--quiet', '--format', 'csv', [])
66 .returns('"ID","Name"')
67 response = provider.exists?
69 it { is_expected.to be_falsey }
73 describe '#instances' do
74 it 'finds every role' do
75 provider.class.stubs(:openstack)
76 .with('role', 'list', '--quiet', '--format', 'csv', [])
78 "1cb05cfed7c24279be884ba4f6520262","foo"
80 instances = Puppet::Type::Keystone_role::ProviderOpenstack.instances
81 expect(instances.count).to eq(1)