aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/encrypted_configuration_test.rb
diff options
context:
space:
mode:
authorMartin Spickermann <spickermann@users.noreply.github.com>2018-10-05 01:06:33 +0200
committerYuji Yaginuma <yuuji.yaginuma@gmail.com>2018-10-05 08:06:33 +0900
commitbd107964197989b5b3ec3395e3ab011bb9d662d7 (patch)
tree4ecccbd789c4f88b0e6b328740c4a9dd3bd37633 /activesupport/test/encrypted_configuration_test.rb
parentc37247e187fd4c93ae572240ec56a3946dfc73c4 (diff)
downloadrails-bd107964197989b5b3ec3395e3ab011bb9d662d7.tar.gz
rails-bd107964197989b5b3ec3395e3ab011bb9d662d7.tar.bz2
rails-bd107964197989b5b3ec3395e3ab011bb9d662d7.zip
Bugfix: ActiveSupport::EncryptedConfiguration reading of comment-only encrypted files (#34014)
* Fix reading comment only encrypted files When a encrypted file contains only comments then reading that files raises an error: NoMethodError: undefined method `deep_symbolize_keys' for false:FalseClass activesupport/lib/active_support/encrypted_configuration.rb:33:in `config' test/encrypted_configuration_test.rb:52:in `block in <class:EncryptedConfigurationTest>' This happens because the previous implementation returned a `{}` fallback for blank YAML strings. But it did not handle YAML strings that are present but still do not contain any _usefull_ YAML - like the file created by `Rails::Generators::EncryptedFileGenerator` which looks like this: # aws: # access_key_id: 123 # secret_access_key: 345 * Fix coding style violation * Add backwardscompatible with Psych versions that were shipped with Ruby <2.5 * Do not rely on railties for Active Support test * Simplify error handling * Improve test naming * Simplify file creation in test
Diffstat (limited to 'activesupport/test/encrypted_configuration_test.rb')
-rw-r--r--activesupport/test/encrypted_configuration_test.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/activesupport/test/encrypted_configuration_test.rb b/activesupport/test/encrypted_configuration_test.rb
index 93ccf457de..387d6e1c1f 100644
--- a/activesupport/test/encrypted_configuration_test.rb
+++ b/activesupport/test/encrypted_configuration_test.rb
@@ -42,6 +42,12 @@ class EncryptedConfigurationTest < ActiveSupport::TestCase
assert @credentials.something[:good]
end
+ test "reading comment-only configuration" do
+ @credentials.write("# comment")
+
+ assert_equal @credentials.config, {}
+ end
+
test "change configuration by key file" do
@credentials.write({ something: { good: true } }.to_yaml)
@credentials.change do |config_file|