X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c986fef1ed1ad3967639f75d6e2d6ab0c63e4937..950e76c1dc342ffe79080c9ef911e841675b7b0b:/services/api/test/test_helper.rb?ds=sidebyside diff --git a/services/api/test/test_helper.rb b/services/api/test/test_helper.rb index 12e642d0eb..0255d8907d 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 'update_permissions' +require_relative '../lib/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) @@ -108,11 +115,6 @@ class ActiveSupport::TestCase end def restore_configuration - # 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 # Restore configuration settings changed during tests ConfigLoader.copy_into_config $arvados_config, Rails.configuration ConfigLoader.copy_into_config $remaining_config, Rails.configuration @@ -120,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 @@ -176,21 +179,21 @@ class ActionController::TestCase end [:get, :post, :put, :patch, :delete].each do |method| - define_method method do |action, *args| + define_method method do |action, **kwargs| check_counter action # After Rails 5.0 upgrade, some params don't get properly serialized. # One case are filters: [['attr', 'op', 'val']] become [['attr'], ['op'], ['val']] # if not passed upstream as a JSON string. - if args[0].is_a?(Hash) && args[0][:params].is_a?(Hash) - args[0][:params].each do |key, _| + if kwargs[:params].is_a?(Hash) + kwargs[:params].each do |key, _| next if key == :exclude_script_versions # Job Reuse tests # Keys could be: :filters, :where, etc - if [Array, Hash].include?(args[0][:params][key].class) - args[0][:params][key] = SafeJSON.dump(args[0][:params][key]) + if [Array, Hash].include?(kwargs[:params][key].class) + kwargs[:params][key] = SafeJSON.dump(kwargs[:params][key]) end end end - super action, *args + super action, **kwargs end end