chef 11.16.4-x86-mingw32 → 11.18.0-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +2 -2
- data/lib/chef/api_client.rb +1 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -2
- data/lib/chef/chef_fs/command_line.rb +3 -2
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +5 -1
- data/lib/chef/chef_fs/file_system/acl_entry.rb +2 -1
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +2 -1
- data/lib/chef/chef_fs/file_system/rest_list_dir.rb +3 -2
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +5 -4
- data/lib/chef/config_fetcher.rb +1 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +4 -4
- data/lib/chef/cookbook/metadata.rb +1 -1
- data/lib/chef/cookbook_version.rb +2 -2
- data/lib/chef/data_bag.rb +1 -1
- data/lib/chef/data_bag_item.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
- data/lib/chef/environment.rb +1 -1
- data/lib/chef/exceptions.rb +19 -2
- data/lib/chef/json_compat.rb +64 -45
- data/lib/chef/knife/bootstrap.rb +2 -2
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/centos5-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/chef-aix.erb +2 -2
- data/lib/chef/knife/bootstrap/chef-full.erb +2 -2
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +2 -2
- data/lib/chef/knife/cookbook_site_download.rb +1 -1
- data/lib/chef/knife/cookbook_site_install.rb +34 -10
- data/lib/chef/knife/cookbook_site_list.rb +1 -1
- data/lib/chef/knife/cookbook_site_search.rb +1 -1
- data/lib/chef/knife/cookbook_site_share.rb +2 -2
- data/lib/chef/knife/cookbook_site_show.rb +3 -3
- data/lib/chef/knife/cookbook_site_unshare.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +24 -0
- data/lib/chef/knife/deps.rb +3 -2
- data/lib/chef/node.rb +1 -1
- data/lib/chef/provider/deploy/revision.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +32 -5
- data/lib/chef/provider/env.rb +25 -10
- data/lib/chef/provider/remote_file/cache_control_data.rb +1 -1
- data/lib/chef/resource.rb +1 -1
- data/lib/chef/resource/dsc_script.rb +2 -16
- data/lib/chef/resource_collection.rb +1 -1
- data/lib/chef/resource_reporter.rb +3 -3
- data/lib/chef/role.rb +1 -1
- data/lib/chef/run_list.rb +1 -1
- data/lib/chef/user.rb +1 -1
- data/lib/chef/util/dsc/local_configuration_manager.rb +15 -11
- data/lib/chef/util/powershell/cmdlet_result.rb +2 -2
- data/lib/chef/version.rb +1 -2
- data/spec/data/bootstrap/test-hints.erb +1 -1
- data/spec/data/bootstrap/test.erb +1 -1
- data/spec/functional/knife/cookbook_delete_spec.rb +3 -3
- data/spec/functional/knife/exec_spec.rb +1 -1
- data/spec/functional/resource/dsc_script_spec.rb +92 -47
- data/spec/functional/resource/env_spec.rb +3 -4
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -2
- data/spec/integration/knife/chef_fs_data_store_spec.rb +1 -1
- data/spec/integration/knife/chef_repo_path_spec.rb +6 -1
- data/spec/integration/knife/chef_repository_file_system_spec.rb +1 -1
- data/spec/integration/knife/chefignore_spec.rb +1 -1
- data/spec/integration/knife/common_options_spec.rb +1 -1
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
- data/spec/integration/knife/delete_spec.rb +1 -1
- data/spec/integration/knife/deps_spec.rb +1 -1
- data/spec/integration/knife/diff_spec.rb +3 -3
- data/spec/integration/knife/download_spec.rb +3 -3
- data/spec/integration/knife/list_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +11 -1
- data/spec/integration/knife/redirection_spec.rb +1 -1
- data/spec/integration/knife/serve_spec.rb +1 -1
- data/spec/integration/knife/show_spec.rb +1 -1
- data/spec/integration/knife/upload_spec.rb +9 -9
- data/spec/spec_helper.rb +6 -0
- data/spec/support/shared/integration/integration_helper.rb +1 -2
- data/spec/support/shared/shared_examples.rb +10 -0
- data/spec/tiny_server.rb +2 -1
- data/spec/unit/api_client_spec.rb +3 -3
- data/spec/unit/chef_fs/data_handler/group_handler_spec.rb +63 -0
- data/spec/unit/config_fetcher_spec.rb +1 -1
- data/spec/unit/cookbook/metadata_spec.rb +7 -3
- data/spec/unit/cookbook_loader_spec.rb +1 -1
- data/spec/unit/cookbook_version_spec.rb +4 -0
- data/spec/unit/data_bag_item_spec.rb +5 -1
- data/spec/unit/data_bag_spec.rb +5 -1
- data/spec/unit/deprecation_spec.rb +1 -1
- data/spec/unit/encrypted_data_bag_item_spec.rb +14 -7
- data/spec/unit/environment_spec.rb +7 -3
- data/spec/unit/exceptions_spec.rb +6 -0
- data/spec/unit/json_compat_spec.rb +58 -17
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -1
- data/spec/unit/knife/cookbook_site_download_spec.rb +2 -1
- data/spec/unit/knife/cookbook_site_install_spec.rb +161 -116
- data/spec/unit/knife/cookbook_site_share_spec.rb +6 -6
- data/spec/unit/knife/core/bootstrap_context_spec.rb +2 -2
- data/spec/unit/knife/core/subcommand_loader_spec.rb +66 -1
- data/spec/unit/knife/data_bag_from_file_spec.rb +1 -2
- data/spec/unit/node_spec.rb +4 -0
- data/spec/unit/provider/dsc_script_spec.rb +134 -105
- data/spec/unit/provider/env/windows_spec.rb +2 -2
- data/spec/unit/provider/env_spec.rb +76 -11
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +1 -1
- data/spec/unit/resource/dsc_script_spec.rb +0 -29
- data/spec/unit/resource_collection_spec.rb +5 -1
- data/spec/unit/resource_reporter_spec.rb +3 -3
- data/spec/unit/resource_spec.rb +5 -1
- data/spec/unit/role_spec.rb +4 -0
- data/spec/unit/run_list_spec.rb +5 -1
- data/spec/unit/user_spec.rb +5 -1
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +15 -10
- metadata +11 -9
@@ -126,7 +126,8 @@ describe Chef::Resource::Env, :windows_only do
|
|
126
126
|
context 'when using PATH' do
|
127
127
|
let(:random_name) { Time.now.to_i }
|
128
128
|
let(:env_val) { "#{env_value_expandable}_#{random_name}"}
|
129
|
-
let(:path_before) { test_resource.provider_for_action(test_resource.action).env_value('PATH') }
|
129
|
+
let!(:path_before) { test_resource.provider_for_action(test_resource.action).env_value('PATH') || '' }
|
130
|
+
let!(:env_path_before) { ENV['PATH'] }
|
130
131
|
|
131
132
|
it 'should expand PATH' do
|
132
133
|
path_before.should_not include(env_val)
|
@@ -142,9 +143,7 @@ describe Chef::Resource::Env, :windows_only do
|
|
142
143
|
test_resource.key_name('PATH')
|
143
144
|
test_resource.value(path_before)
|
144
145
|
test_resource.run_action(:create)
|
145
|
-
|
146
|
-
raise 'Failed to cleanup after ourselves'
|
147
|
-
end
|
146
|
+
ENV['PATH'] = env_path_before
|
148
147
|
end
|
149
148
|
end
|
150
149
|
|
@@ -16,7 +16,6 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
require 'json'
|
20
19
|
require File.expand_path('../../../../spec_helper', __FILE__)
|
21
20
|
|
22
21
|
describe Chef::Util::Powershell::Cmdlet, :windows_only do
|
@@ -91,7 +90,7 @@ describe Chef::Util::Powershell::Cmdlet, :windows_only do
|
|
91
90
|
it "returns json format data", :windows_powershell_dsc_only do
|
92
91
|
result = cmdlet_alias_requires_switch_or_argument.run({},{},'ls')
|
93
92
|
expect(result.succeeded?).to eq(true)
|
94
|
-
expect(lambda{
|
93
|
+
expect(lambda{Chef::JSONCompat.parse(result.return_value)}).not_to raise_error
|
95
94
|
end
|
96
95
|
end
|
97
96
|
|
@@ -20,7 +20,7 @@ require 'support/shared/context/config'
|
|
20
20
|
require 'chef/knife/list'
|
21
21
|
require 'chef/knife/show'
|
22
22
|
|
23
|
-
describe 'chef_repo_path tests' do
|
23
|
+
describe 'chef_repo_path tests', :workstation do
|
24
24
|
extend IntegrationSupport
|
25
25
|
include KnifeSupport
|
26
26
|
|
@@ -287,6 +287,7 @@ EOM
|
|
287
287
|
knife('show --local /clients/blah.json').should_succeed <<EOM
|
288
288
|
/clients/blah.json:
|
289
289
|
{
|
290
|
+
|
290
291
|
}
|
291
292
|
EOM
|
292
293
|
end
|
@@ -374,6 +375,7 @@ EOM
|
|
374
375
|
knife('show --local /environments/blah.json').should_succeed <<EOM
|
375
376
|
/environments/blah.json:
|
376
377
|
{
|
378
|
+
|
377
379
|
}
|
378
380
|
EOM
|
379
381
|
end
|
@@ -386,6 +388,7 @@ EOM
|
|
386
388
|
knife('show --local /nodes/blah.json').should_succeed <<EOM
|
387
389
|
/nodes/blah.json:
|
388
390
|
{
|
391
|
+
|
389
392
|
}
|
390
393
|
EOM
|
391
394
|
end
|
@@ -398,6 +401,7 @@ EOM
|
|
398
401
|
knife('show --local /roles/blah.json').should_succeed <<EOM
|
399
402
|
/roles/blah.json:
|
400
403
|
{
|
404
|
+
|
401
405
|
}
|
402
406
|
EOM
|
403
407
|
end
|
@@ -410,6 +414,7 @@ EOM
|
|
410
414
|
knife('show --local /users/blah.json').should_succeed <<EOM
|
411
415
|
/users/blah.json:
|
412
416
|
{
|
417
|
+
|
413
418
|
}
|
414
419
|
EOM
|
415
420
|
end
|
@@ -19,7 +19,7 @@ require 'support/shared/integration/integration_helper'
|
|
19
19
|
require 'chef/knife/list'
|
20
20
|
require 'chef/knife/show'
|
21
21
|
|
22
|
-
describe 'General chef_repo file system checks' do
|
22
|
+
describe 'General chef_repo file system checks', :workstation do
|
23
23
|
extend IntegrationSupport
|
24
24
|
include KnifeSupport
|
25
25
|
|
@@ -18,7 +18,7 @@
|
|
18
18
|
require 'support/shared/integration/integration_helper'
|
19
19
|
require 'chef/mixin/shell_out'
|
20
20
|
|
21
|
-
describe "Knife cookbook API integration with IPv6" do
|
21
|
+
describe "Knife cookbook API integration with IPv6", :workstation do
|
22
22
|
extend IntegrationSupport
|
23
23
|
include Chef::Mixin::ShellOut
|
24
24
|
|
@@ -18,7 +18,7 @@
|
|
18
18
|
require 'support/shared/integration/integration_helper'
|
19
19
|
require 'chef/knife/diff'
|
20
20
|
|
21
|
-
describe 'knife diff' do
|
21
|
+
describe 'knife diff', :workstation do
|
22
22
|
extend IntegrationSupport
|
23
23
|
include KnifeSupport
|
24
24
|
|
@@ -275,7 +275,7 @@ EOM
|
|
275
275
|
when_the_repository 'has an environment with bad JSON' do
|
276
276
|
file 'environments/x.json', '{'
|
277
277
|
it 'knife diff reports an error and does a textual diff' do
|
278
|
-
knife('diff /environments/x.json').should_succeed(/- "name": "x"/, :stderr =>
|
278
|
+
knife('diff /environments/x.json').should_succeed(/- "name": "x"/, :stderr => /WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF\n/)
|
279
279
|
end
|
280
280
|
end
|
281
281
|
end
|
@@ -528,7 +528,7 @@ EOM
|
|
528
528
|
when_the_repository 'has an environment with bad JSON' do
|
529
529
|
file 'environments/x.json', '{'
|
530
530
|
it 'knife diff reports an error and does a textual diff' do
|
531
|
-
knife('diff /environments/x.json').should_succeed(/- "name": "x"/, :stderr =>
|
531
|
+
knife('diff /environments/x.json').should_succeed(/- "name": "x"/, :stderr => /WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF\n/)
|
532
532
|
end
|
533
533
|
end
|
534
534
|
end
|
@@ -19,7 +19,7 @@ require 'support/shared/integration/integration_helper'
|
|
19
19
|
require 'chef/knife/download'
|
20
20
|
require 'chef/knife/diff'
|
21
21
|
|
22
|
-
describe 'knife download' do
|
22
|
+
describe 'knife download', :workstation do
|
23
23
|
extend IntegrationSupport
|
24
24
|
include KnifeSupport
|
25
25
|
|
@@ -496,7 +496,7 @@ EOM
|
|
496
496
|
when_the_repository 'has an environment with bad JSON' do
|
497
497
|
file 'environments/x.json', '{'
|
498
498
|
it 'knife download succeeds' do
|
499
|
-
knife('download /environments/x.json').should_succeed "Updated /environments/x.json\n", :stderr =>
|
499
|
+
knife('download /environments/x.json').should_succeed "Updated /environments/x.json\n", :stderr => /WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF\n/
|
500
500
|
knife('diff --name-status /environments/x.json').should_succeed ''
|
501
501
|
end
|
502
502
|
end
|
@@ -946,7 +946,7 @@ EOM
|
|
946
946
|
when_the_repository 'has an environment with bad JSON' do
|
947
947
|
file 'environments/x.json', '{'
|
948
948
|
it 'knife download succeeds' do
|
949
|
-
knife('download /environments/x.json').should_succeed "Updated /environments/x.json\n", :stderr =>
|
949
|
+
knife('download /environments/x.json').should_succeed "Updated /environments/x.json\n", :stderr => /WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF\n/
|
950
950
|
knife('diff --name-status /environments/x.json').should_succeed ''
|
951
951
|
end
|
952
952
|
end
|
@@ -20,7 +20,7 @@ require 'support/shared/context/config'
|
|
20
20
|
require 'chef/knife/raw'
|
21
21
|
require 'chef/knife/show'
|
22
22
|
|
23
|
-
describe 'knife raw' do
|
23
|
+
describe 'knife raw', :workstation do
|
24
24
|
extend IntegrationSupport
|
25
25
|
include KnifeSupport
|
26
26
|
include AppServerSupport
|
@@ -44,12 +44,16 @@ describe 'knife raw' do
|
|
44
44
|
"chef_type": "node",
|
45
45
|
"chef_environment": "_default",
|
46
46
|
"override": {
|
47
|
+
|
47
48
|
},
|
48
49
|
"normal": {
|
50
|
+
|
49
51
|
},
|
50
52
|
"default": {
|
53
|
+
|
51
54
|
},
|
52
55
|
"automatic": {
|
56
|
+
|
53
57
|
},
|
54
58
|
"run_list": [
|
55
59
|
|
@@ -70,13 +74,16 @@ EOM
|
|
70
74
|
"json_class": "Chef::Role",
|
71
75
|
"chef_type": "role",
|
72
76
|
"default_attributes": {
|
77
|
+
|
73
78
|
},
|
74
79
|
"override_attributes": {
|
80
|
+
|
75
81
|
},
|
76
82
|
"run_list": [
|
77
83
|
|
78
84
|
],
|
79
85
|
"env_run_lists": {
|
86
|
+
|
80
87
|
}
|
81
88
|
}
|
82
89
|
EOM
|
@@ -111,13 +118,16 @@ EOM
|
|
111
118
|
"json_class": "Chef::Role",
|
112
119
|
"chef_type": "role",
|
113
120
|
"default_attributes": {
|
121
|
+
|
114
122
|
},
|
115
123
|
"override_attributes": {
|
124
|
+
|
116
125
|
},
|
117
126
|
"run_list": [
|
118
127
|
|
119
128
|
],
|
120
129
|
"env_run_lists": {
|
130
|
+
|
121
131
|
}
|
122
132
|
}
|
123
133
|
EOM
|
@@ -19,7 +19,7 @@ require 'support/shared/integration/integration_helper'
|
|
19
19
|
require 'support/shared/context/config'
|
20
20
|
require 'chef/knife/list'
|
21
21
|
|
22
|
-
describe 'redirection' do
|
22
|
+
describe 'redirection', :workstation do
|
23
23
|
extend IntegrationSupport
|
24
24
|
include KnifeSupport
|
25
25
|
include AppServerSupport
|
@@ -19,7 +19,7 @@ require 'support/shared/integration/integration_helper'
|
|
19
19
|
require 'chef/knife/serve'
|
20
20
|
require 'chef/server_api'
|
21
21
|
|
22
|
-
describe 'knife serve' do
|
22
|
+
describe 'knife serve', :workstation do
|
23
23
|
extend IntegrationSupport
|
24
24
|
include KnifeSupport
|
25
25
|
include AppServerSupport
|
@@ -20,7 +20,7 @@ require 'chef/knife/upload'
|
|
20
20
|
require 'chef/knife/diff'
|
21
21
|
require 'chef/knife/raw'
|
22
22
|
|
23
|
-
describe 'knife upload' do
|
23
|
+
describe 'knife upload', :workstation do
|
24
24
|
extend IntegrationSupport
|
25
25
|
include KnifeSupport
|
26
26
|
|
@@ -237,7 +237,7 @@ Created /data_bags/x/y.json
|
|
237
237
|
EOM
|
238
238
|
knife('diff --name-status /data_bags').should_succeed <<EOM
|
239
239
|
EOM
|
240
|
-
|
240
|
+
Chef::JSONCompat.parse(knife('raw /data/x/y').stdout, :create_additions => false).keys.sort.should == [ 'foo', 'id' ]
|
241
241
|
end
|
242
242
|
|
243
243
|
it 'knife upload /data_bags/x /data_bags/x/y.json uploads x once' do
|
@@ -256,7 +256,7 @@ Created /data_bags/x
|
|
256
256
|
Created /data_bags/x/y.json
|
257
257
|
EOM
|
258
258
|
knife('diff --name-status /data_bags').should_succeed ''
|
259
|
-
result =
|
259
|
+
result = Chef::JSONCompat.parse(knife('raw /data/x/y').stdout, :create_additions => false)
|
260
260
|
result.keys.sort.should == [ 'chef_type', 'data_bag', 'id' ]
|
261
261
|
result['chef_type'].should == 'aaa'
|
262
262
|
result['data_bag'].should == 'bbb'
|
@@ -528,8 +528,8 @@ EOM
|
|
528
528
|
when_the_repository 'has an environment with bad JSON' do
|
529
529
|
file 'environments/x.json', '{'
|
530
530
|
it 'knife upload tries and fails' do
|
531
|
-
knife('upload /environments/x.json').should_fail
|
532
|
-
knife('diff --name-status /environments/x.json').should_succeed "M\t/environments/x.json\n", :stderr =>
|
531
|
+
knife('upload /environments/x.json').should_fail /WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF\n.+ERROR: \/environments\/x.json failed to write: Parse error reading JSON: parse error: premature EOF\n/m
|
532
|
+
knife('diff --name-status /environments/x.json').should_succeed "M\t/environments/x.json\n", :stderr => /WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF\n/
|
533
533
|
end
|
534
534
|
end
|
535
535
|
|
@@ -554,7 +554,7 @@ EOM
|
|
554
554
|
when_the_repository 'has an environment with bad JSON' do
|
555
555
|
file 'environments/x.json', '{'
|
556
556
|
it 'knife upload tries and fails' do
|
557
|
-
knife('upload /environments/x.json').should_fail
|
557
|
+
knife('upload /environments/x.json').should_fail /ERROR: \/environments failed to create_child: Parse error reading JSON creating child 'x.json': parse error: premature EOF\n/
|
558
558
|
knife('diff --name-status /environments/x.json').should_succeed "A\t/environments/x.json\n"
|
559
559
|
end
|
560
560
|
end
|
@@ -1007,8 +1007,8 @@ EOM
|
|
1007
1007
|
when_the_repository 'has an environment with bad JSON' do
|
1008
1008
|
file 'environments/x.json', '{'
|
1009
1009
|
it 'knife upload tries and fails' do
|
1010
|
-
knife('upload /environments/x.json').should_fail
|
1011
|
-
knife('diff --name-status /environments/x.json').should_succeed "M\t/environments/x.json\n", :stderr =>
|
1010
|
+
knife('upload /environments/x.json').should_fail /WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF\n.+ERROR: \/environments\/x.json failed to write: Parse error reading JSON: parse error: premature EOF\n/m
|
1011
|
+
knife('diff --name-status /environments/x.json').should_succeed "M\t/environments/x.json\n", :stderr => /WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF\n/
|
1012
1012
|
end
|
1013
1013
|
end
|
1014
1014
|
|
@@ -1033,7 +1033,7 @@ EOM
|
|
1033
1033
|
when_the_repository 'has an environment with bad JSON' do
|
1034
1034
|
file 'environments/x.json', '{'
|
1035
1035
|
it 'knife upload tries and fails' do
|
1036
|
-
knife('upload /environments/x.json').should_fail
|
1036
|
+
knife('upload /environments/x.json').should_fail /ERROR: \/environments failed to create_child: Parse error reading JSON creating child 'x.json': parse error: premature EOF\n/
|
1037
1037
|
knife('diff --name-status /environments/x.json').should_succeed "A\t/environments/x.json\n"
|
1038
1038
|
end
|
1039
1039
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -97,6 +97,9 @@ RSpec.configure do |config|
|
|
97
97
|
config.filter_run :focus => true
|
98
98
|
config.filter_run_excluding :external => true
|
99
99
|
|
100
|
+
# Only run these tests on platforms that are also chef workstations
|
101
|
+
config.filter_run_excluding :workstation if solaris?
|
102
|
+
|
100
103
|
# Tests that randomly fail, but may have value.
|
101
104
|
config.filter_run_excluding :volatile => true
|
102
105
|
config.filter_run_excluding :volatile_on_solaris => true if solaris?
|
@@ -182,3 +185,6 @@ module WEBrick
|
|
182
185
|
end
|
183
186
|
end
|
184
187
|
end
|
188
|
+
|
189
|
+
# Enough stuff needs json serialization that I'm just adding it here for equality asserts
|
190
|
+
require 'chef/json_compat'
|
@@ -21,7 +21,6 @@ require 'tmpdir'
|
|
21
21
|
require 'fileutils'
|
22
22
|
require 'chef/config'
|
23
23
|
require 'chef_zero/rspec'
|
24
|
-
require 'json'
|
25
24
|
require 'support/shared/integration/knife_support'
|
26
25
|
require 'support/shared/integration/app_server_support'
|
27
26
|
require 'spec_helper'
|
@@ -69,7 +68,7 @@ module IntegrationSupport
|
|
69
68
|
File.open(filename, 'w') do |file|
|
70
69
|
raw = case contents
|
71
70
|
when Hash
|
72
|
-
|
71
|
+
Chef::JSONCompat.to_json_pretty(contents)
|
73
72
|
when Array
|
74
73
|
contents.join("\n")
|
75
74
|
else
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# For storing any examples shared between multiple tests
|
2
|
+
|
3
|
+
# Any object which defines a .to_json should import this test
|
4
|
+
shared_examples "to_json equalivent to Chef::JSONCompat.to_json" do
|
5
|
+
|
6
|
+
it "should allow consumers to call #to_json or Chef::JSONCompat.to_json" do
|
7
|
+
expect(subject.to_json).to eq(Chef::JSONCompat.to_json(subject))
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
data/spec/tiny_server.rb
CHANGED
@@ -25,6 +25,7 @@ require 'singleton'
|
|
25
25
|
require 'chef/json_compat'
|
26
26
|
require 'open-uri'
|
27
27
|
require 'chef/config'
|
28
|
+
require 'chef/json_compat'
|
28
29
|
|
29
30
|
module TinyServer
|
30
31
|
|
@@ -152,7 +153,7 @@ module TinyServer
|
|
152
153
|
:available_routes => @routes, :request => env}
|
153
154
|
# Uncomment me for glorious debugging
|
154
155
|
# pp :not_found => debug_info
|
155
|
-
[404, {'Content-Type' => 'application/json'}, [
|
156
|
+
[404, {'Content-Type' => 'application/json'}, [ Chef::JSONCompat.to_json(debug_info) ]]
|
156
157
|
end
|
157
158
|
end
|
158
159
|
|
@@ -92,7 +92,7 @@ describe Chef::ApiClient do
|
|
92
92
|
before(:each) do
|
93
93
|
@client.name("black")
|
94
94
|
@client.public_key("crowes")
|
95
|
-
@json = @client
|
95
|
+
@json = Chef::JSONCompat.to_json(@client)
|
96
96
|
end
|
97
97
|
|
98
98
|
it "serializes as a JSON object" do
|
@@ -117,7 +117,7 @@ describe Chef::ApiClient do
|
|
117
117
|
|
118
118
|
it "includes the private key when present" do
|
119
119
|
@client.private_key("monkeypants")
|
120
|
-
@client.
|
120
|
+
Chef::JSONCompat.to_json(@client).should include(%q{"private_key":"monkeypants"})
|
121
121
|
end
|
122
122
|
|
123
123
|
it "does not include the private key if not present" do
|
@@ -135,7 +135,7 @@ describe Chef::ApiClient do
|
|
135
135
|
"validator" => true,
|
136
136
|
"json_class" => "Chef::ApiClient"
|
137
137
|
}
|
138
|
-
@client = Chef::JSONCompat.from_json(
|
138
|
+
@client = Chef::JSONCompat.from_json(Chef::JSONCompat.to_json(client))
|
139
139
|
end
|
140
140
|
|
141
141
|
it "should deserialize to a Chef::ApiClient object" do
|