summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/integration/knife/diff_spec.rb8
-rw-r--r--spec/integration/knife/download_spec.rb19
-rw-r--r--spec/integration/knife/upload_spec.rb48
-rw-r--r--spec/support/shared/integration/integration_helper.rb2
-rw-r--r--spec/unit/environment_spec.rb2
-rw-r--r--spec/unit/knife/data_bag_from_file_spec.rb2
6 files changed, 33 insertions, 48 deletions
diff --git a/spec/integration/knife/diff_spec.rb b/spec/integration/knife/diff_spec.rb
index 8d13d86a99..62b491d6ef 100644
--- a/spec/integration/knife/diff_spec.rb
+++ b/spec/integration/knife/diff_spec.rb
@@ -309,7 +309,9 @@ EOM
when_the_repository 'has an environment with bad JSON' do
before { file 'environments/x.json', '{' }
it 'knife diff reports an error and does a textual diff' do
- knife('diff /environments/x.json').should_succeed(/- "name": "x"/, :stderr => "WARN: Parse error reading #{path_to('environments/x.json')} as JSON: A JSON text must at least contain two octets!\n")
+ error_text = "WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF"
+ error_match = Regexp.new(Regexp.escape(error_text))
+ knife('diff /environments/x.json').should_succeed(/- "name": "x"/, :stderr => error_match)
end
end
end
@@ -590,7 +592,9 @@ EOM
when_the_repository 'has an environment with bad JSON' do
before { file 'environments/x.json', '{' }
it 'knife diff reports an error and does a textual diff' do
- knife('diff /environments/x.json').should_succeed(/- "name": "x"/, :stderr => "WARN: Parse error reading #{path_to('environments/x.json')} as JSON: A JSON text must at least contain two octets!\n")
+ error_text = "WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF"
+ error_match = Regexp.new(Regexp.escape(error_text))
+ knife('diff /environments/x.json').should_succeed(/- "name": "x"/, :stderr => error_match)
end
end
end
diff --git a/spec/integration/knife/download_spec.rb b/spec/integration/knife/download_spec.rb
index 4788a564b7..2ef5dc03c1 100644
--- a/spec/integration/knife/download_spec.rb
+++ b/spec/integration/knife/download_spec.rb
@@ -541,7 +541,13 @@ EOM
file 'environments/x.json', '{'
end
it 'knife download succeeds' do
- knife('download /environments/x.json').should_succeed "Updated /environments/x.json\n", :stderr => "WARN: Parse error reading #{path_to('environments/x.json')} as JSON: A JSON text must at least contain two octets!\n"
+ warning = <<-EOH
+WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF
+ {
+ (right here) ------^
+
+EOH
+ knife('download /environments/x.json').should_succeed "Updated /environments/x.json\n", :stderr => warning
knife('diff --name-status /environments/x.json').should_succeed ''
end
end
@@ -1033,17 +1039,6 @@ EOM
environment 'x', {}
end
- when_the_repository 'has an environment with bad JSON' do
- before do
- file 'environments/x.json', '{'
- end
-
- it 'knife download succeeds' do
- knife('download /environments/x.json').should_succeed "Updated /environments/x.json\n", :stderr => "WARN: Parse error reading #{path_to('environments/x.json')} as JSON: A JSON text must at least contain two octets!\n"
- knife('diff --name-status /environments/x.json').should_succeed ''
- end
- end
-
when_the_repository 'has the same environment with the wrong name in the file' do
before do
file 'environments/x.json', { 'name' => 'y' }
diff --git a/spec/integration/knife/upload_spec.rb b/spec/integration/knife/upload_spec.rb
index 90666f4fc9..d8db27f73b 100644
--- a/spec/integration/knife/upload_spec.rb
+++ b/spec/integration/knife/upload_spec.rb
@@ -605,8 +605,24 @@ EOM
end
it 'knife upload tries and fails' do
- knife('upload /environments/x.json').should_fail "WARN: Parse error reading #{path_to('environments/x.json')} as JSON: A JSON text must at least contain two octets!\nERROR: /environments/x.json failed to write: Parse error reading JSON: A JSON text must at least contain two octets!\n"
- 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: A JSON text must at least contain two octets!\n"
+ error1 = <<-EOH
+WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF
+ {
+ (right here) ------^
+
+ERROR: /environments/x.json failed to write: Parse error reading JSON: parse error: premature EOF
+ {
+ (right here) ------^
+EOH
+
+ warn = <<-EOH
+WARN: Parse error reading #{path_to('environments/x.json')} as JSON: parse error: premature EOF
+ {
+ (right here) ------^
+
+EOH
+ knife('upload /environments/x.json').should_fail(error1)
+ knife('diff --name-status /environments/x.json').should_succeed("M\t/environments/x.json\n", :stderr => warn)
end
end
@@ -632,15 +648,6 @@ EOM
end
when_the_chef_server 'is empty' do
- when_the_repository 'has an environment with bad JSON' do
- before do
- file 'environments/x.json', '{'
- end
- it 'knife upload tries and fails' do
- knife('upload /environments/x.json').should_fail "ERROR: /environments failed to create_child: Parse error reading JSON creating child 'x.json': A JSON text must at least contain two octets!\n"
- knife('diff --name-status /environments/x.json').should_succeed "A\t/environments/x.json\n"
- end
- end
when_the_repository 'has an environment with the wrong name in the file' do
before do
@@ -1140,16 +1147,6 @@ EOM
environment 'x', {}
end
- when_the_repository 'has an environment with bad JSON' do
- before do
- file 'environments/x.json', '{'
- end
- it 'knife upload tries and fails' do
- knife('upload /environments/x.json').should_fail "WARN: Parse error reading #{path_to('environments/x.json')} as JSON: A JSON text must at least contain two octets!\nERROR: /environments/x.json failed to write: Parse error reading JSON: A JSON text must at least contain two octets!\n"
- 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: A JSON text must at least contain two octets!\n"
- end
- end
-
when_the_repository 'has the same environment with the wrong name in the file' do
before do
file 'environments/x.json', { 'name' => 'y' }
@@ -1172,15 +1169,6 @@ EOM
end
when_the_chef_server 'is empty' do
- when_the_repository 'has an environment with bad JSON' do
- before do
- file 'environments/x.json', '{'
- end
- it 'knife upload tries and fails' do
- knife('upload /environments/x.json').should_fail "ERROR: /environments failed to create_child: Parse error reading JSON creating child 'x.json': A JSON text must at least contain two octets!\n"
- knife('diff --name-status /environments/x.json').should_succeed "A\t/environments/x.json\n"
- end
- end
when_the_repository 'has an environment with the wrong name in the file' do
before do
diff --git a/spec/support/shared/integration/integration_helper.rb b/spec/support/shared/integration/integration_helper.rb
index 9b0f17d378..5369b56f5b 100644
--- a/spec/support/shared/integration/integration_helper.rb
+++ b/spec/support/shared/integration/integration_helper.rb
@@ -26,7 +26,7 @@ require 'chef/config'
#require 'chef_zero/rspec'
require 'support/shared/integration/chef_zero_support'
-require 'json'
+require 'chef/json_compat'
require 'support/shared/integration/knife_support'
require 'support/shared/integration/app_server_support'
require 'spec_helper'
diff --git a/spec/unit/environment_spec.rb b/spec/unit/environment_spec.rb
index 0e230e46ed..5a2c400d3c 100644
--- a/spec/unit/environment_spec.rb
+++ b/spec/unit/environment_spec.rb
@@ -420,7 +420,7 @@ describe Chef::Environment do
"description" => "desc",
"chef_type" => "environment"
}
- IO.should_receive(:read).with(File.join(Chef::Config[:environment_path], 'foo.json')).and_return(JSON.dump(environment_hash))
+ IO.should_receive(:read).with(File.join(Chef::Config[:environment_path], 'foo.json')).and_return(Chef::JSONCompat.to_json(environment_hash))
environment = Chef::Environment.load('foo')
environment.should be_a_kind_of(Chef::Environment)
diff --git a/spec/unit/knife/data_bag_from_file_spec.rb b/spec/unit/knife/data_bag_from_file_spec.rb
index 8537045164..1ad6b4712c 100644
--- a/spec/unit/knife/data_bag_from_file_spec.rb
+++ b/spec/unit/knife/data_bag_from_file_spec.rb
@@ -21,7 +21,6 @@ require 'spec_helper'
require 'chef/data_bag_item'
require 'chef/encrypted_data_bag_item'
require 'tempfile'
-require 'json'
Chef::Knife::DataBagFromFile.load_deps
@@ -86,7 +85,6 @@ describe Chef::Knife::DataBagFromFile do
end
it "loads all from a folder and saves" do
- dir = File.dirname(@db_file.path)
@knife.name_args = [ 'bag_name', @db_folder ]
@knife.loader.should_receive(:load_from).with("data_bags", 'bag_name', @db_file.path).and_return(@plain_data)
@knife.loader.should_receive(:load_from).with("data_bags", 'bag_name', @db_file2.path).and_return(@plain_data)