# 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
    param_name = 'newparam'
    param_val = 'nevalue'
    expected_url = '{}&{}={}'.format(old_url, param_name, param_val)

    self.DoTestAddQueryParamToUrl(old_url, param_name, param_val, expected_url)

  def testAddQueryParamToUrlWorksForUTF8Values(self):
    old_url = 'http://foo.bar/path/êndpoint?Â=1&a=2&ß=3&c='
    param_name = 'nêwparam'
    param_val = 'nêwvalue'
    # Expected return value is a UTF-8 encoded `str`.
    expected_url = '{}&{}={}'.format(old_url, param_name, param_val)

    self.DoTestAddQueryParamToUrl(old_url, param_name, param_val, expected_url)

  def testAddQueryParamToUrlWorksForRawUnicodeValues(self):
    old_url = 'http://foo.bar/path/êndpoint?Â=1&a=2&ß=3&c='
    param_name = 'nêwparam'
    param_val = 'nêwvalue'
    # Since the original URL was a `unicode`, the returned URL should also be.
    expected_url = '{}&{}={}'.format(old_url, param_name, param_val)

    self.DoTestAddQueryParamToUrl(old_url, param_name, param_val, expected_url)

  @mock.patch.object(boto_util, 'GetMaxUploadCompressionBufferSize')
  def testGetMaxConcurrentCompressedUploadsMinimum(self, mock_config):
    """Test GetMaxConcurrentCompressedUploads returns at least 1."""
    mock_config.return_value = 0
    self.assertEqual(boto_util.GetMaxConcurrentCompressedUploads(), 1)
    mock_config.return_value = -1

# 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

    param_name = 'newparam'
    param_val = 'nevalue'
    expected_url = '{}&{}={}'.format(old_url, param_name, param_val)

    self.DoTestAddQueryParamToUrl(old_url, param_name, param_val, expected_url)

  def testAddQueryParamToUrlWorksForUTF8Values(self):
    old_url = 'http://foo.bar/path/êndpoint?Â=1&a=2&ß=3&c='
    param_name = 'nêwparam'
    param_val = 'nêwvalue'
    # Expected return value is a UTF-8 encoded `str`.
    expected_url = '{}&{}={}'.format(old_url, param_name, param_val)

    self.DoTestAddQueryParamToUrl(old_url, param_name, param_val, expected_url)

  def testAddQueryParamToUrlWorksForRawUnicodeValues(self):
    old_url = 'http://foo.bar/path/êndpoint?Â=1&a=2&ß=3&c='
    param_name = 'nêwparam'
    param_val = 'nêwvalue'
    # Since the original URL was a `unicode`, the returned URL should also be.
    expected_url = '{}&{}={}'.format(old_url, param_name, param_val)

    self.DoTestAddQueryParamToUrl(old_url, param_name, param_val, expected_url)

  @mock.patch.object(boto_util, 'GetMaxUploadCompressionBufferSize')
  def testGetMaxConcurrentCompressedUploadsMinimum(self, mock_config):
    """Test GetMaxConcurrentCompressedUploads returns at least 1."""
    mock_config.return_value = 0
    self.assertEqual(boto_util.GetMaxConcurrentCompressedUploads(), 1)
    mock_config.return_value = -1

    self.assertEqual(boto_util.GetMaxConcurrentCompressedUploads(), 1)