X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/248c7167e95d970b770c43102ee68cf1319973f7..9df2ccdfc085a8b33aed9568c433b7f6e2c24353:/services/api/test/test_helper.rb diff --git a/services/api/test/test_helper.rb b/services/api/test/test_helper.rb index 939242cf8e..5dc77cb98a 100644 --- a/services/api/test/test_helper.rb +++ b/services/api/test/test_helper.rb @@ -2,6 +2,8 @@ # # SPDX-License-Identifier: AGPL-3.0 +require 'update_permissions' + ENV["RAILS_ENV"] = "test" unless ENV["NO_COVERAGE_TEST"] begin @@ -60,7 +62,7 @@ class ActiveSupport::TestCase include ArvadosTestSupport include CurrentApiClient - teardown do + setup do Thread.current[:api_client_ip_address] = nil Thread.current[:api_client_authorization] = nil Thread.current[:api_client_uuid] = nil @@ -70,6 +72,14 @@ class ActiveSupport::TestCase restore_configuration end + teardown do + # Confirm that any changed configuration doesn't include non-symbol keys + $arvados_config.keys.each do |conf_name| + conf = Rails.configuration.send(conf_name) + confirm_keys_as_symbols(conf, conf_name) if conf.respond_to?('keys') + end + end + def assert_equal(expect, *args) if expect.nil? assert_nil(*args) @@ -97,13 +107,18 @@ class ActiveSupport::TestCase end end + def confirm_keys_as_symbols(conf, conf_name) + assert(conf.is_a?(ActiveSupport::OrderedOptions), "#{conf_name} should be an OrderedOptions object") + conf.keys.each do |k| + assert(k.is_a?(Symbol), "Key '#{k}' on section '#{conf_name}' should be a Symbol") + confirm_keys_as_symbols(conf[k], "#{conf_name}.#{k}") if conf[k].respond_to?('keys') + end + end + def restore_configuration # Restore configuration settings changed during tests - $application_config.each do |k,v| - if k.match(/^[^.]*$/) - Rails.configuration.send (k + '='), v - end - end + ConfigLoader.copy_into_config $arvados_config, Rails.configuration + ConfigLoader.copy_into_config $remaining_config, Rails.configuration end def set_user_from_auth(auth_name) @@ -210,4 +225,5 @@ class ActionDispatch::IntegrationTest end # Ensure permissions are computed from the test fixtures. -User.invalidate_permissions_cache +refresh_permissions +refresh_trashed