prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Cannot run tests on Ubuntu 14.04 LTS + Python 3
  #### Repro Steps
  
  ```
  # (Install Docker from: http://www.docker.com )
  
  # If OS X, start with:
  $ docker-machine start default; eval "$(docker-machine env default)"
  
  # If OS X or Linux, continue with:
  $ docker run -it ubuntu:trusty  # Ubuntu 14.04 LTS
  $$ apt-get update
  $$ apt-get install git -y
  $$ apt-get install python3-pip -y
  $$ pip3 install virtualenv
  $$ git clone https://github.com/shazow/urllib3
  $$ cd urllib3/
  $$ virtualenv venv
  $$ source venv/bin/activate
  $$ make test
  ```
  #### Output
  
  ```
  python setup.py develop
  Traceback (most recent call last):
    File "setup.py", line 23, in <module>
      long_description=open('README.rst').read() + '\n\n' + open('CHANGES.rst').read(),
    File "/urllib3/venv/lib/python3.4/encodings/ascii.py", line 26, in decode
      return codecs.ascii_decode(input, self.errors)[0]
  UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 4597: ordinal not in range(128)
  make: *** [*.egg-info] Error 1
  ```
  #### Notes
  
  My best guess is that the `read()`s in setup.py should have an encoding specified. Probably UTF-8.
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `setup.py`
  Content:
  ```
  1 #!/usr/bin/env python
  2 
  3 from setuptools import setup
  4 
  5 import os
  6 import re
  7 
  8 
  9 base_path = os.path.dirname(__file__)
  10 
  11 # Get the version (borrowed from SQLAlchemy)
  12 fp = open(os.path.join(base_path, 'urllib3', '__init__.py'))
  13 VERSION = re.compile(r".*__version__ = '(.*?)'",
  14                      re.S).match(fp.read()).group(1)
  15 fp.close()
  16 
  17 
  18 version = VERSION
  19 
  20 setup(name='urllib3',
  21       version=version,
  22       description="HTTP library with thread-safe connection pooling, file post, and more.",
  23       long_description=open('README.rst').read() + '\n\n' + open('CHANGES.rst').read(),
  24       classifiers=[
  25           'Environment :: Web Environment',
  26           'Intended Audience :: Developers',
  27           'License :: OSI Approved :: MIT License',
  28           'Operating System :: OS Independent',
  29           'Programming Language :: Python',
  30           'Programming Language :: Python :: 2',
  31           'Programming Language :: Python :: 3',
  32           'Topic :: Internet :: WWW/HTTP',
  33           'Topic :: Software Development :: Libraries',
  34       ],
  35       keywords='urllib httplib threadsafe filepost http https ssl pooling',
  36       author='Andrey Petrov',
  37       author_email='andrey.petrov@shazow.net',
  38       url='http://urllib3.readthedocs.org/',
  39       license='MIT',
  40       packages=['urllib3',
  41                 'urllib3.packages', 'urllib3.packages.ssl_match_hostname',
  42                 'urllib3.contrib', 'urllib3.util',
  43                 ],
  44       requires=[],
  45       tests_require=[
  46           # These are a less-specific subset of dev-requirements.txt, for the
  47           # convenience of distro package maintainers.
  48           'nose',
  49           'mock',
  50           'tornado',
  51       ],
  52       test_suite='test',
  53       extras_require={
  54           'secure': [
  55               'pyOpenSSL>=0.13',
  56               'ndg-httpsclient',
  57               'pyasn1',
  58               'certifi',
  59           ],
  60           'socks': [
  61               'PySocks>=1.5.6,<2.0',
  62           ]
  63       },
  64       )
  65
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/setup.py b/setup.py
  --- a/setup.py
  +++ b/setup.py
  @@ -4,7 +4,7 @@
   
   import os
   import re
  -
  +import codecs
   
   base_path = os.path.dirname(__file__)
   
  @@ -14,13 +14,14 @@
                        re.S).match(fp.read()).group(1)
   fp.close()
   
  -
  +readme = codecs.open('README.rst', encoding='utf-8').read()
  +changes = codecs.open('README.rst', encoding='utf-8').read()
   version = VERSION
   
   setup(name='urllib3',
         version=version,
         description="HTTP library with thread-safe connection pooling, file post, and more.",
  -      long_description=open('README.rst').read() + '\n\n' + open('CHANGES.rst').read(),
  +      long_description=u'\n\n'.join([readme, changes]),
         classifiers=[
             'Environment :: Web Environment',
             'Intended Audience :: Developers',
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -4,7 +4,7 @@\n \n import os\n import re\n-\n+import codecs\n \n base_path = os.path.dirname(__file__)\n \n@@ -14,13 +14,14 @@\n                      re.S).match(fp.read()).group(1)\n fp.close()\n \n-\n+readme = codecs.open('README.rst', encoding='utf-8').read()\n+changes = codecs.open('README.rst', encoding='utf-8').read()\n version = VERSION\n \n setup(name='urllib3',\n       version=version,\n       description=\"HTTP library with thread-safe connection pooling, file post, and more.\",\n-      long_description=open('README.rst').read() + '\\n\\n' + open('CHANGES.rst').read(),\n+      long_description=u'\\n\\n'.join([readme, changes]),\n       classifiers=[\n           'Environment :: Web Environment',\n           'Intended Audience :: Developers',\n", "issue": "Cannot run tests on Ubuntu 14.04 LTS + Python 3\n#### Repro Steps\n\n```\n# (Install Docker from: http://www.docker.com )\n\n# If OS X, start with:\n$ docker-machine start default; eval \"$(docker-machine env default)\"\n\n# If OS X or Linux, continue with:\n$ docker run -it ubuntu:trusty  # Ubuntu 14.04 LTS\n$$ apt-get update\n$$ apt-get install git -y\n$$ apt-get install python3-pip -y\n$$ pip3 install virtualenv\n$$ git clone https://github.com/shazow/urllib3\n$$ cd urllib3/\n$$ virtualenv venv\n$$ source venv/bin/activate\n$$ make test\n```\n#### Output\n\n```\npython setup.py develop\nTraceback (most recent call last):\n  File \"setup.py\", line 23, in <module>\n    long_description=open('README.rst').read() + '\\n\\n' + open('CHANGES.rst').read(),\n  File \"/urllib3/venv/lib/python3.4/encodings/ascii.py\", line 26, in decode\n    return codecs.ascii_decode(input, self.errors)[0]\nUnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 4597: ordinal not in range(128)\nmake: *** [*.egg-info] Error 1\n```\n#### Notes\n\nMy best guess is that the `read()`s in setup.py should have an encoding specified. Probably UTF-8.\n\n", "before_files": [{"content": "#!/usr/bin/env python\n\nfrom setuptools import setup\n\nimport os\nimport re\n\n\nbase_path = os.path.dirname(__file__)\n\n# Get the version (borrowed from SQLAlchemy)\nfp = open(os.path.join(base_path, 'urllib3', '__init__.py'))\nVERSION = re.compile(r\".*__version__ = '(.*?)'\",\n                     re.S).match(fp.read()).group(1)\nfp.close()\n\n\nversion = VERSION\n\nsetup(name='urllib3',\n      version=version,\n      description=\"HTTP library with thread-safe connection pooling, file post, and more.\",\n      long_description=open('README.rst').read() + '\\n\\n' + open('CHANGES.rst').read(),\n      classifiers=[\n          'Environment :: Web Environment',\n          'Intended Audience :: Developers',\n          'License :: OSI Approved :: MIT License',\n          'Operating System :: OS Independent',\n          'Programming Language :: Python',\n          'Programming Language :: Python :: 2',\n          'Programming Language :: Python :: 3',\n          'Topic :: Internet :: WWW/HTTP',\n          'Topic :: Software Development :: Libraries',\n      ],\n      keywords='urllib httplib threadsafe filepost http https ssl pooling',\n      author='Andrey Petrov',\n      author_email='andrey.petrov@shazow.net',\n      url='http://urllib3.readthedocs.org/',\n      license='MIT',\n      packages=['urllib3',\n                'urllib3.packages', 'urllib3.packages.ssl_match_hostname',\n                'urllib3.contrib', 'urllib3.util',\n                ],\n      requires=[],\n      tests_require=[\n          # These are a less-specific subset of dev-requirements.txt, for the\n          # convenience of distro package maintainers.\n          'nose',\n          'mock',\n          'tornado',\n      ],\n      test_suite='test',\n      extras_require={\n          'secure': [\n              'pyOpenSSL>=0.13',\n              'ndg-httpsclient',\n              'pyasn1',\n              'certifi',\n          ],\n          'socks': [\n              'PySocks>=1.5.6,<2.0',\n          ]\n      },\n      )\n", "path": "setup.py"}], "after_files": [{"content": "#!/usr/bin/env python\n\nfrom setuptools import setup\n\nimport os\nimport re\nimport codecs\n\nbase_path = os.path.dirname(__file__)\n\n# Get the version (borrowed from SQLAlchemy)\nfp = open(os.path.join(base_path, 'urllib3', '__init__.py'))\nVERSION = re.compile(r\".*__version__ = '(.*?)'\",\n                     re.S).match(fp.read()).group(1)\nfp.close()\n\nreadme = codecs.open('README.rst', encoding='utf-8').read()\nchanges = codecs.open('README.rst', encoding='utf-8').read()\nversion = VERSION\n\nsetup(name='urllib3',\n      version=version,\n      description=\"HTTP library with thread-safe connection pooling, file post, and more.\",\n      long_description=u'\\n\\n'.join([readme, changes]),\n      classifiers=[\n          'Environment :: Web Environment',\n          'Intended Audience :: Developers',\n          'License :: OSI Approved :: MIT License',\n          'Operating System :: OS Independent',\n          'Programming Language :: Python',\n          'Programming Language :: Python :: 2',\n          'Programming Language :: Python :: 3',\n          'Topic :: Internet :: WWW/HTTP',\n          'Topic :: Software Development :: Libraries',\n      ],\n      keywords='urllib httplib threadsafe filepost http https ssl pooling',\n      author='Andrey Petrov',\n      author_email='andrey.petrov@shazow.net',\n      url='http://urllib3.readthedocs.org/',\n      license='MIT',\n      packages=['urllib3',\n                'urllib3.packages', 'urllib3.packages.ssl_match_hostname',\n                'urllib3.contrib', 'urllib3.util',\n                ],\n      requires=[],\n      tests_require=[\n          # These are a less-specific subset of dev-requirements.txt, for the\n          # convenience of distro package maintainers.\n          'nose',\n          'mock',\n          'tornado',\n      ],\n      test_suite='test',\n      extras_require={\n          'secure': [\n              'pyOpenSSL>=0.13',\n              'ndg-httpsclient',\n              'pyasn1',\n              'certifi',\n          ],\n          'socks': [\n              'PySocks>=1.5.6,<2.0',\n          ]\n      },\n      )\n", "path": "setup.py"}]}