summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Doherty <cdoherty@chef.io>2015-11-18 13:56:21 -0800
committerChris Doherty <cdoherty@chef.io>2015-11-19 09:03:35 -0800
commit37f174edd6fe4407e3a33b0fc0a66ba988318237 (patch)
tree3bb53f7652d443e233f4f414356765ebcfdfb3c7
parent4a20aa1d4aa7be9255d693d7b8cb6d79dc68c862 (diff)
downloadchef-zero-jk/chef-fs-tests.tar.gz
Add rspec support for policies.jk/chef-fs-tests
-rw-r--r--lib/chef_zero/rspec.rb11
-rw-r--r--lib/chef_zero/server.rb10
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/chef_zero/rspec.rb b/lib/chef_zero/rspec.rb
index 2dd9a3a..29192b3 100644
--- a/lib/chef_zero/rspec.rb
+++ b/lib/chef_zero/rspec.rb
@@ -149,6 +149,10 @@ module ChefZero
before(chef_server_options[:server_scope]) { org_member(*usernames) }
end
+ def policy(name, data, &block)
+ before(chef_server_options[:server_scope]) { node(name, data, &block) }
+ end
+
def role(name, data, &block)
before(chef_server_options[:server_scope]) { role(name, data, &block) }
end
@@ -251,6 +255,13 @@ module ChefZero
ChefZero::RSpec.server.load_data({ 'members' => usernames }, current_org)
end
+ def policy(name, version, data)
+ with_object_path("policies/#{name}") do
+ ChefZero::RSpec.server.load_data({ 'policies' => { name => { version => data } } }, current_org)
+ instance_eval(&block) if block_given?
+ end
+ end
+
def role(name, data, &block)
with_object_path("roles/#{name}") do
ChefZero::RSpec.server.load_data({ 'roles' => { name => data } }, current_org)
diff --git a/lib/chef_zero/server.rb b/lib/chef_zero/server.rb
index 2b39046..6d3e597 100644
--- a/lib/chef_zero/server.rb
+++ b/lib/chef_zero/server.rb
@@ -443,6 +443,16 @@ module ChefZero
end
end
+ if contents['policies']
+ contents['policies'].each_pair do |policy_name, policy_struct|
+ # data_store.create_dir(['organizations', org_name, 'policies', policy_name], "revisions", :recursive)
+ dejsonize_children(policy_struct).each do |revision, policy_data|
+ data_store.set(['organizations', org_name, 'policies', policy_name,
+ "revisions", revision], policy_data, :create, :create_dir)
+ end
+ end
+ end
+
if contents['cookbooks']
contents['cookbooks'].each_pair do |name_version, cookbook|
if name_version =~ /(.+)-(\d+\.\d+\.\d+)$/