]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/openstacklib/spec/defines/openstacklib_policy_spec.rb
89be58c798478789fa091091f276f8883f118cb6
[dsa-puppet.git] / 3rdparty / modules / openstacklib / spec / defines / openstacklib_policy_spec.rb
1 require 'spec_helper'
2
3 describe 'openstacklib::policy::base' do
4
5   let :title do
6     'nova-contest_is_admin'
7   end
8
9   let :params do
10     {:file_path => '/etc/nova/policy.json',
11     :key       => 'context_is_admin',
12     :value     => 'foo:bar'}
13   end
14
15   it 'configures the proper policy' do
16     should contain_augeas('/etc/nova/policy.json-context_is_admin-foo:bar').with(
17       'lens'    => 'Json.lns',
18       'incl'    => '/etc/nova/policy.json',
19       'changes' => 'set dict/entry[*][.="context_is_admin"]/string foo:bar',
20       'require' => 'Augeas[/etc/nova/policy.json-context_is_admin-foo:bar-add]'
21     )
22   end
23
24   it 'configures the proper policy' do
25     should contain_augeas('/etc/nova/policy.json-context_is_admin-foo:bar-add').with(
26       'lens'    => 'Json.lns',
27       'incl'    => '/etc/nova/policy.json',
28       'changes' => [
29           'set dict/entry[last()+1] "context_is_admin"',
30           'set dict/entry[last()]/string "foo:bar"'
31       ],
32       'onlyif' => 'match dict/entry[*][.="context_is_admin"] size == 0'
33     )
34   end
35
36 end
37