We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
setup.py test doesn't include extra_requires from fedmsg deps
```
======================================================================
ERROR: Failure: ImportError (No module named psutil)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/decause/.virtualenvs/bodhi-python2.7/lib/python2.7/site-packages/nose/loader.py", line 418, in loadTestsFromName
    addr.filename, addr.module)
  File "/home/decause/.virtualenvs/bodhi-python2.7/lib/python2.7/site-packages/nose/importer.py", line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "/home/decause/.virtualenvs/bodhi-python2.7/lib/python2.7/site-packages/nose/importer.py", line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "/home/decause/code/bodhi/bodhi/tests/test_masher.py", line 27, in <module>
    from bodhi.consumers.masher import Masher, MasherThread
  File "/home/decause/code/bodhi/bodhi/consumers/masher.py", line 30, in <module>
    import fedmsg.consumers
  File "/home/decause/code/bodhi/.eggs/fedmsg-0.16.0-py2.7.egg/fedmsg/consumers/__init__.py", line 25, in <module>
    import psutil
ImportError: No module named psutil

----------------------------------------------------------------------
Ran 335 tests in 138.787s

FAILED (errors=1)
```


--- 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 import __main__
2 __requires__ = __main__.__requires__ = 'WebOb>=1.4.1'
3 import pkg_resources
4 
5 # The following two imports are required to shut up an
6 # atexit error when running tests with python 2.7
7 import logging
8 import multiprocessing
9 
10 import os
11 import sys
12 
13 from setuptools import setup, find_packages
14 
15 here = os.path.abspath(os.path.dirname(__file__))
16 README = open(os.path.join(here, 'README.rst')).read()
17 CHANGES = open(os.path.join(here, 'CHANGES.txt')).read()
18 
19 requires = [
20     'pyramid',
21     'pyramid_mako',
22     'pyramid_debugtoolbar',
23     'pyramid_tm',
24     'waitress',
25     'colander',
26     'cornice',
27 
28     'python-openid',
29     'pyramid_fas_openid',
30     'packagedb-cli',
31 
32     'sqlalchemy',
33     'zope.sqlalchemy',
34 
35     'webhelpers',
36     'progressbar',
37 
38     'bunch',
39 
40     # for captchas
41     'cryptography',
42     'Pillow',
43 
44     # Useful tools
45     'kitchen',
46     'python-fedora',
47     'pylibravatar',
48     'pyDNS',
49     'dogpile.cache',
50     'arrow',
51     'markdown',
52 
53     # i18n, that we're not actually doing yet.
54     #'Babel',
55     #'lingua',
56 
57     # External resources
58     'python-bugzilla',
59     'simplemediawiki',
60     'fedmsg',
61 
62     'Sphinx',
63 
64     # For the bodhi-client
65     'click',
66 
67     'WebOb>=1.4.1',
68     ]
69 
70 if sys.version_info[:3] < (2,7,0):
71     requires.append('importlib')
72 
73 if sys.version_info[:3] < (2,5,0):
74     requires.append('pysqlite')
75 
76 setup(name='bodhi',
77       version='2.0',
78       description='bodhi',
79       long_description=README + '\n\n' +  CHANGES,
80       classifiers=[
81         "Programming Language :: Python",
82         "Framework :: Pyramid",
83         "Topic :: Internet :: WWW/HTTP",
84         "Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
85         ],
86       author='',
87       author_email='',
88       url='',
89       keywords='web fedora pyramid',
90       packages=find_packages(),
91       include_package_data=True,
92       zip_safe=False,
93       install_requires = requires,
94       tests_require = [
95           'nose',
96           'nose-cov',
97           'webtest',
98           'mock'
99       ],
100       test_suite="nose.collector",
101       message_extractors = { '.': [
102           #('**.py', 'lingua_python', None),
103           #('**.mak', 'lingua_xml', None),
104       ]},
105       entry_points = """\
106       [paste.app_factory]
107       main = bodhi:main
108       [console_scripts]
109       initialize_bodhi_db = bodhi.scripts.initializedb:main
110       bodhi = bodhi.cli:cli
111       bodhi-push = bodhi.push:push
112       bodhi-expire-overrides = bodhi.scripts.expire_overrides:main
113       [moksha.consumer]
114       masher = bodhi.consumers.masher:Masher
115       updates = bodhi.consumers.updates:UpdatesHandler
116       """,
117       paster_plugins=['pyramid'],
118       )
119 
120
```
--- 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()

```

diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -57,7 +57,9 @@
     # External resources
     'python-bugzilla',
     'simplemediawiki',
-    'fedmsg',
+
+    # "python setup.py test" needs one of fedmsg's setup.py extra_requires
+    'fedmsg[consumers]',
 
     'Sphinx',

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -57,7 +57,9 @@\n     # External resources\n     'python-bugzilla',\n     'simplemediawiki',\n-    'fedmsg',\n+\n+    # \"python setup.py test\" needs one of fedmsg's setup.py extra_requires\n+    'fedmsg[consumers]',\n \n     'Sphinx',\n", "issue": "setup.py test doesn't include extra_requires from fedmsg deps\n```\n======================================================================\nERROR: Failure: ImportError (No module named psutil)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n  File \"/home/decause/.virtualenvs/bodhi-python2.7/lib/python2.7/site-packages/nose/loader.py\", line 418, in loadTestsFromName\n    addr.filename, addr.module)\n  File \"/home/decause/.virtualenvs/bodhi-python2.7/lib/python2.7/site-packages/nose/importer.py\", line 47, in importFromPath\n    return self.importFromDir(dir_path, fqname)\n  File \"/home/decause/.virtualenvs/bodhi-python2.7/lib/python2.7/site-packages/nose/importer.py\", line 94, in importFromDir\n    mod = load_module(part_fqname, fh, filename, desc)\n  File \"/home/decause/code/bodhi/bodhi/tests/test_masher.py\", line 27, in <module>\n    from bodhi.consumers.masher import Masher, MasherThread\n  File \"/home/decause/code/bodhi/bodhi/consumers/masher.py\", line 30, in <module>\n    import fedmsg.consumers\n  File \"/home/decause/code/bodhi/.eggs/fedmsg-0.16.0-py2.7.egg/fedmsg/consumers/__init__.py\", line 25, in <module>\n    import psutil\nImportError: No module named psutil\n\n----------------------------------------------------------------------\nRan 335 tests in 138.787s\n\nFAILED (errors=1)\n```\n\n", "before_files": [{"content": "import __main__\n__requires__ = __main__.__requires__ = 'WebOb>=1.4.1'\nimport pkg_resources\n\n# The following two imports are required to shut up an\n# atexit error when running tests with python 2.7\nimport logging\nimport multiprocessing\n\nimport os\nimport sys\n\nfrom setuptools import setup, find_packages\n\nhere = os.path.abspath(os.path.dirname(__file__))\nREADME = open(os.path.join(here, 'README.rst')).read()\nCHANGES = open(os.path.join(here, 'CHANGES.txt')).read()\n\nrequires = [\n    'pyramid',\n    'pyramid_mako',\n    'pyramid_debugtoolbar',\n    'pyramid_tm',\n    'waitress',\n    'colander',\n    'cornice',\n\n    'python-openid',\n    'pyramid_fas_openid',\n    'packagedb-cli',\n\n    'sqlalchemy',\n    'zope.sqlalchemy',\n\n    'webhelpers',\n    'progressbar',\n\n    'bunch',\n\n    # for captchas\n    'cryptography',\n    'Pillow',\n\n    # Useful tools\n    'kitchen',\n    'python-fedora',\n    'pylibravatar',\n    'pyDNS',\n    'dogpile.cache',\n    'arrow',\n    'markdown',\n\n    # i18n, that we're not actually doing yet.\n    #'Babel',\n    #'lingua',\n\n    # External resources\n    'python-bugzilla',\n    'simplemediawiki',\n    'fedmsg',\n\n    'Sphinx',\n\n    # For the bodhi-client\n    'click',\n\n    'WebOb>=1.4.1',\n    ]\n\nif sys.version_info[:3] < (2,7,0):\n    requires.append('importlib')\n\nif sys.version_info[:3] < (2,5,0):\n    requires.append('pysqlite')\n\nsetup(name='bodhi',\n      version='2.0',\n      description='bodhi',\n      long_description=README + '\\n\\n' +  CHANGES,\n      classifiers=[\n        \"Programming Language :: Python\",\n        \"Framework :: Pyramid\",\n        \"Topic :: Internet :: WWW/HTTP\",\n        \"Topic :: Internet :: WWW/HTTP :: WSGI :: Application\",\n        ],\n      author='',\n      author_email='',\n      url='',\n      keywords='web fedora pyramid',\n      packages=find_packages(),\n      include_package_data=True,\n      zip_safe=False,\n      install_requires = requires,\n      tests_require = [\n          'nose',\n          'nose-cov',\n          'webtest',\n          'mock'\n      ],\n      test_suite=\"nose.collector\",\n      message_extractors = { '.': [\n          #('**.py', 'lingua_python', None),\n          #('**.mak', 'lingua_xml', None),\n      ]},\n      entry_points = \"\"\"\\\n      [paste.app_factory]\n      main = bodhi:main\n      [console_scripts]\n      initialize_bodhi_db = bodhi.scripts.initializedb:main\n      bodhi = bodhi.cli:cli\n      bodhi-push = bodhi.push:push\n      bodhi-expire-overrides = bodhi.scripts.expire_overrides:main\n      [moksha.consumer]\n      masher = bodhi.consumers.masher:Masher\n      updates = bodhi.consumers.updates:UpdatesHandler\n      \"\"\",\n      paster_plugins=['pyramid'],\n      )\n\n", "path": "setup.py"}], "after_files": [{"content": "import __main__\n__requires__ = __main__.__requires__ = 'WebOb>=1.4.1'\nimport pkg_resources\n\n# The following two imports are required to shut up an\n# atexit error when running tests with python 2.7\nimport logging\nimport multiprocessing\n\nimport os\nimport sys\n\nfrom setuptools import setup, find_packages\n\nhere = os.path.abspath(os.path.dirname(__file__))\nREADME = open(os.path.join(here, 'README.rst')).read()\nCHANGES = open(os.path.join(here, 'CHANGES.txt')).read()\n\nrequires = [\n    'pyramid',\n    'pyramid_mako',\n    'pyramid_debugtoolbar',\n    'pyramid_tm',\n    'waitress',\n    'colander',\n    'cornice',\n\n    'python-openid',\n    'pyramid_fas_openid',\n    'packagedb-cli',\n\n    'sqlalchemy',\n    'zope.sqlalchemy',\n\n    'webhelpers',\n    'progressbar',\n\n    'bunch',\n\n    # for captchas\n    'cryptography',\n    'Pillow',\n\n    # Useful tools\n    'kitchen',\n    'python-fedora',\n    'pylibravatar',\n    'pyDNS',\n    'dogpile.cache',\n    'arrow',\n    'markdown',\n\n    # i18n, that we're not actually doing yet.\n    #'Babel',\n    #'lingua',\n\n    # External resources\n    'python-bugzilla',\n    'simplemediawiki',\n\n    # \"python setup.py test\" needs one of fedmsg's setup.py extra_requires\n    'fedmsg[consumers]',\n\n    'Sphinx',\n\n    # For the bodhi-client\n    'click',\n\n    'WebOb>=1.4.1',\n    ]\n\nif sys.version_info[:3] < (2,7,0):\n    requires.append('importlib')\n\nif sys.version_info[:3] < (2,5,0):\n    requires.append('pysqlite')\n\nsetup(name='bodhi',\n      version='2.0',\n      description='bodhi',\n      long_description=README + '\\n\\n' +  CHANGES,\n      classifiers=[\n        \"Programming Language :: Python\",\n        \"Framework :: Pyramid\",\n        \"Topic :: Internet :: WWW/HTTP\",\n        \"Topic :: Internet :: WWW/HTTP :: WSGI :: Application\",\n        ],\n      author='',\n      author_email='',\n      url='',\n      keywords='web fedora pyramid',\n      packages=find_packages(),\n      include_package_data=True,\n      zip_safe=False,\n      install_requires = requires,\n      tests_require = [\n          'nose',\n          'nose-cov',\n          'webtest',\n          'mock'\n      ],\n      test_suite=\"nose.collector\",\n      message_extractors = { '.': [\n          #('**.py', 'lingua_python', None),\n          #('**.mak', 'lingua_xml', None),\n      ]},\n      entry_points = \"\"\"\\\n      [paste.app_factory]\n      main = bodhi:main\n      [console_scripts]\n      initialize_bodhi_db = bodhi.scripts.initializedb:main\n      bodhi = bodhi.cli:cli\n      bodhi-push = bodhi.push:push\n      bodhi-expire-overrides = bodhi.scripts.expire_overrides:main\n      [moksha.consumer]\n      masher = bodhi.consumers.masher:Masher\n      updates = bodhi.consumers.updates:UpdatesHandler\n      \"\"\",\n      paster_plugins=['pyramid'],\n      )\n\n", "path": "setup.py"}]}