X-Git-Url: https://git.donarmstrong.com/?p=dsa-puppet.git;a=blobdiff_plain;f=3rdparty%2Fmodules%2Fkeystone%2Fspec%2Funit%2Fprovider%2Fkeystone_tenant%2Fopenstack_spec.rb;fp=3rdparty%2Fmodules%2Fkeystone%2Fspec%2Funit%2Fprovider%2Fkeystone_tenant%2Fopenstack_spec.rb;h=11861fc8b26fde7e5c5fc6ec13582cf2bb37640e;hp=0000000000000000000000000000000000000000;hb=b8fa2c1a5ec9dbcd1d2f9e9b41afdde4c603aa35;hpb=b7626cbcbb2fb8e7ce3dc5ac60e80a981175f9d3 diff --git a/3rdparty/modules/keystone/spec/unit/provider/keystone_tenant/openstack_spec.rb b/3rdparty/modules/keystone/spec/unit/provider/keystone_tenant/openstack_spec.rb new file mode 100644 index 00000000..11861fc8 --- /dev/null +++ b/3rdparty/modules/keystone/spec/unit/provider/keystone_tenant/openstack_spec.rb @@ -0,0 +1,106 @@ +require 'puppet' +require 'spec_helper' +require 'puppet/provider/keystone_tenant/openstack' + +provider_class = Puppet::Type.type(:keystone_tenant).provider(:openstack) + +describe provider_class do + + describe 'when updating a tenant' do + + let(:tenant_attrs) do + { + :name => 'foo', + :description => 'foo', + :ensure => 'present', + :enabled => 'True', + :auth => { + 'username' => 'test', + 'password' => 'abc123', + 'tenant_name' => 'foo', + 'auth_url' => 'http://127.0.0.1:5000/v2.0', + } + } + end + + let(:resource) do + Puppet::Type::Keystone_tenant.new(tenant_attrs) + end + + let(:provider) do + provider_class.new(resource) + end + + describe '#create' do + it 'creates a tenant' do + provider.class.stubs(:openstack) + .with('project', 'list', '--quiet', '--format', 'csv', [['--long', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']]) + .returns('"ID","Name","Description","Enabled" +"1cb05cfed7c24279be884ba4f6520262","foo","foo",True +') + provider.class.stubs(:openstack) + .with('project', 'create', '--format', 'shell', [['foo', '--enable', '--description', 'foo', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']]) + .returns('description="foo" +enabled="True" +name="foo" +') + provider.create + expect(provider.exists?).to be_truthy + end + end + + describe '#destroy' do + it 'destroys a tenant' do + provider.class.stubs(:openstack) + .with('project', 'list', '--quiet', '--format', 'csv', [['--long', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']]) + .returns('"ID","Name","Description","Enabled"') + provider.class.stubs(:openstack) + .with('project', 'delete', [['foo', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']]) + provider.destroy + expect(provider.exists?).to be_falsey + end + + end + + describe '#exists' do + context 'when tenant exists' do + + subject(:response) do + provider.class.stubs(:openstack) + .with('project', 'list', '--quiet', '--format', 'csv', [['--long', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']]) + .returns('"ID","Name","Description","Enabled" +"1cb05cfed7c24279be884ba4f6520262","foo","foo",True +') + response = provider.exists? + end + + it { is_expected.to be_truthy } + end + + context 'when tenant does not exist' do + + subject(:response) do + provider.class.stubs(:openstack) + .with('project', 'list', '--quiet', '--format', 'csv', [['--long', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']]) + .returns('"ID","Name","Description","Enabled"') + response = provider.exists? + end + + it { is_expected.to be_falsey } + end + end + + describe '#instances' do + it 'finds every tenant' do + provider.class.stubs(:openstack) + .with('project', 'list', '--quiet', '--format', 'csv', [['--long', '--os-username', 'test', '--os-password', 'abc123', '--os-tenant-name', 'foo', '--os-auth-url', 'http://127.0.0.1:5000/v2.0']]) + .returns('"ID","Name","Description","Enabled" +"1cb05cfed7c24279be884ba4f6520262","foo","foo",True +') + instances = provider.instances + expect(instances.count).to eq(1) + end + end + + end +end