X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6ba9fdc006d023fe1a56cd28fb87a54dff5265d8..aceb1f665394d84ec238d6654b5447a37c2bc3b3:/services/api/test/test_helper.rb diff --git a/services/api/test/test_helper.rb b/services/api/test/test_helper.rb index 12f729e338..843d4f1b23 100644 --- a/services/api/test/test_helper.rb +++ b/services/api/test/test_helper.rb @@ -2,7 +2,7 @@ # # SPDX-License-Identifier: AGPL-3.0 -require 'refresh_permission_view' +require 'update_permissions' ENV["RAILS_ENV"] = "test" unless ENV["NO_COVERAGE_TEST"] @@ -25,7 +25,6 @@ unless ENV["NO_COVERAGE_TEST"] SimpleCov.start do add_filter '/test/' add_filter 'initializers/secret_token' - add_filter 'initializers/omniauth' end rescue Exception => e $stderr.puts "SimpleCov unavailable (#{e}). Proceeding without." @@ -62,7 +61,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 @@ -72,6 +71,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) @@ -99,6 +106,14 @@ 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 ConfigLoader.copy_into_config $arvados_config, Rails.configuration @@ -107,6 +122,7 @@ class ActiveSupport::TestCase def set_user_from_auth(auth_name) client_auth = api_client_authorizations(auth_name) + client_auth.user.forget_cached_group_perms Thread.current[:api_client_authorization] = client_auth Thread.current[:api_client] = client_auth.api_client Thread.current[:user] = client_auth.user @@ -209,5 +225,5 @@ class ActionDispatch::IntegrationTest end # Ensure permissions are computed from the test fixtures. -refresh_permission_view +refresh_permissions refresh_trashed