Revert errant change in f8e6cb3. refs #3126
[arvados.git] / apps / workbench / test / test_helper.rb
index a763b2b74f5da6a190758e4020727b4619f45c06..ade6292efe6d2cd59adbeb4b8021642e1a00584a 100644 (file)
@@ -32,11 +32,19 @@ class ActiveSupport::TestCase
   # in integration tests -- they do not yet inherit this setting
   fixtures :all
   def use_token token_name
+    was = Thread.current[:arvados_api_token]
     auth = api_fixture('api_client_authorizations')[token_name.to_s]
     Thread.current[:arvados_api_token] = auth['api_token']
+    if block_given?
+      begin
+        yield
+      ensure
+        Thread.current[:arvados_api_token] = was
+      end
+    end
   end
 
-  setup do
+  teardown do
     Thread.current[:arvados_api_token] = nil
     Thread.current[:user] = nil
     Thread.current[:reader_tokens] = nil
@@ -86,6 +94,29 @@ module ApiFixtureLoader
   end
 end
 
+module ApiMockHelpers
+  def stub_api_calls_with_body body, status_code=200
+    resp = mock
+    stubbed_client = ArvadosApiClient.new
+    stubbed_client.instance_eval do
+      resp.responds_like_instance_of HTTP::Message
+      resp.stubs(:content).returns body
+      resp.stubs(:status_code).returns status_code
+      @api_client = HTTPClient.new
+      @api_client.stubs(:post).returns resp
+    end
+    ArvadosApiClient.stubs(:new_or_current).returns(stubbed_client)
+  end
+
+  def stub_api_calls_with_invalid_json
+    stub_api_calls_with_body ']"omg,bogus"['
+  end
+end
+
+class ActiveSupport::TestCase
+  include ApiMockHelpers
+end
+
 class ActiveSupport::TestCase
   include ApiFixtureLoader
   def session_for api_client_auth_name
@@ -122,12 +153,7 @@ class ApiServerForTests
   def run_test_server
     env_script = nil
     Dir.chdir PYTHON_TESTS_DIR do
-      env = {
-        'RAILS_ENV' => 'test',
-        'ARVADOS_WEBSOCKETS' => 'yes'
-      }
-      cmd = ['python', './run_test_server.py', 'start', '--auth', 'admin']
-      env_script = check_call({}.merge(ENV).merge(env), cmd)
+      env_script = check_call %w(python ./run_test_server.py start --auth admin)
     end
     test_env = {}
     env_script.each_line do |line|
@@ -144,7 +170,7 @@ class ApiServerForTests
   def stop_test_server
     Dir.chdir PYTHON_TESTS_DIR do
       # This is a no-op if we're running within run-tests.sh
-      check_call ['python', './run_test_server.py', 'stop']
+      check_call %w(python ./run_test_server.py stop)
     end
     @@server_is_running = false
   end