# Path: gslib/utils/boto_util.py
# BOTO_IS_SECURE = config.get('Boto', 'is_secure', True)
# CERTIFICATE_VALIDATION_ENABLED = config.get('Boto',
#                                             'https_validate_certificates', True)
# def ConfigureCertsFile():
# def ConfigureNoOpAuthIfNeeded():
# def GetCertsFile():
# def GetCleanupFiles():
# def GetConfigFilePaths():
# def GetFriendlyConfigFilePaths():
# def GetGsutilStateDir():
# def GetCredentialStoreFilename():
# def GetGceCredentialCacheFilename():
# def GetGcsJsonApiVersion():
# def GetJsonResumableChunkSize():
# def GetLastCheckedForGsutilUpdateTimestampFile():
# def GetMaxConcurrentCompressedUploads():
# def GetMaxRetryDelay():
# def GetMaxUploadCompressionBufferSize():
# def GetNewHttp(http_class=httplib2.Http, **kwargs):
# def GetNumRetries():
# def GetTabCompletionLogFilename():
# def GetTabCompletionCacheFilename():
# def HasConfiguredCredentials():
# def JsonResumableChunkSizeDefined():
# def MonkeyPatchBoto():
#   def _PatchedGetPluginMethod(cls, requested_capability=None):
#   def _PatchedConnectMethod(self):
# def ProxyInfoFromEnvironmentVar(proxy_env_var):
# def ResumableThreshold():
# def SetProxyInfo(boto_proxy_config):
# def UsingCrcmodExtension():
# def _PatchedShouldRetryMethod(self, response, chunked_transfer=False):
# def HasUserSpecifiedGsHost():


from gslib.utils import boto_util
from gslib.utils import constants
from gslib.utils import system_util
from gslib.utils import ls_helper
from gslib.utils import retry_util
from gslib.utils import text_util
from gslib.utils import unit_util
from gslib.tests.util import SetEnvironmentForTest
from gslib.tests.util import TestParams
from gslib.utils.text_util import CompareVersions
from gslib.utils.unit_util import DecimalShort
from gslib.utils.unit_util import HumanReadableWithDecimalPlaces
from gslib.utils.unit_util import PrettyTime
from six import add_move, MovedModule
from six.moves import mock
import gslib.tests.testcase as testcase
import httplib2
import os
import six
                                     for p_d in valid_proxy_rdns]

    #Test all input combination values
    with SetEnvironmentForTest({'http_proxy': 'http://host:50'}):
      for test_values in boto_proxy_config_test_values:
        proxy_type = proxy_type_spec.get(test_values.get('proxy_type'))
        proxy_host = test_values.get('proxy_host')
        proxy_port = test_values.get('proxy_port')
        proxy_user = test_values.get('proxy_user')
        proxy_pass = test_values.get('proxy_pass')
        proxy_rdns = bool(test_values.get('proxy_rdns'))

        # Added to force socks proxies not to use rdns as in SetProxyInfo()
        if not (proxy_type == proxy_type_spec['http']):
          proxy_rdns = False

        expected = httplib2.ProxyInfo(proxy_host=proxy_host,
                                      proxy_type=proxy_type,
                                      proxy_port=proxy_port,
                                      proxy_user=proxy_user,
                                      proxy_pass=proxy_pass,
                                      proxy_rdns=proxy_rdns)

        # Checks to make sure environment variable fallbacks are working
        if not (expected.proxy_host and expected.proxy_port):
          expected = httplib2.ProxyInfo(proxy_type_spec['http'], 'host', 50)
          # Assume proxy_rnds is True if a proxy environment variable exists.
          if test_values.get('proxy_rdns') == None:
            expected.proxy_rdns = True


# Path: gslib/utils/boto_util.py
# BOTO_IS_SECURE = config.get('Boto', 'is_secure', True)
# CERTIFICATE_VALIDATION_ENABLED = config.get('Boto',
#                                             'https_validate_certificates', True)
# def ConfigureCertsFile():
# def ConfigureNoOpAuthIfNeeded():
# def GetCertsFile():
# def GetCleanupFiles():
# def GetConfigFilePaths():
# def GetFriendlyConfigFilePaths():
# def GetGsutilStateDir():
# def GetCredentialStoreFilename():
# def GetGceCredentialCacheFilename():
# def GetGcsJsonApiVersion():
# def GetJsonResumableChunkSize():
# def GetLastCheckedForGsutilUpdateTimestampFile():
# def GetMaxConcurrentCompressedUploads():
# def GetMaxRetryDelay():
# def GetMaxUploadCompressionBufferSize():
# def GetNewHttp(http_class=httplib2.Http, **kwargs):
# def GetNumRetries():
# def GetTabCompletionLogFilename():
# def GetTabCompletionCacheFilename():
# def HasConfiguredCredentials():
# def JsonResumableChunkSizeDefined():
# def MonkeyPatchBoto():
#   def _PatchedGetPluginMethod(cls, requested_capability=None):
#   def _PatchedConnectMethod(self):
# def ProxyInfoFromEnvironmentVar(proxy_env_var):
# def ResumableThreshold():
# def SetProxyInfo(boto_proxy_config):
# def UsingCrcmodExtension():
# def _PatchedShouldRetryMethod(self, response, chunked_transfer=False):
# def HasUserSpecifiedGsHost():


# Path: gslib/tests/test_util.py
from gslib.utils import boto_util
from gslib.utils import constants
from gslib.utils import system_util
from gslib.utils import ls_helper
from gslib.utils import retry_util
from gslib.utils import text_util
from gslib.utils import unit_util
from gslib.tests.util import SetEnvironmentForTest
from gslib.tests.util import TestParams
from gslib.utils.text_util import CompareVersions
from gslib.utils.unit_util import DecimalShort
from gslib.utils.unit_util import HumanReadableWithDecimalPlaces
from gslib.utils.unit_util import PrettyTime
from six import add_move, MovedModule
from six.moves import mock
import gslib.tests.testcase as testcase
import httplib2
import os
import six

                                     for p_d in valid_proxy_rdns]

    #Test all input combination values
    with SetEnvironmentForTest({'http_proxy': 'http://host:50'}):
      for test_values in boto_proxy_config_test_values:
        proxy_type = proxy_type_spec.get(test_values.get('proxy_type'))
        proxy_host = test_values.get('proxy_host')
        proxy_port = test_values.get('proxy_port')
        proxy_user = test_values.get('proxy_user')
        proxy_pass = test_values.get('proxy_pass')
        proxy_rdns = bool(test_values.get('proxy_rdns'))

        # Added to force socks proxies not to use rdns as in SetProxyInfo()
        if not (proxy_type == proxy_type_spec['http']):
          proxy_rdns = False

        expected = httplib2.ProxyInfo(proxy_host=proxy_host,
                                      proxy_type=proxy_type,
                                      proxy_port=proxy_port,
                                      proxy_user=proxy_user,
                                      proxy_pass=proxy_pass,
                                      proxy_rdns=proxy_rdns)

        # Checks to make sure environment variable fallbacks are working
        if not (expected.proxy_host and expected.proxy_port):
          expected = httplib2.ProxyInfo(proxy_type_spec['http'], 'host', 50)
          # Assume proxy_rnds is True if a proxy environment variable exists.
          if test_values.get('proxy_rdns') == None:
            expected.proxy_rdns = True


        self._AssertProxyInfosEqual(boto_util.SetProxyInfo(test_values),