microwave 1.0.4 → 11.400.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CONTRIBUTING.md +155 -0
- data/README.md +89 -0
- data/Rakefile +2 -2
- data/bin/chef-apply +25 -0
- data/bin/chef-shell +34 -0
- data/bin/chef-solo +0 -2
- data/bin/shef +6 -5
- data/lib/chef.rb +2 -4
- data/spec/data/big_json.json +2 -1
- data/spec/data/big_json_plus_one.json +2 -1
- data/spec/data/cookbooks/chefignore +2 -0
- data/spec/data/cookbooks/openldap/attributes/default.rb +10 -9
- data/spec/data/cookbooks/openldap/attributes/smokey.rb +1 -1
- data/spec/data/git_bundles/sinatra-test-app-with-callback-files.gitbundle +0 -0
- data/spec/data/git_bundles/sinatra-test-app-with-symlinks.gitbundle +0 -0
- data/spec/data/git_bundles/sinatra-test-app.gitbundle +0 -0
- data/spec/data/lwrp/providers/inline_compiler.rb +26 -0
- data/spec/data/nodes/default.rb +3 -3
- data/spec/data/nodes/test.example.com.rb +3 -3
- data/spec/data/nodes/test.rb +3 -3
- data/spec/data/partial_one.erb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/attributes/default.rb +4 -0
- data/spec/data/run_context/cookbooks/circular-dep1/definitions/circular_dep1_res.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep1/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep1/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep1/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/circular-dep2/definitions/circular_dep2_res.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep2/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/circular-dep2/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/circular-dep2/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/aa_first.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/default.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/attributes/zz_last.rb +3 -0
- data/spec/data/run_context/cookbooks/dependency1/definitions/dependency1_res.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency1/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency1/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/dependency2/definitions/dependency2_res.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/dependency2/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/dependency2/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/attributes/server.rb +3 -0
- data/spec/data/run_context/cookbooks/no-default-attr/definitions/no_default-attr_res.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/no-default-attr/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/definitions/test_with-circular-deps_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/libraries/lib.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/metadata.rb +2 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/attributes/default.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-deps/definitions/test_with-deps_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/libraries/lib.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/metadata.rb +3 -0
- data/spec/data/run_context/cookbooks/test-with-deps/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/recipes/server.rb +0 -0
- data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
- data/spec/data/run_context/cookbooks/test/attributes/default.rb +0 -0
- data/spec/data/run_context/cookbooks/test/attributes/george.rb +1 -1
- data/spec/data/run_context/cookbooks/test/definitions/test_res.rb +1 -0
- data/spec/data/run_context/cookbooks/test/providers/provider.rb +1 -0
- data/spec/data/run_context/cookbooks/test/resources/resource.rb +1 -0
- data/spec/data/shef-config.rb +10 -0
- data/spec/functional/dsl/registry_helper_spec.rb +63 -0
- data/spec/functional/knife/cookbook_delete_spec.rb +0 -2
- data/spec/functional/knife/exec_spec.rb +4 -6
- data/spec/functional/knife/smoke_test.rb +34 -0
- data/spec/functional/knife/ssh_spec.rb +64 -3
- data/spec/functional/resource/cookbook_file_spec.rb +33 -2
- data/spec/functional/resource/deploy_revision_spec.rb +515 -0
- data/spec/functional/resource/directory_spec.rb +4 -0
- data/spec/functional/resource/file_spec.rb +56 -22
- data/spec/functional/resource/link_spec.rb +12 -10
- data/spec/functional/resource/registry_spec.rb +572 -0
- data/spec/functional/resource/remote_directory_spec.rb +142 -36
- data/spec/functional/resource/remote_file_spec.rb +28 -3
- data/spec/functional/resource/template_spec.rb +23 -2
- data/spec/functional/run_lock_spec.rb +238 -0
- data/spec/functional/shell_spec.rb +101 -0
- data/spec/functional/tiny_server_spec.rb +5 -4
- data/spec/functional/win32/registry_helper_spec.rb +632 -0
- data/spec/functional/win32/security_spec.rb +37 -0
- data/spec/spec_helper.rb +15 -3
- data/spec/stress/win32/security_spec.rb +5 -5
- data/spec/support/chef_helpers.rb +14 -3
- data/spec/support/lib/chef/resource/cat.rb +3 -5
- data/spec/support/lib/chef/resource/one_two_three_four.rb +8 -10
- data/spec/support/lib/chef/resource/zen_master.rb +8 -10
- data/spec/support/matchers/leak.rb +1 -1
- data/spec/support/platform_helpers.rb +18 -0
- data/spec/support/shared/functional/directory_resource.rb +85 -23
- data/spec/support/shared/functional/file_resource.rb +198 -53
- data/spec/support/shared/functional/securable_resource.rb +140 -105
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +375 -0
- data/spec/support/shared/unit/file_system_support.rb +110 -0
- data/spec/support/shared/unit/platform_introspector.rb +162 -0
- data/spec/tiny_server.rb +29 -10
- data/spec/unit/api_client/registration_spec.rb +172 -0
- data/spec/unit/api_client_spec.rb +156 -103
- data/spec/unit/application/apply.rb +84 -0
- data/spec/unit/application/knife_spec.rb +5 -0
- data/spec/unit/application_spec.rb +57 -2
- data/spec/unit/chef_fs/diff_spec.rb +329 -0
- data/spec/unit/chef_fs/file_pattern_spec.rb +526 -0
- data/spec/unit/chef_fs/file_system/chef_server_root_dir_spec.rb +237 -0
- data/spec/unit/chef_fs/file_system/cookbooks_dir_spec.rb +568 -0
- data/spec/unit/chef_fs/file_system/data_bags_dir_spec.rb +220 -0
- data/spec/unit/chef_fs/file_system_spec.rb +136 -0
- data/spec/unit/client_spec.rb +188 -16
- data/spec/unit/config_spec.rb +54 -4
- data/spec/unit/cookbook/chefignore_spec.rb +2 -1
- data/spec/unit/cookbook/syntax_check_spec.rb +48 -109
- data/spec/unit/cookbook_loader_spec.rb +153 -91
- data/spec/unit/cookbook_manifest_spec.rb +81 -81
- data/spec/unit/cookbook_spec.rb +3 -20
- data/spec/unit/cookbook_version_spec.rb +23 -122
- data/spec/unit/digester_spec.rb +50 -0
- data/spec/unit/dsl/data_query_spec.rb +66 -0
- data/spec/unit/dsl/platform_introspection_spec.rb +130 -0
- data/spec/unit/dsl/regsitry_helper_spec.rb +55 -0
- data/spec/unit/encrypted_data_bag_item_spec.rb +126 -10
- data/spec/unit/environment_spec.rb +0 -130
- data/spec/unit/exceptions_spec.rb +2 -3
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +23 -3
- data/spec/unit/json_compat_spec.rb +69 -0
- data/spec/unit/knife/bootstrap_spec.rb +81 -28
- data/spec/unit/knife/client_reregister_spec.rb +23 -22
- data/spec/unit/knife/configure_spec.rb +29 -26
- data/spec/unit/knife/cookbook_metadata_spec.rb +11 -4
- data/spec/unit/knife/cookbook_site_install_spec.rb +12 -2
- data/spec/unit/knife/cookbook_test_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +41 -2
- data/spec/unit/knife/core/bootstrap_context_spec.rb +8 -1
- data/spec/unit/knife/core/ui_spec.rb +156 -7
- data/spec/unit/knife/data_bag_create_spec.rb +14 -0
- data/spec/unit/knife/data_bag_edit_spec.rb +14 -4
- data/spec/unit/knife/data_bag_from_file_spec.rb +17 -5
- data/spec/unit/knife/data_bag_show_spec.rb +11 -4
- data/spec/unit/knife/index_rebuild_spec.rb +96 -33
- data/spec/unit/knife/knife_help.rb +7 -7
- data/spec/unit/knife/node_run_list_remove_spec.rb +2 -1
- data/spec/unit/knife/ssh_spec.rb +121 -15
- data/spec/unit/knife/status_spec.rb +2 -2
- data/spec/unit/knife/user_create_spec.rb +86 -0
- data/spec/unit/knife/user_delete_spec.rb +39 -0
- data/spec/unit/knife/user_edit_spec.rb +42 -0
- data/spec/unit/knife/user_list_spec.rb +32 -0
- data/spec/unit/knife/user_reregister_spec.rb +53 -0
- data/spec/unit/knife/user_show_spec.rb +41 -0
- data/spec/unit/knife_spec.rb +53 -0
- data/spec/unit/lwrp_spec.rb +59 -17
- data/spec/unit/mixin/checksum_spec.rb +2 -2
- data/spec/unit/mixin/deep_merge_spec.rb +56 -491
- data/spec/unit/mixin/deprecation_spec.rb +23 -0
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +6 -1
- data/spec/unit/mixin/params_validate_spec.rb +4 -2
- data/spec/unit/mixin/securable_spec.rb +5 -3
- data/spec/unit/mixin/template_spec.rb +119 -0
- data/spec/unit/node/attribute_spec.rb +272 -137
- data/spec/unit/node/immutable_collections_spec.rb +139 -0
- data/spec/unit/node_spec.rb +411 -339
- data/spec/unit/platform_spec.rb +8 -8
- data/spec/unit/provider/breakpoint_spec.rb +8 -8
- data/spec/unit/provider/cookbook_file_spec.rb +4 -8
- data/spec/unit/provider/deploy/revision_spec.rb +2 -8
- data/spec/unit/provider/deploy_spec.rb +6 -40
- data/spec/unit/provider/directory_spec.rb +103 -68
- data/spec/unit/provider/erl_call_spec.rb +0 -2
- data/spec/unit/provider/file_spec.rb +69 -59
- data/spec/unit/provider/git_spec.rb +0 -10
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/group/usermod_spec.rb +2 -2
- data/spec/unit/provider/http_request_spec.rb +28 -69
- data/spec/unit/provider/ifconfig_spec.rb +2 -2
- data/spec/unit/provider/link_spec.rb +1 -1
- data/spec/unit/provider/ohai_spec.rb +4 -4
- data/spec/unit/provider/package/apt_spec.rb +0 -1
- data/spec/unit/provider/package/ips_spec.rb +0 -1
- data/spec/unit/provider/package/rubygems_spec.rb +0 -18
- data/spec/unit/provider/package/yum_spec.rb +79 -15
- data/spec/unit/provider/package_spec.rb +7 -5
- data/spec/unit/provider/registry_key_spec.rb +269 -0
- data/spec/unit/provider/remote_directory_spec.rb +24 -7
- data/spec/unit/provider/remote_file_spec.rb +36 -0
- data/spec/unit/provider/route_spec.rb +3 -6
- data/spec/unit/provider/ruby_block_spec.rb +8 -0
- data/spec/unit/provider/service/arch_service_spec.rb +4 -4
- data/spec/unit/provider/service/debian_service_spec.rb +1 -1
- data/spec/unit/provider/service/freebsd_service_spec.rb +4 -4
- data/spec/unit/provider/service/init_service_spec.rb +26 -3
- data/spec/unit/provider/service/insserv_service_spec.rb +1 -1
- data/spec/unit/provider/service/invokercd_service_spec.rb +3 -3
- data/spec/unit/provider/service/redhat_spec.rb +1 -1
- data/spec/unit/provider/service/simple_service_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_service_spec.rb +7 -7
- data/spec/unit/provider/service_spec.rb +2 -2
- data/spec/unit/provider/subversion_spec.rb +1 -1
- data/spec/unit/provider/template_spec.rb +35 -11
- data/spec/unit/provider/user/dscl_spec.rb +57 -31
- data/spec/unit/provider/user_spec.rb +7 -16
- data/spec/unit/provider_spec.rb +4 -3
- data/spec/unit/recipe_spec.rb +10 -8
- data/spec/unit/registry_helper_spec.rb +376 -0
- data/spec/unit/resource/log_spec.rb +9 -0
- data/spec/unit/resource/registry_key_spec.rb +171 -0
- data/spec/unit/resource/remote_file_spec.rb +21 -23
- data/spec/unit/resource/ruby_block_spec.rb +7 -3
- data/spec/unit/resource/service_spec.rb +11 -0
- data/spec/unit/resource_spec.rb +27 -4
- data/spec/unit/rest/auth_credentials_spec.rb +2 -14
- data/spec/unit/rest_spec.rb +122 -187
- data/spec/unit/run_context/cookbook_compiler_spec.rb +181 -0
- data/spec/unit/run_context_spec.rb +18 -4
- data/spec/unit/run_list_spec.rb +0 -209
- data/spec/unit/run_lock_spec.rb +37 -0
- data/spec/unit/runner_spec.rb +101 -2
- data/spec/unit/scan_access_control_spec.rb +4 -4
- data/spec/unit/{shef → shell}/model_wrapper_spec.rb +5 -5
- data/spec/unit/{shef/shef_ext_spec.rb → shell/shell_ext_spec.rb} +21 -21
- data/spec/unit/{shef/shef_session_spec.rb → shell/shell_session_spec.rb} +12 -12
- data/spec/unit/shell_out_spec.rb +18 -0
- data/spec/unit/{shef_spec.rb → shell_spec.rb} +20 -20
- data/spec/unit/user_spec.rb +255 -0
- metadata +162 -157
- data/README.rdoc +0 -177
- data/spec/unit/certificate_spec.rb +0 -76
- data/spec/unit/checksum_cache_spec.rb +0 -209
- data/spec/unit/checksum_spec.rb +0 -94
- data/spec/unit/couchdb_spec.rb +0 -274
- data/spec/unit/index_queue_spec.rb +0 -391
- data/spec/unit/json_compat_spect.rb +0 -53
- data/spec/unit/mixin/language_spec.rb +0 -305
- data/spec/unit/openid_registration_spec.rb +0 -153
- data/spec/unit/solr_query/query_transform_spec.rb +0 -454
- data/spec/unit/solr_query/solr_http_request_spec.rb +0 -244
- data/spec/unit/solr_query_spec.rb +0 -203
- data/spec/unit/webui_user_spec.rb +0 -238
@@ -205,9 +205,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
205
205
|
|
206
206
|
it "should return a manifest record based on priority preference: host" do
|
207
207
|
node = Chef::Node.new
|
208
|
-
node[:platform] = "ubuntu"
|
209
|
-
node[:platform_version] = "9.10"
|
210
|
-
node[:fqdn] = "examplehost.example.org"
|
208
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
209
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
210
|
+
node.automatic_attrs[:fqdn] = "examplehost.example.org"
|
211
211
|
|
212
212
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "afile.rb")
|
213
213
|
manifest_record.should_not be_nil
|
@@ -216,9 +216,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
216
216
|
|
217
217
|
it "should return a manifest record based on priority preference: platform & full version" do
|
218
218
|
node = Chef::Node.new
|
219
|
-
node[:platform] = "ubuntu"
|
220
|
-
node[:platform_version] = "9.10"
|
221
|
-
node[:fqdn] = "differenthost.example.org"
|
219
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
220
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
221
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
222
222
|
|
223
223
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "afile.rb")
|
224
224
|
manifest_record.should_not be_nil
|
@@ -227,9 +227,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
227
227
|
|
228
228
|
it "should return a manifest record based on priority preference: platform & partial version" do
|
229
229
|
node = Chef::Node.new
|
230
|
-
node[:platform] = "newubuntu"
|
231
|
-
node[:platform_version] = "9.10"
|
232
|
-
node[:fqdn] = "differenthost.example.org"
|
230
|
+
node.automatic_attrs[:platform] = "newubuntu"
|
231
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
232
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
233
233
|
|
234
234
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "afile.rb")
|
235
235
|
manifest_record.should_not be_nil
|
@@ -238,9 +238,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
238
238
|
|
239
239
|
it "should return a manifest record based on priority preference: platform only" do
|
240
240
|
node = Chef::Node.new
|
241
|
-
node[:platform] = "ubuntu"
|
242
|
-
node[:platform_version] = "1.0"
|
243
|
-
node[:fqdn] = "differenthost.example.org"
|
241
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
242
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
243
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
244
244
|
|
245
245
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "afile.rb")
|
246
246
|
manifest_record.should_not be_nil
|
@@ -249,9 +249,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
249
249
|
|
250
250
|
it "should return a manifest record based on priority preference: default" do
|
251
251
|
node = Chef::Node.new
|
252
|
-
node[:platform] = "notubuntu"
|
253
|
-
node[:platform_version] = "1.0"
|
254
|
-
node[:fqdn] = "differenthost.example.org"
|
252
|
+
node.automatic_attrs[:platform] = "notubuntu"
|
253
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
254
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
255
255
|
|
256
256
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "afile.rb")
|
257
257
|
manifest_record.should_not be_nil
|
@@ -260,9 +260,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
260
260
|
|
261
261
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 1" do
|
262
262
|
node = Chef::Node.new
|
263
|
-
node[:platform] = "fakeos"
|
264
|
-
node[:platform_version] = "2.0.rc.1"
|
265
|
-
node[:fqdn] = "differenthost.example.org"
|
263
|
+
node.automatic_attrs[:platform] = "fakeos"
|
264
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
265
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
266
266
|
|
267
267
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "bfile.rb")
|
268
268
|
manifest_record.should_not be_nil
|
@@ -271,9 +271,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
271
271
|
|
272
272
|
it "should return a manifest record based on priority preference: platform & partial version - platform_version variant 1" do
|
273
273
|
node = Chef::Node.new
|
274
|
-
node[:platform] = "newfakeos"
|
275
|
-
node[:platform_version] = "2.0.rc.1"
|
276
|
-
node[:fqdn] = "differenthost.example.org"
|
274
|
+
node.automatic_attrs[:platform] = "newfakeos"
|
275
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
276
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
277
277
|
|
278
278
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "bfile.rb")
|
279
279
|
manifest_record.should_not be_nil
|
@@ -282,9 +282,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
282
282
|
|
283
283
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 2" do
|
284
284
|
node = Chef::Node.new
|
285
|
-
node[:platform] = "fakeos"
|
286
|
-
node[:platform_version] = "maple tree"
|
287
|
-
node[:fqdn] = "differenthost.example.org"
|
285
|
+
node.automatic_attrs[:platform] = "fakeos"
|
286
|
+
node.automatic_attrs[:platform_version] = "maple tree"
|
287
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
288
288
|
|
289
289
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "bfile.rb")
|
290
290
|
manifest_record.should_not be_nil
|
@@ -293,9 +293,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
293
293
|
|
294
294
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 3" do
|
295
295
|
node = Chef::Node.new
|
296
|
-
node[:platform] = "fakeos"
|
297
|
-
node[:platform_version] = "1"
|
298
|
-
node[:fqdn] = "differenthost.example.org"
|
296
|
+
node.automatic_attrs[:platform] = "fakeos"
|
297
|
+
node.automatic_attrs[:platform_version] = "1"
|
298
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
299
299
|
|
300
300
|
manifest_record = @cookbook.preferred_manifest_record(node, :files, "bfile.rb")
|
301
301
|
manifest_record.should_not be_nil
|
@@ -306,9 +306,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
306
306
|
|
307
307
|
it "should return a directory of manifest records based on priority preference: host" do
|
308
308
|
node = Chef::Node.new
|
309
|
-
node[:platform] = "ubuntu"
|
310
|
-
node[:platform_version] = "9.10"
|
311
|
-
node[:fqdn] = "examplehost.example.org"
|
309
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
310
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
311
|
+
node.automatic_attrs[:fqdn] = "examplehost.example.org"
|
312
312
|
|
313
313
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
314
314
|
manifest_records.should_not be_nil
|
@@ -320,9 +320,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
320
320
|
|
321
321
|
it "should return a directory of manifest records based on priority preference: platform & full version" do
|
322
322
|
node = Chef::Node.new
|
323
|
-
node[:platform] = "ubuntu"
|
324
|
-
node[:platform_version] = "9.10"
|
325
|
-
node[:fqdn] = "differenthost.example.org"
|
323
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
324
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
325
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
326
326
|
|
327
327
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
328
328
|
manifest_records.should_not be_nil
|
@@ -334,9 +334,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
334
334
|
|
335
335
|
it "should return a directory of manifest records based on priority preference: platform & partial version" do
|
336
336
|
node = Chef::Node.new
|
337
|
-
node[:platform] = "newubuntu"
|
338
|
-
node[:platform_version] = "9.10"
|
339
|
-
node[:fqdn] = "differenthost.example.org"
|
337
|
+
node.automatic_attrs[:platform] = "newubuntu"
|
338
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
339
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
340
340
|
|
341
341
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
342
342
|
manifest_records.should_not be_nil
|
@@ -348,9 +348,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
348
348
|
|
349
349
|
it "should return a directory of manifest records based on priority preference: platform only" do
|
350
350
|
node = Chef::Node.new
|
351
|
-
node[:platform] = "ubuntu"
|
352
|
-
node[:platform_version] = "1.0"
|
353
|
-
node[:fqdn] = "differenthost.example.org"
|
351
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
352
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
353
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
354
354
|
|
355
355
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
356
356
|
manifest_records.should_not be_nil
|
@@ -362,9 +362,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
362
362
|
|
363
363
|
it "should return a directory of manifest records based on priority preference: default" do
|
364
364
|
node = Chef::Node.new
|
365
|
-
node[:platform] = "notubuntu"
|
366
|
-
node[:platform_version] = "1.0"
|
367
|
-
node[:fqdn] = "differenthost.example.org"
|
365
|
+
node.automatic_attrs[:platform] = "notubuntu"
|
366
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
367
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
368
368
|
|
369
369
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
370
370
|
manifest_records.should_not be_nil
|
@@ -376,9 +376,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
376
376
|
|
377
377
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 1" do
|
378
378
|
node = Chef::Node.new
|
379
|
-
node[:platform] = "fakeos"
|
380
|
-
node[:platform_version] = "2.0.rc.1"
|
381
|
-
node[:fqdn] = "differenthost.example.org"
|
379
|
+
node.automatic_attrs[:platform] = "fakeos"
|
380
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
381
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
382
382
|
|
383
383
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
384
384
|
manifest_records.should_not be_nil
|
@@ -390,9 +390,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
390
390
|
|
391
391
|
it "should return a manifest record based on priority preference: platform & partial version - platform_version variant 1" do
|
392
392
|
node = Chef::Node.new
|
393
|
-
node[:platform] = "newfakeos"
|
394
|
-
node[:platform_version] = "2.0.rc.1"
|
395
|
-
node[:fqdn] = "differenthost.example.org"
|
393
|
+
node.automatic_attrs[:platform] = "newfakeos"
|
394
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
395
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
396
396
|
|
397
397
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
398
398
|
manifest_records.should_not be_nil
|
@@ -404,9 +404,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
404
404
|
|
405
405
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 2" do
|
406
406
|
node = Chef::Node.new
|
407
|
-
node[:platform] = "fakeos"
|
408
|
-
node[:platform_version] = "maple tree"
|
409
|
-
node[:fqdn] = "differenthost.example.org"
|
407
|
+
node.automatic_attrs[:platform] = "fakeos"
|
408
|
+
node.automatic_attrs[:platform_version] = "maple tree"
|
409
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
410
410
|
|
411
411
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
412
412
|
manifest_records.should_not be_nil
|
@@ -418,9 +418,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
418
418
|
|
419
419
|
it "should return a manifest record based on priority preference: platform & full version - platform_version variant 3" do
|
420
420
|
node = Chef::Node.new
|
421
|
-
node[:platform] = "fakeos"
|
422
|
-
node[:platform_version] = "1"
|
423
|
-
node[:fqdn] = "differenthost.example.org"
|
421
|
+
node.automatic_attrs[:platform] = "fakeos"
|
422
|
+
node.automatic_attrs[:platform_version] = "1"
|
423
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
424
424
|
|
425
425
|
manifest_records = @cookbook.preferred_manifest_records_for_directory(node, :files, "adirectory")
|
426
426
|
manifest_records.should_not be_nil
|
@@ -436,9 +436,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
436
436
|
describe "when globbing for relative file paths based on filespecificity" do
|
437
437
|
it "should return a list of relative paths based on priority preference: host" do
|
438
438
|
node = Chef::Node.new
|
439
|
-
node[:platform] = "ubuntu"
|
440
|
-
node[:platform_version] = "9.10"
|
441
|
-
node[:fqdn] = "examplehost.example.org"
|
439
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
440
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
441
|
+
node.automatic_attrs[:fqdn] = "examplehost.example.org"
|
442
442
|
|
443
443
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
444
444
|
filenames.should_not be_nil
|
@@ -449,9 +449,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
449
449
|
|
450
450
|
it "should return a list of relative paths based on priority preference: platform & full version" do
|
451
451
|
node = Chef::Node.new
|
452
|
-
node[:platform] = "ubuntu"
|
453
|
-
node[:platform_version] = "9.10"
|
454
|
-
node[:fqdn] = "differenthost.example.org"
|
452
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
453
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
454
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
455
455
|
|
456
456
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
457
457
|
filenames.should_not be_nil
|
@@ -462,9 +462,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
462
462
|
|
463
463
|
it "should return a list of relative paths based on priority preference: platform & partial version" do
|
464
464
|
node = Chef::Node.new
|
465
|
-
node[:platform] = "newubuntu"
|
466
|
-
node[:platform_version] = "9.10"
|
467
|
-
node[:fqdn] = "differenthost.example.org"
|
465
|
+
node.automatic_attrs[:platform] = "newubuntu"
|
466
|
+
node.automatic_attrs[:platform_version] = "9.10"
|
467
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
468
468
|
|
469
469
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
470
470
|
filenames.should_not be_nil
|
@@ -475,9 +475,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
475
475
|
|
476
476
|
it "should return a list of relative paths based on priority preference: platform only" do
|
477
477
|
node = Chef::Node.new
|
478
|
-
node[:platform] = "ubuntu"
|
479
|
-
node[:platform_version] = "1.0"
|
480
|
-
node[:fqdn] = "differenthost.example.org"
|
478
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
479
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
480
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
481
481
|
|
482
482
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
483
483
|
filenames.should_not be_nil
|
@@ -488,9 +488,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
488
488
|
|
489
489
|
it "should return a list of relative paths based on priority preference: default" do
|
490
490
|
node = Chef::Node.new
|
491
|
-
node[:platform] = "notubuntu"
|
492
|
-
node[:platform_version] = "1.0"
|
493
|
-
node[:fqdn] = "differenthost.example.org"
|
491
|
+
node.automatic_attrs[:platform] = "notubuntu"
|
492
|
+
node.automatic_attrs[:platform_version] = "1.0"
|
493
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
494
494
|
|
495
495
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
496
496
|
filenames.should_not be_nil
|
@@ -501,9 +501,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
501
501
|
|
502
502
|
it "should return a list of relative paths based on priority preference: platform & full version - platform_version variant 1" do
|
503
503
|
node = Chef::Node.new
|
504
|
-
node[:platform] = "fakeos"
|
505
|
-
node[:platform_version] = "2.0.rc.1"
|
506
|
-
node[:fqdn] = "differenthost.example.org"
|
504
|
+
node.automatic_attrs[:platform] = "fakeos"
|
505
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
506
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
507
507
|
|
508
508
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
509
509
|
filenames.should_not be_nil
|
@@ -514,9 +514,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
514
514
|
|
515
515
|
it "should return a list of relative paths based on priority preference: platform & partial version - platform_version variant 1" do
|
516
516
|
node = Chef::Node.new
|
517
|
-
node[:platform] = "newfakeos"
|
518
|
-
node[:platform_version] = "2.0.rc.1"
|
519
|
-
node[:fqdn] = "differenthost.example.org"
|
517
|
+
node.automatic_attrs[:platform] = "newfakeos"
|
518
|
+
node.automatic_attrs[:platform_version] = "2.0.rc.1"
|
519
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
520
520
|
|
521
521
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
522
522
|
filenames.should_not be_nil
|
@@ -527,9 +527,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
527
527
|
|
528
528
|
it "should return a list of relative paths based on priority preference: platform & full version - platform_version variant 2" do
|
529
529
|
node = Chef::Node.new
|
530
|
-
node[:platform] = "fakeos"
|
531
|
-
node[:platform_version] = "maple tree"
|
532
|
-
node[:fqdn] = "differenthost.example.org"
|
530
|
+
node.automatic_attrs[:platform] = "fakeos"
|
531
|
+
node.automatic_attrs[:platform_version] = "maple tree"
|
532
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
533
533
|
|
534
534
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
535
535
|
filenames.should_not be_nil
|
@@ -540,9 +540,9 @@ describe "Chef::CookbookVersion manifest" do
|
|
540
540
|
|
541
541
|
it "should return a list of relative paths based on priority preference: platform & full version - platform_version variant 3" do
|
542
542
|
node = Chef::Node.new
|
543
|
-
node[:platform] = "fakeos"
|
544
|
-
node[:platform_version] = "1"
|
545
|
-
node[:fqdn] = "differenthost.example.org"
|
543
|
+
node.automatic_attrs[:platform] = "fakeos"
|
544
|
+
node.automatic_attrs[:platform_version] = "1"
|
545
|
+
node.automatic_attrs[:fqdn] = "differenthost.example.org"
|
546
546
|
|
547
547
|
filenames = @cookbook.relative_filenames_in_preferred_directory(node, :files, "adirectory")
|
548
548
|
filenames.should_not be_nil
|
data/spec/unit/cookbook_spec.rb
CHANGED
@@ -22,7 +22,9 @@ describe Chef::CookbookVersion do
|
|
22
22
|
# COOKBOOK_PATH = File.expand_path(File.join(File.dirname(__FILE__), "..", "data", "cookbooks", "openldap"))
|
23
23
|
before(:each) do
|
24
24
|
@cookbook_repo = File.expand_path(File.join(File.dirname(__FILE__), "..", "data", "cookbooks"))
|
25
|
-
|
25
|
+
cl = Chef::CookbookLoader.new(@cookbook_repo)
|
26
|
+
cl.load_cookbooks
|
27
|
+
@cookbook_collection = Chef::CookbookCollection.new(cl)
|
26
28
|
@cookbook = @cookbook_collection[:openldap]
|
27
29
|
@node = Chef::Node.new
|
28
30
|
@node.name "JuliaChild"
|
@@ -66,20 +68,6 @@ describe Chef::CookbookVersion do
|
|
66
68
|
@cookbook.preferred_filename(@node, :files, 'a-filename', 'the-checksum').should be_nil
|
67
69
|
end
|
68
70
|
|
69
|
-
# TODO: timh, cw: 5/20/2010: removed CookbookVersion.recipe? as it's not used; see cookbook.rb
|
70
|
-
# it "should allow you to test for a recipe with recipe?" do
|
71
|
-
# @cookbook.recipe_filenames = [ "one", "two" ]
|
72
|
-
# @cookbook.recipe?("one").should eql(true)
|
73
|
-
# @cookbook.recipe?("shanghai").should eql(false)
|
74
|
-
# end
|
75
|
-
|
76
|
-
# TODO: timh, cw: 5/20/2010: removed CookbookVersion.recipe? as it's not used; see cookbook.rb
|
77
|
-
# it "should allow you to test for a recipe? with a fq recipe name" do
|
78
|
-
# @cookbook.recipe_filenames = [ "one", "two" ]
|
79
|
-
# @cookbook.recipe?("openldap::one").should eql(true)
|
80
|
-
# @cookbook.recipe?("shanghai::city").should eql(false)
|
81
|
-
# end
|
82
|
-
|
83
71
|
it "should allow you to include a fully-qualified recipe using the DSL" do
|
84
72
|
# DSL method include_recipe allows multiple arguments, so extract the first
|
85
73
|
recipe = @run_context.include_recipe("openldap::gigantor").first
|
@@ -93,9 +81,4 @@ describe Chef::CookbookVersion do
|
|
93
81
|
lambda { @cookbook.load_recipe("doesnt_exist", @node) }.should raise_error(ArgumentError)
|
94
82
|
end
|
95
83
|
|
96
|
-
it "should allow you to load an attribute file by name via load_attribute" do
|
97
|
-
@node.include_attribute("openldap::smokey")
|
98
|
-
@node.smokey.should == "robinson"
|
99
|
-
end
|
100
|
-
|
101
84
|
end
|
@@ -6,9 +6,9 @@
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
7
|
# you may not use this file except in compliance with the License.
|
8
8
|
# You may obtain a copy of the License at
|
9
|
-
#
|
9
|
+
#
|
10
10
|
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
-
#
|
11
|
+
#
|
12
12
|
# Unless required by applicable law or agreed to in writing, software
|
13
13
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
14
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
@@ -17,56 +17,10 @@
|
|
17
17
|
|
18
18
|
require 'spec_helper'
|
19
19
|
|
20
|
-
describe Chef::MinimalCookbookVersion do
|
21
|
-
describe "when first created" do
|
22
|
-
before do
|
23
|
-
@params = { "id"=>"1a806f1c-b409-4d8e-abab-fa414ff5b96d",
|
24
|
-
"key"=>"activemq",
|
25
|
-
"value"=>{"version"=>"0.3.3", "deps"=>{"java"=>">= 0.0.0", "runit"=>">= 0.0.0"}}}
|
26
|
-
@minimal_cookbook_version = Chef::MinimalCookbookVersion.new(@params)
|
27
|
-
end
|
28
|
-
|
29
|
-
it "has a name" do
|
30
|
-
@minimal_cookbook_version.name.should == 'activemq'
|
31
|
-
end
|
32
|
-
|
33
|
-
it "has a version" do
|
34
|
-
@minimal_cookbook_version.version.should == '0.3.3'
|
35
|
-
end
|
36
|
-
|
37
|
-
it "has a list of dependencies" do
|
38
|
-
@minimal_cookbook_version.deps.should == {"java" => ">= 0.0.0", "runit" => ">= 0.0.0"}
|
39
|
-
end
|
40
|
-
|
41
|
-
it "has cookbook metadata" do
|
42
|
-
metadata = @minimal_cookbook_version.metadata
|
43
|
-
|
44
|
-
metadata.name.should == 'activemq'
|
45
|
-
metadata.dependencies['java'].should == '>= 0.0.0'
|
46
|
-
metadata.dependencies['runit'].should == '>= 0.0.0'
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "when created from cookbooks with old style version contraints" do
|
51
|
-
before do
|
52
|
-
@params = { "id"=>"1a806f1c-b409-4d8e-abab-fa414ff5b96d",
|
53
|
-
"key"=>"activemq",
|
54
|
-
"value"=>{"version"=>"0.3.3", "deps"=>{"apt" => ">> 1.0.0"}}}
|
55
|
-
@minimal_cookbook_version = Chef::MinimalCookbookVersion.new(@params)
|
56
|
-
end
|
57
|
-
|
58
|
-
it "translates the version constraints" do
|
59
|
-
metadata = @minimal_cookbook_version.metadata
|
60
|
-
metadata.dependencies['apt'].should == '> 1.0.0'
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
20
|
describe Chef::CookbookVersion do
|
66
21
|
describe "when first created" do
|
67
22
|
before do
|
68
|
-
@
|
69
|
-
@cookbook_version = Chef::CookbookVersion.new("tatft", @couchdb_driver)
|
23
|
+
@cookbook_version = Chef::CookbookVersion.new("tatft")
|
70
24
|
end
|
71
25
|
|
72
26
|
it "has a name" do
|
@@ -114,14 +68,6 @@ describe Chef::CookbookVersion do
|
|
114
68
|
@cookbook_version.should be_frozen_version
|
115
69
|
end
|
116
70
|
|
117
|
-
it "has no couchdb id" do
|
118
|
-
@cookbook_version.couchdb_id.should be_nil
|
119
|
-
end
|
120
|
-
|
121
|
-
it "has the couchdb driver it was given on create" do
|
122
|
-
@cookbook_version.couchdb.should equal(@couchdb_driver)
|
123
|
-
end
|
124
|
-
|
125
71
|
it "is \"ready\"" do
|
126
72
|
# WTF is this? what are the valid states? and why aren't they set with encapsulating methods?
|
127
73
|
# [Dan 15-Jul-2010]
|
@@ -133,19 +79,19 @@ describe Chef::CookbookVersion do
|
|
133
79
|
end
|
134
80
|
|
135
81
|
it "creates a manifest hash of its contents" do
|
136
|
-
expected = {"recipes"=>[],
|
137
|
-
"definitions"=>[],
|
138
|
-
"libraries"=>[],
|
139
|
-
"attributes"=>[],
|
140
|
-
"files"=>[],
|
141
|
-
"templates"=>[],
|
142
|
-
"resources"=>[],
|
143
|
-
"providers"=>[],
|
144
|
-
"root_files"=>[],
|
145
|
-
"cookbook_name"=>"tatft",
|
82
|
+
expected = {"recipes"=>[],
|
83
|
+
"definitions"=>[],
|
84
|
+
"libraries"=>[],
|
85
|
+
"attributes"=>[],
|
86
|
+
"files"=>[],
|
87
|
+
"templates"=>[],
|
88
|
+
"resources"=>[],
|
89
|
+
"providers"=>[],
|
90
|
+
"root_files"=>[],
|
91
|
+
"cookbook_name"=>"tatft",
|
146
92
|
"metadata"=>Chef::Cookbook::Metadata.new,
|
147
|
-
"version"=>"0.0.0",
|
148
|
-
"name"=>"tatft-0.0.0"}
|
93
|
+
"version"=>"0.0.0",
|
94
|
+
"name"=>"tatft-0.0.0"}
|
149
95
|
@cookbook_version.manifest.should == expected
|
150
96
|
end
|
151
97
|
end
|
@@ -267,7 +213,12 @@ describe Chef::CookbookVersion do
|
|
267
213
|
|
268
214
|
describe "raises an error when attempting to load a missing cookbook_file and" do
|
269
215
|
before do
|
270
|
-
node = Chef::Node.new.tap
|
216
|
+
node = Chef::Node.new.tap do |n|
|
217
|
+
n.name("sample.node")
|
218
|
+
n.automatic_attrs[:fqdn] = "sample.example.com"
|
219
|
+
n.automatic_attrs[:platform] = "ubuntu"
|
220
|
+
n.automatic_attrs[:platform_version] = "10.04"
|
221
|
+
end
|
271
222
|
@attempt_to_load_file = lambda { @cookbook_version.preferred_manifest_record(node, :files, "no-such-thing.txt") }
|
272
223
|
end
|
273
224
|
|
@@ -275,7 +226,7 @@ describe Chef::CookbookVersion do
|
|
275
226
|
useful_explanation = Regexp.new(Regexp.escape("Cookbook 'tatft' (0.0.0) does not contain"))
|
276
227
|
@attempt_to_load_file.should raise_error(Chef::Exceptions::FileNotFound, useful_explanation)
|
277
228
|
end
|
278
|
-
|
229
|
+
|
279
230
|
it "lists suggested places to look" do
|
280
231
|
useful_explanation = Regexp.new(Regexp.escape("files/default/no-such-thing.txt"))
|
281
232
|
@attempt_to_load_file.should raise_error(Chef::Exceptions::FileNotFound, useful_explanation)
|
@@ -320,7 +271,7 @@ describe Chef::CookbookVersion do
|
|
320
271
|
b.version = "1.2.0"
|
321
272
|
a.should == b
|
322
273
|
end
|
323
|
-
|
274
|
+
|
324
275
|
|
325
276
|
it "should not allow you to sort cookbooks with different names" do
|
326
277
|
apt = Chef::CookbookVersion.new "apt"
|
@@ -353,54 +304,4 @@ describe Chef::CookbookVersion do
|
|
353
304
|
|
354
305
|
end
|
355
306
|
|
356
|
-
describe "when deleting in the database" do
|
357
|
-
before do
|
358
|
-
@couchdb_driver = Chef::CouchDB.new
|
359
|
-
@cookbook_version = Chef::CookbookVersion.new("tatft", @couchdb_driver)
|
360
|
-
@cookbook_version.version = "1.2.3"
|
361
|
-
@couchdb_rev = "_123456789"
|
362
|
-
@cookbook_version.couchdb_rev = @couchdb_rev
|
363
|
-
end
|
364
|
-
|
365
|
-
it "deletes its document from couchdb" do
|
366
|
-
@couchdb_driver.should_receive(:delete).with("cookbook_version", "tatft-1.2.3", @couchdb_rev)
|
367
|
-
@cookbook_version.cdb_destroy
|
368
|
-
end
|
369
|
-
|
370
|
-
it "deletes associated checksum objects when purged" do
|
371
|
-
checksums = {"12345" => "/tmp/foo", "23456" => "/tmp/bar", "34567" => "/tmp/baz"}
|
372
|
-
@cookbook_version.stub!(:checksums).and_return(checksums)
|
373
|
-
|
374
|
-
chksum_docs = checksums.map do |md5, path|
|
375
|
-
cksum_doc = mock("Chef::Checksum for #{md5} at #{path}")
|
376
|
-
Chef::Checksum.should_receive(:cdb_load).with(md5, @couchdb_driver).and_return(cksum_doc)
|
377
|
-
cksum_doc.should_receive(:purge)
|
378
|
-
cksum_doc
|
379
|
-
end
|
380
|
-
|
381
|
-
@cookbook_version.should_receive(:cdb_destroy)
|
382
|
-
@cookbook_version.purge
|
383
|
-
end
|
384
|
-
|
385
|
-
it "successfully purges when associated checksum objects are missing" do
|
386
|
-
checksums = {"12345" => "/tmp/foo", "23456" => "/tmp/bar", "34567" => "/tmp/baz"}
|
387
|
-
|
388
|
-
chksum_docs = checksums.map do |md5, path|
|
389
|
-
cksum_doc = mock("Chef::Checksum for #{md5} at #{path}")
|
390
|
-
Chef::Checksum.should_receive(:cdb_load).with(md5, @couchdb_driver).and_return(cksum_doc)
|
391
|
-
cksum_doc.should_receive(:purge)
|
392
|
-
cksum_doc
|
393
|
-
end
|
394
|
-
|
395
|
-
missing_checksum = {"99999" => "/tmp/qux"}
|
396
|
-
Chef::Checksum.should_receive(:cdb_load).with("99999", @couchdb_driver).and_raise(Chef::Exceptions::CouchDBNotFound)
|
397
|
-
|
398
|
-
@cookbook_version.stub!(:checksums).and_return(checksums.merge(missing_checksum))
|
399
|
-
|
400
|
-
@cookbook_version.should_receive(:cdb_destroy)
|
401
|
-
lambda {@cookbook_version.purge}.should_not raise_error
|
402
|
-
end
|
403
|
-
|
404
|
-
end
|
405
|
-
|
406
307
|
end
|