code: def test_server_with_no_auth_expect_correct_info_response(self):
      response = self.fetch("/info")
      self.assertEqual(response.code, 200)
      actual_response = json.loads(response.body)
      expected_response = _create_expected_info_response(
          self.app.settings, self.app.tabpy_state
      )
  
      self.assertDictEqual(actual_response, expected_response)
      self.assertTrue("versions" in actual_response)
      versions = actual_response["versions"]
      self.assertTrue("v1" in versions)
      v1 = versions["v1"]
      self.assertTrue("features" in v1)
      features = v1["features"]
      self.assertDictEqual(
          {
              "arrow_enabled": False,
              "evaluate_enabled": True,
              "gzip_enabled": True,
          },
          features,
      )
  
imports: import base64
  import json
  import os
  from tabpy.tabpy_server.app.app import TabPyApp
  from tabpy.tabpy_server.app.app_parameters import SettingsParameters
  import tempfile
  from tornado.testing import AsyncHTTPTestCase
label_desc: Use image node_id 2 for calling the TestServiceInfoHandlerWithoutAuth obj's underlying member method code with example usage: obj.test_server_with_no_auth_expect_correct_info_response() without return types