X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b7ab1e8793ea06c5b778ce2249b29f4ab1607c58..59807e4ab334f7aec9772bf63f186974fba96821:/apps/workbench/test/test_helper.rb diff --git a/apps/workbench/test/test_helper.rb b/apps/workbench/test/test_helper.rb index 1195798312..1a07e43be1 100644 --- a/apps/workbench/test/test_helper.rb +++ b/apps/workbench/test/test_helper.rb @@ -36,10 +36,18 @@ class ActiveSupport::TestCase Thread.current[:arvados_api_token] = auth['api_token'] end - def teardown + teardown do Thread.current[:arvados_api_token] = nil + Thread.current[:user] = nil Thread.current[:reader_tokens] = nil - super + # Diagnostics suite doesn't run a server, so there's no cache to clear. + Rails.cache.clear unless (Rails.env == "diagnostics") + # Restore configuration settings changed during tests + $application_config.each do |k,v| + if k.match /^[^.]*$/ + Rails.configuration.send (k + '='), v + end + end end end @@ -50,7 +58,7 @@ module ApiFixtureLoader module ClassMethods @@api_fixtures = {} - def api_fixture(name) + def api_fixture(name, *keys) # Returns the data structure from the named API server test fixture. @@api_fixtures[name] ||= \ begin @@ -58,10 +66,16 @@ module ApiFixtureLoader 'test', 'fixtures', "#{name}.yml") YAML.load(IO.read(path)) end + keys.inject(@@api_fixtures[name]) { |hash, key| hash[key] } end end - def api_fixture name - self.class.api_fixture name + def api_fixture(name, *keys) + self.class.api_fixture(name, *keys) + end + + def find_fixture(object_class, name) + object_class.find(api_fixture(object_class.to_s.pluralize.underscore, + name, "uuid")) end end