text: """These tests ensure that when running in App Engine standard with the
  App Engine sandbox enabled that urllib3 appropriately uses the App
  Engine-patched version of httplib to make requests."""
  
  import httplib
  import StringIO
  import unittest
  
  from mock import patch
  import pytest
  
  from ..test_no_ssl import TestWithoutSSL
  
  
  class MockResponse(object):
      def __init__(self, content, status_code, content_was_truncated, final_url,
                   headers):
  
          self.content = content
          self.status_code = status_code
          self.content_was_truncated = content_was_truncated
          self.final_url = final_url
          self.header_msg = httplib.HTTPMessage(StringIO.StringIO(''.join(
              ["%s: %s\n" % (k, v) for k, v in headers.iteritems()] + ["\n"])))
          self.headers = headers
  
  
  @pytest.mark.usefixtures('sandbox')
  class TestHTTP(TestWithoutSSL):
      def test_urlfetch_called_with_http(self):
          """Check that URLFetch is used to fetch non-https resources."""
          resp = MockResponse(
              'OK',
              200,
              False,
              'http://www.google.com',
              {'content-type': 'text/plain'})
          fetch_patch = patch(
              'google.appengine.api.urlfetch.fetch', return_value=resp
          )
          with fetch_patch as fetch_mock:
              import urllib3
              pool = urllib3.HTTPConnectionPool('www.google.com', '80')
              r = pool.request('GET', '/')
              self.assertEqual(r.status, 200, r.data)
              self.assertEqual(fetch_mock.call_count, 1)
  
  
  @pytest.mark.usefixtures('sandbox')
  class TestHTTPS(unittest.TestCase):
      @pytest.mark.xfail(
          reason='This is not yet supported by urlfetch, presence of the ssl '
                 'module will bypass urlfetch.')
      def test_urlfetch_called_with_https(self):
          """
          Check that URLFetch is used when fetching https resources
          """
          resp = MockResponse(
              'OK',
              200,
              False,
              'https://www.google.com',
              {'content-type': 'text/plain'})
          fetch_patch = patch(
              'google.appengine.api.urlfetch.fetch', return_value=resp
          )
          with fetch_patch as fetch_mock:
              import urllib3
              pool = urllib3.HTTPSConnectionPool('www.google.com', '443')
              pool.ConnectionCls = urllib3.connection.UnverifiedHTTPSConnection
              r = pool.request('GET', '/')
              self.assertEqual(r.status, 200, r.data)
              self.assertEqual(fetch_mock.call_count, 1)
  