forked from mirrors/gecko-dev
This commit is a simple 'hg mv' and does not contain any file modifications. *** Bug 1346025 - Split vendored modules in python/moz.build to third_party/python/moz.build, r=ted *** Bug 1346025 - Update references to moved python modules, r=ted MozReview-Commit-ID: A12RnIFtXju --HG-- rename : python/PyECC/MANIFEST.in => third_party/python/PyECC/MANIFEST.in rename : python/PyECC/README.md => third_party/python/PyECC/README.md rename : python/PyECC/ecc/Key.py => third_party/python/PyECC/ecc/Key.py rename : python/PyECC/ecc/Rabbit.py => third_party/python/PyECC/ecc/Rabbit.py rename : python/PyECC/ecc/SecurityViolationException.py => third_party/python/PyECC/ecc/SecurityViolationException.py rename : python/PyECC/ecc/__init__.py => third_party/python/PyECC/ecc/__init__.py rename : python/PyECC/ecc/curves.py => third_party/python/PyECC/ecc/curves.py rename : python/PyECC/ecc/eccrypt.py => third_party/python/PyECC/ecc/eccrypt.py rename : python/PyECC/ecc/ecdsa.py => third_party/python/PyECC/ecc/ecdsa.py rename : python/PyECC/ecc/elliptic.py => third_party/python/PyECC/ecc/elliptic.py rename : python/PyECC/ecc/encoding.py => third_party/python/PyECC/ecc/encoding.py rename : python/PyECC/ecc/performance.py => third_party/python/PyECC/ecc/performance.py rename : python/PyECC/ecc/primes.py => third_party/python/PyECC/ecc/primes.py rename : python/PyECC/ecc/shacrypt.py => third_party/python/PyECC/ecc/shacrypt.py rename : python/PyECC/setup.py => third_party/python/PyECC/setup.py rename : python/blessings/LICENSE => third_party/python/blessings/LICENSE rename : python/blessings/MANIFEST.in => third_party/python/blessings/MANIFEST.in rename : python/blessings/PKG-INFO => third_party/python/blessings/PKG-INFO rename : python/blessings/README.rst => third_party/python/blessings/README.rst rename : python/blessings/blessings/__init__.py => third_party/python/blessings/blessings/__init__.py rename : python/blessings/blessings/tests.py => third_party/python/blessings/blessings/tests.py rename : python/blessings/setup.cfg => third_party/python/blessings/setup.cfg rename : python/blessings/setup.py => third_party/python/blessings/setup.py rename : python/blessings/tox.ini => third_party/python/blessings/tox.ini rename : python/compare-locales/compare_locales/__init__.py => third_party/python/compare-locales/compare_locales/__init__.py rename : python/compare-locales/compare_locales/checks.py => third_party/python/compare-locales/compare_locales/checks.py rename : python/compare-locales/compare_locales/commands.py => third_party/python/compare-locales/compare_locales/commands.py rename : python/compare-locales/compare_locales/compare.py => third_party/python/compare-locales/compare_locales/compare.py rename : python/compare-locales/compare_locales/parser.py => third_party/python/compare-locales/compare_locales/parser.py rename : python/compare-locales/compare_locales/paths.py => third_party/python/compare-locales/compare_locales/paths.py rename : python/compare-locales/compare_locales/tests/__init__.py => third_party/python/compare-locales/compare_locales/tests/__init__.py rename : python/compare-locales/compare_locales/tests/data/bug121341.properties => third_party/python/compare-locales/compare_locales/tests/data/bug121341.properties rename : python/compare-locales/compare_locales/tests/data/test.properties => third_party/python/compare-locales/compare_locales/tests/data/test.properties rename : python/compare-locales/compare_locales/tests/data/triple-license.dtd => third_party/python/compare-locales/compare_locales/tests/data/triple-license.dtd rename : python/compare-locales/compare_locales/tests/test_checks.py => third_party/python/compare-locales/compare_locales/tests/test_checks.py rename : python/compare-locales/compare_locales/tests/test_compare.py => third_party/python/compare-locales/compare_locales/tests/test_compare.py rename : python/compare-locales/compare_locales/tests/test_dtd.py => third_party/python/compare-locales/compare_locales/tests/test_dtd.py rename : python/compare-locales/compare_locales/tests/test_ini.py => third_party/python/compare-locales/compare_locales/tests/test_ini.py rename : python/compare-locales/compare_locales/tests/test_merge.py => third_party/python/compare-locales/compare_locales/tests/test_merge.py rename : python/compare-locales/compare_locales/tests/test_properties.py => third_party/python/compare-locales/compare_locales/tests/test_properties.py rename : python/compare-locales/compare_locales/tests/test_util.py => third_party/python/compare-locales/compare_locales/tests/test_util.py rename : python/compare-locales/compare_locales/tests/test_webapps.py => third_party/python/compare-locales/compare_locales/tests/test_webapps.py rename : python/compare-locales/compare_locales/util.py => third_party/python/compare-locales/compare_locales/util.py rename : python/compare-locales/compare_locales/webapps.py => third_party/python/compare-locales/compare_locales/webapps.py rename : python/configobj/PKG-INFO => third_party/python/configobj/PKG-INFO rename : python/configobj/configobj.py => third_party/python/configobj/configobj.py rename : python/configobj/setup.py => third_party/python/configobj/setup.py rename : python/configobj/validate.py => third_party/python/configobj/validate.py rename : python/dlmanager/README.rst => third_party/python/dlmanager/README.rst rename : python/dlmanager/check.py => third_party/python/dlmanager/check.py rename : python/dlmanager/dlmanager/__init__.py => third_party/python/dlmanager/dlmanager/__init__.py rename : python/dlmanager/dlmanager/fs.py => third_party/python/dlmanager/dlmanager/fs.py rename : python/dlmanager/dlmanager/manager.py => third_party/python/dlmanager/dlmanager/manager.py rename : python/dlmanager/dlmanager/persist_limit.py => third_party/python/dlmanager/dlmanager/persist_limit.py rename : python/dlmanager/doc/Makefile => third_party/python/dlmanager/doc/Makefile rename : python/dlmanager/doc/api.rst => third_party/python/dlmanager/doc/api.rst rename : python/dlmanager/doc/conf.py => third_party/python/dlmanager/doc/conf.py rename : python/dlmanager/doc/index.rst => third_party/python/dlmanager/doc/index.rst rename : python/dlmanager/doc/make.bat => third_party/python/dlmanager/doc/make.bat rename : python/dlmanager/examples/dl_progressbar.py => third_party/python/dlmanager/examples/dl_progressbar.py rename : python/dlmanager/examples/dl_tqdm.py => third_party/python/dlmanager/examples/dl_tqdm.py rename : python/dlmanager/requirements.txt => third_party/python/dlmanager/requirements.txt rename : python/dlmanager/setup.cfg => third_party/python/dlmanager/setup.cfg rename : python/dlmanager/setup.py => third_party/python/dlmanager/setup.py rename : python/dlmanager/test-requirements.txt => third_party/python/dlmanager/test-requirements.txt rename : python/dlmanager/tests/__init__.py => third_party/python/dlmanager/tests/__init__.py rename : python/dlmanager/tests/test_manager.py => third_party/python/dlmanager/tests/test_manager.py rename : python/dlmanager/tests/test_persist_limit.py => third_party/python/dlmanager/tests/test_persist_limit.py rename : python/futures/CHANGES => third_party/python/futures/CHANGES rename : python/futures/LICENSE => third_party/python/futures/LICENSE rename : python/futures/MANIFEST.in => third_party/python/futures/MANIFEST.in rename : python/futures/PKG-INFO => third_party/python/futures/PKG-INFO rename : python/futures/concurrent/__init__.py => third_party/python/futures/concurrent/__init__.py rename : python/futures/concurrent/futures/__init__.py => third_party/python/futures/concurrent/futures/__init__.py rename : python/futures/concurrent/futures/_base.py => third_party/python/futures/concurrent/futures/_base.py rename : python/futures/concurrent/futures/process.py => third_party/python/futures/concurrent/futures/process.py rename : python/futures/concurrent/futures/thread.py => third_party/python/futures/concurrent/futures/thread.py rename : python/futures/crawl.py => third_party/python/futures/crawl.py rename : python/futures/docs/Makefile => third_party/python/futures/docs/Makefile rename : python/futures/docs/conf.py => third_party/python/futures/docs/conf.py rename : python/futures/docs/index.rst => third_party/python/futures/docs/index.rst rename : python/futures/docs/make.bat => third_party/python/futures/docs/make.bat rename : python/futures/futures.egg-info/PKG-INFO => third_party/python/futures/futures.egg-info/PKG-INFO rename : python/futures/futures.egg-info/SOURCES.txt => third_party/python/futures/futures.egg-info/SOURCES.txt rename : python/futures/futures.egg-info/dependency_links.txt => third_party/python/futures/futures.egg-info/dependency_links.txt rename : python/futures/futures.egg-info/not-zip-safe => third_party/python/futures/futures.egg-info/not-zip-safe rename : python/futures/futures.egg-info/pbr.json => third_party/python/futures/futures.egg-info/pbr.json rename : python/futures/futures.egg-info/top_level.txt => third_party/python/futures/futures.egg-info/top_level.txt rename : python/futures/primes.py => third_party/python/futures/primes.py rename : python/futures/setup.cfg => third_party/python/futures/setup.cfg rename : python/futures/setup.py => third_party/python/futures/setup.py rename : python/futures/test_futures.py => third_party/python/futures/test_futures.py rename : python/futures/tox.ini => third_party/python/futures/tox.ini rename : python/gdbpp/gdbpp/__init__.py => third_party/python/gdbpp/gdbpp/__init__.py rename : python/gdbpp/gdbpp/linkedlist.py => third_party/python/gdbpp/gdbpp/linkedlist.py rename : python/gdbpp/gdbpp/owningthread.py => third_party/python/gdbpp/gdbpp/owningthread.py rename : python/gdbpp/gdbpp/smartptr.py => third_party/python/gdbpp/gdbpp/smartptr.py rename : python/gdbpp/gdbpp/string.py => third_party/python/gdbpp/gdbpp/string.py rename : python/gdbpp/gdbpp/tarray.py => third_party/python/gdbpp/gdbpp/tarray.py rename : python/gdbpp/gdbpp/thashtable.py => third_party/python/gdbpp/gdbpp/thashtable.py rename : python/jsmin/jsmin/__init__.py => third_party/python/jsmin/jsmin/__init__.py rename : python/jsmin/jsmin/test.py => third_party/python/jsmin/jsmin/test.py rename : python/jsmin/setup.cfg => third_party/python/jsmin/setup.cfg rename : python/jsmin/setup.py => third_party/python/jsmin/setup.py rename : python/lldbutils/README.txt => third_party/python/lldbutils/README.txt rename : python/lldbutils/lldbutils/__init__.py => third_party/python/lldbutils/lldbutils/__init__.py rename : python/lldbutils/lldbutils/content.py => third_party/python/lldbutils/lldbutils/content.py rename : python/lldbutils/lldbutils/general.py => third_party/python/lldbutils/lldbutils/general.py rename : python/lldbutils/lldbutils/gfx.py => third_party/python/lldbutils/lldbutils/gfx.py rename : python/lldbutils/lldbutils/layout.py => third_party/python/lldbutils/lldbutils/layout.py rename : python/lldbutils/lldbutils/utils.py => third_party/python/lldbutils/lldbutils/utils.py rename : python/mock-1.0.0/LICENSE.txt => third_party/python/mock-1.0.0/LICENSE.txt rename : python/mock-1.0.0/MANIFEST.in => third_party/python/mock-1.0.0/MANIFEST.in rename : python/mock-1.0.0/PKG-INFO => third_party/python/mock-1.0.0/PKG-INFO rename : python/mock-1.0.0/README.txt => third_party/python/mock-1.0.0/README.txt rename : python/mock-1.0.0/docs/changelog.txt => third_party/python/mock-1.0.0/docs/changelog.txt rename : python/mock-1.0.0/docs/compare.txt => third_party/python/mock-1.0.0/docs/compare.txt rename : python/mock-1.0.0/docs/conf.py => third_party/python/mock-1.0.0/docs/conf.py rename : python/mock-1.0.0/docs/examples.txt => third_party/python/mock-1.0.0/docs/examples.txt rename : python/mock-1.0.0/docs/getting-started.txt => third_party/python/mock-1.0.0/docs/getting-started.txt rename : python/mock-1.0.0/docs/helpers.txt => third_party/python/mock-1.0.0/docs/helpers.txt rename : python/mock-1.0.0/docs/index.txt => third_party/python/mock-1.0.0/docs/index.txt rename : python/mock-1.0.0/docs/magicmock.txt => third_party/python/mock-1.0.0/docs/magicmock.txt rename : python/mock-1.0.0/docs/mock.txt => third_party/python/mock-1.0.0/docs/mock.txt rename : python/mock-1.0.0/docs/patch.txt => third_party/python/mock-1.0.0/docs/patch.txt rename : python/mock-1.0.0/docs/sentinel.txt => third_party/python/mock-1.0.0/docs/sentinel.txt rename : python/mock-1.0.0/html/.doctrees/changelog.doctree => third_party/python/mock-1.0.0/html/.doctrees/changelog.doctree rename : python/mock-1.0.0/html/.doctrees/compare.doctree => third_party/python/mock-1.0.0/html/.doctrees/compare.doctree rename : python/mock-1.0.0/html/.doctrees/examples.doctree => third_party/python/mock-1.0.0/html/.doctrees/examples.doctree rename : python/mock-1.0.0/html/.doctrees/getting-started.doctree => third_party/python/mock-1.0.0/html/.doctrees/getting-started.doctree rename : python/mock-1.0.0/html/.doctrees/index.doctree => third_party/python/mock-1.0.0/html/.doctrees/index.doctree rename : python/mock-1.0.0/html/.doctrees/magicmock.doctree => third_party/python/mock-1.0.0/html/.doctrees/magicmock.doctree rename : python/mock-1.0.0/html/.doctrees/mock.doctree => third_party/python/mock-1.0.0/html/.doctrees/mock.doctree rename : python/mock-1.0.0/html/.doctrees/mocksignature.doctree => third_party/python/mock-1.0.0/html/.doctrees/mocksignature.doctree rename : python/mock-1.0.0/html/.doctrees/patch.doctree => third_party/python/mock-1.0.0/html/.doctrees/patch.doctree rename : python/mock-1.0.0/html/.doctrees/sentinel.doctree => third_party/python/mock-1.0.0/html/.doctrees/sentinel.doctree rename : python/mock-1.0.0/html/_sources/changelog.txt => third_party/python/mock-1.0.0/html/_sources/changelog.txt rename : python/mock-1.0.0/html/_sources/compare.txt => third_party/python/mock-1.0.0/html/_sources/compare.txt rename : python/mock-1.0.0/html/_sources/examples.txt => third_party/python/mock-1.0.0/html/_sources/examples.txt rename : python/mock-1.0.0/html/_sources/getting-started.txt => third_party/python/mock-1.0.0/html/_sources/getting-started.txt rename : python/mock-1.0.0/html/_sources/index.txt => third_party/python/mock-1.0.0/html/_sources/index.txt rename : python/mock-1.0.0/html/_sources/magicmock.txt => third_party/python/mock-1.0.0/html/_sources/magicmock.txt rename : python/mock-1.0.0/html/_sources/mock.txt => third_party/python/mock-1.0.0/html/_sources/mock.txt rename : python/mock-1.0.0/html/_sources/mocksignature.txt => third_party/python/mock-1.0.0/html/_sources/mocksignature.txt rename : python/mock-1.0.0/html/_sources/patch.txt => third_party/python/mock-1.0.0/html/_sources/patch.txt rename : python/mock-1.0.0/html/_sources/sentinel.txt => third_party/python/mock-1.0.0/html/_sources/sentinel.txt rename : python/mock-1.0.0/html/_static/adctheme.css => third_party/python/mock-1.0.0/html/_static/adctheme.css rename : python/mock-1.0.0/html/_static/basic.css => third_party/python/mock-1.0.0/html/_static/basic.css rename : python/mock-1.0.0/html/_static/breadcrumb_background.png => third_party/python/mock-1.0.0/html/_static/breadcrumb_background.png rename : python/mock-1.0.0/html/_static/default.css => third_party/python/mock-1.0.0/html/_static/default.css rename : python/mock-1.0.0/html/_static/doctools.js => third_party/python/mock-1.0.0/html/_static/doctools.js rename : python/mock-1.0.0/html/_static/documentation.png => third_party/python/mock-1.0.0/html/_static/documentation.png rename : python/mock-1.0.0/html/_static/file.png => third_party/python/mock-1.0.0/html/_static/file.png rename : python/mock-1.0.0/html/_static/header_sm_mid.png => third_party/python/mock-1.0.0/html/_static/header_sm_mid.png rename : python/mock-1.0.0/html/_static/jquery.js => third_party/python/mock-1.0.0/html/_static/jquery.js rename : python/mock-1.0.0/html/_static/minus.png => third_party/python/mock-1.0.0/html/_static/minus.png rename : python/mock-1.0.0/html/_static/mobile.css => third_party/python/mock-1.0.0/html/_static/mobile.css rename : python/mock-1.0.0/html/_static/plus.png => third_party/python/mock-1.0.0/html/_static/plus.png rename : python/mock-1.0.0/html/_static/pygments.css => third_party/python/mock-1.0.0/html/_static/pygments.css rename : python/mock-1.0.0/html/_static/scrn1.png => third_party/python/mock-1.0.0/html/_static/scrn1.png rename : python/mock-1.0.0/html/_static/scrn2.png => third_party/python/mock-1.0.0/html/_static/scrn2.png rename : python/mock-1.0.0/html/_static/searchfield_leftcap.png => third_party/python/mock-1.0.0/html/_static/searchfield_leftcap.png rename : python/mock-1.0.0/html/_static/searchfield_repeat.png => third_party/python/mock-1.0.0/html/_static/searchfield_repeat.png rename : python/mock-1.0.0/html/_static/searchfield_rightcap.png => third_party/python/mock-1.0.0/html/_static/searchfield_rightcap.png rename : python/mock-1.0.0/html/_static/searchtools.js => third_party/python/mock-1.0.0/html/_static/searchtools.js rename : python/mock-1.0.0/html/_static/sidebar.js => third_party/python/mock-1.0.0/html/_static/sidebar.js rename : python/mock-1.0.0/html/_static/title_background.png => third_party/python/mock-1.0.0/html/_static/title_background.png rename : python/mock-1.0.0/html/_static/toc.js => third_party/python/mock-1.0.0/html/_static/toc.js rename : python/mock-1.0.0/html/_static/triangle_closed.png => third_party/python/mock-1.0.0/html/_static/triangle_closed.png rename : python/mock-1.0.0/html/_static/triangle_left.png => third_party/python/mock-1.0.0/html/_static/triangle_left.png rename : python/mock-1.0.0/html/_static/triangle_open.png => third_party/python/mock-1.0.0/html/_static/triangle_open.png rename : python/mock-1.0.0/html/_static/underscore.js => third_party/python/mock-1.0.0/html/_static/underscore.js rename : python/mock-1.0.0/html/changelog.html => third_party/python/mock-1.0.0/html/changelog.html rename : python/mock-1.0.0/html/compare.html => third_party/python/mock-1.0.0/html/compare.html rename : python/mock-1.0.0/html/examples.html => third_party/python/mock-1.0.0/html/examples.html rename : python/mock-1.0.0/html/genindex.html => third_party/python/mock-1.0.0/html/genindex.html rename : python/mock-1.0.0/html/getting-started.html => third_party/python/mock-1.0.0/html/getting-started.html rename : python/mock-1.0.0/html/index.html => third_party/python/mock-1.0.0/html/index.html rename : python/mock-1.0.0/html/magicmock.html => third_party/python/mock-1.0.0/html/magicmock.html rename : python/mock-1.0.0/html/mock.html => third_party/python/mock-1.0.0/html/mock.html rename : python/mock-1.0.0/html/mocksignature.html => third_party/python/mock-1.0.0/html/mocksignature.html rename : python/mock-1.0.0/html/objects.inv => third_party/python/mock-1.0.0/html/objects.inv rename : python/mock-1.0.0/html/output.txt => third_party/python/mock-1.0.0/html/output.txt rename : python/mock-1.0.0/html/patch.html => third_party/python/mock-1.0.0/html/patch.html rename : python/mock-1.0.0/html/search.html => third_party/python/mock-1.0.0/html/search.html rename : python/mock-1.0.0/html/searchindex.js => third_party/python/mock-1.0.0/html/searchindex.js rename : python/mock-1.0.0/html/sentinel.html => third_party/python/mock-1.0.0/html/sentinel.html rename : python/mock-1.0.0/mock.egg-info/PKG-INFO => third_party/python/mock-1.0.0/mock.egg-info/PKG-INFO rename : python/mock-1.0.0/mock.egg-info/SOURCES.txt => third_party/python/mock-1.0.0/mock.egg-info/SOURCES.txt rename : python/mock-1.0.0/mock.egg-info/dependency_links.txt => third_party/python/mock-1.0.0/mock.egg-info/dependency_links.txt rename : python/mock-1.0.0/mock.egg-info/top_level.txt => third_party/python/mock-1.0.0/mock.egg-info/top_level.txt rename : python/mock-1.0.0/mock.py => third_party/python/mock-1.0.0/mock.py rename : python/mock-1.0.0/setup.cfg => third_party/python/mock-1.0.0/setup.cfg rename : python/mock-1.0.0/setup.py => third_party/python/mock-1.0.0/setup.py rename : python/mock-1.0.0/tests/__init__.py => third_party/python/mock-1.0.0/tests/__init__.py rename : python/mock-1.0.0/tests/_testwith.py => third_party/python/mock-1.0.0/tests/_testwith.py rename : python/mock-1.0.0/tests/support.py => third_party/python/mock-1.0.0/tests/support.py rename : python/mock-1.0.0/tests/support_with.py => third_party/python/mock-1.0.0/tests/support_with.py rename : python/mock-1.0.0/tests/testcallable.py => third_party/python/mock-1.0.0/tests/testcallable.py rename : python/mock-1.0.0/tests/testhelpers.py => third_party/python/mock-1.0.0/tests/testhelpers.py rename : python/mock-1.0.0/tests/testmagicmethods.py => third_party/python/mock-1.0.0/tests/testmagicmethods.py rename : python/mock-1.0.0/tests/testmock.py => third_party/python/mock-1.0.0/tests/testmock.py rename : python/mock-1.0.0/tests/testpatch.py => third_party/python/mock-1.0.0/tests/testpatch.py rename : python/mock-1.0.0/tests/testsentinel.py => third_party/python/mock-1.0.0/tests/testsentinel.py rename : python/mock-1.0.0/tests/testwith.py => third_party/python/mock-1.0.0/tests/testwith.py rename : python/mock-1.0.0/tox.ini => third_party/python/mock-1.0.0/tox.ini rename : python/psutil/CREDITS => third_party/python/psutil/CREDITS rename : python/psutil/HISTORY.rst => third_party/python/psutil/HISTORY.rst rename : python/psutil/INSTALL.rst => third_party/python/psutil/INSTALL.rst rename : python/psutil/LICENSE => third_party/python/psutil/LICENSE rename : python/psutil/MANIFEST.in => third_party/python/psutil/MANIFEST.in rename : python/psutil/Makefile => third_party/python/psutil/Makefile rename : python/psutil/PKG-INFO => third_party/python/psutil/PKG-INFO rename : python/psutil/README.rst => third_party/python/psutil/README.rst rename : python/psutil/TODO => third_party/python/psutil/TODO rename : python/psutil/docs/Makefile => third_party/python/psutil/docs/Makefile rename : python/psutil/docs/README => third_party/python/psutil/docs/README rename : python/psutil/docs/_static/copybutton.js => third_party/python/psutil/docs/_static/copybutton.js rename : python/psutil/docs/_static/favicon.ico => third_party/python/psutil/docs/_static/favicon.ico rename : python/psutil/docs/_static/logo.png => third_party/python/psutil/docs/_static/logo.png rename : python/psutil/docs/_static/sidebar.js => third_party/python/psutil/docs/_static/sidebar.js rename : python/psutil/docs/_template/globaltoc.html => third_party/python/psutil/docs/_template/globaltoc.html rename : python/psutil/docs/_template/indexcontent.html => third_party/python/psutil/docs/_template/indexcontent.html rename : python/psutil/docs/_template/indexsidebar.html => third_party/python/psutil/docs/_template/indexsidebar.html rename : python/psutil/docs/_template/page.html => third_party/python/psutil/docs/_template/page.html rename : python/psutil/docs/_themes/pydoctheme/static/pydoctheme.css => third_party/python/psutil/docs/_themes/pydoctheme/static/pydoctheme.css rename : python/psutil/docs/_themes/pydoctheme/theme.conf => third_party/python/psutil/docs/_themes/pydoctheme/theme.conf rename : python/psutil/docs/conf.py => third_party/python/psutil/docs/conf.py rename : python/psutil/docs/index.rst => third_party/python/psutil/docs/index.rst rename : python/psutil/docs/make.bat => third_party/python/psutil/docs/make.bat rename : python/psutil/docs/xxx => third_party/python/psutil/docs/xxx rename : python/psutil/examples/disk_usage.py => third_party/python/psutil/examples/disk_usage.py rename : python/psutil/examples/free.py => third_party/python/psutil/examples/free.py rename : python/psutil/examples/ifconfig.py => third_party/python/psutil/examples/ifconfig.py rename : python/psutil/examples/iotop.py => third_party/python/psutil/examples/iotop.py rename : python/psutil/examples/killall.py => third_party/python/psutil/examples/killall.py rename : python/psutil/examples/meminfo.py => third_party/python/psutil/examples/meminfo.py rename : python/psutil/examples/netstat.py => third_party/python/psutil/examples/netstat.py rename : python/psutil/examples/nettop.py => third_party/python/psutil/examples/nettop.py rename : python/psutil/examples/pidof.py => third_party/python/psutil/examples/pidof.py rename : python/psutil/examples/pmap.py => third_party/python/psutil/examples/pmap.py rename : python/psutil/examples/process_detail.py => third_party/python/psutil/examples/process_detail.py rename : python/psutil/examples/ps.py => third_party/python/psutil/examples/ps.py rename : python/psutil/examples/pstree.py => third_party/python/psutil/examples/pstree.py rename : python/psutil/examples/top.py => third_party/python/psutil/examples/top.py rename : python/psutil/examples/who.py => third_party/python/psutil/examples/who.py rename : python/psutil/make.bat => third_party/python/psutil/make.bat rename : python/psutil/psutil.egg-info/PKG-INFO => third_party/python/psutil/psutil.egg-info/PKG-INFO rename : python/psutil/psutil.egg-info/SOURCES.txt => third_party/python/psutil/psutil.egg-info/SOURCES.txt rename : python/psutil/psutil.egg-info/dependency_links.txt => third_party/python/psutil/psutil.egg-info/dependency_links.txt rename : python/psutil/psutil.egg-info/top_level.txt => third_party/python/psutil/psutil.egg-info/top_level.txt rename : python/psutil/psutil/__init__.py => third_party/python/psutil/psutil/__init__.py rename : python/psutil/psutil/_common.py => third_party/python/psutil/psutil/_common.py rename : python/psutil/psutil/_compat.py => third_party/python/psutil/psutil/_compat.py rename : python/psutil/psutil/_psbsd.py => third_party/python/psutil/psutil/_psbsd.py rename : python/psutil/psutil/_pslinux.py => third_party/python/psutil/psutil/_pslinux.py rename : python/psutil/psutil/_psosx.py => third_party/python/psutil/psutil/_psosx.py rename : python/psutil/psutil/_psposix.py => third_party/python/psutil/psutil/_psposix.py rename : python/psutil/psutil/_pssunos.py => third_party/python/psutil/psutil/_pssunos.py rename : python/psutil/psutil/_psutil_bsd.c => third_party/python/psutil/psutil/_psutil_bsd.c rename : python/psutil/psutil/_psutil_bsd.h => third_party/python/psutil/psutil/_psutil_bsd.h rename : python/psutil/psutil/_psutil_common.c => third_party/python/psutil/psutil/_psutil_common.c rename : python/psutil/psutil/_psutil_common.h => third_party/python/psutil/psutil/_psutil_common.h rename : python/psutil/psutil/_psutil_linux.c => third_party/python/psutil/psutil/_psutil_linux.c rename : python/psutil/psutil/_psutil_linux.h => third_party/python/psutil/psutil/_psutil_linux.h rename : python/psutil/psutil/_psutil_osx.c => third_party/python/psutil/psutil/_psutil_osx.c rename : python/psutil/psutil/_psutil_osx.h => third_party/python/psutil/psutil/_psutil_osx.h rename : python/psutil/psutil/_psutil_posix.c => third_party/python/psutil/psutil/_psutil_posix.c rename : python/psutil/psutil/_psutil_posix.h => third_party/python/psutil/psutil/_psutil_posix.h rename : python/psutil/psutil/_psutil_sunos.c => third_party/python/psutil/psutil/_psutil_sunos.c rename : python/psutil/psutil/_psutil_sunos.h => third_party/python/psutil/psutil/_psutil_sunos.h rename : python/psutil/psutil/_psutil_windows.c => third_party/python/psutil/psutil/_psutil_windows.c rename : python/psutil/psutil/_psutil_windows.h => third_party/python/psutil/psutil/_psutil_windows.h rename : python/psutil/psutil/_pswindows.py => third_party/python/psutil/psutil/_pswindows.py rename : python/psutil/psutil/arch/bsd/process_info.c => third_party/python/psutil/psutil/arch/bsd/process_info.c rename : python/psutil/psutil/arch/bsd/process_info.h => third_party/python/psutil/psutil/arch/bsd/process_info.h rename : python/psutil/psutil/arch/osx/process_info.c => third_party/python/psutil/psutil/arch/osx/process_info.c rename : python/psutil/psutil/arch/osx/process_info.h => third_party/python/psutil/psutil/arch/osx/process_info.h rename : python/psutil/psutil/arch/windows/glpi.h => third_party/python/psutil/psutil/arch/windows/glpi.h rename : python/psutil/psutil/arch/windows/inet_ntop.c => third_party/python/psutil/psutil/arch/windows/inet_ntop.c rename : python/psutil/psutil/arch/windows/inet_ntop.h => third_party/python/psutil/psutil/arch/windows/inet_ntop.h rename : python/psutil/psutil/arch/windows/ntextapi.h => third_party/python/psutil/psutil/arch/windows/ntextapi.h rename : python/psutil/psutil/arch/windows/process_handles.c => third_party/python/psutil/psutil/arch/windows/process_handles.c rename : python/psutil/psutil/arch/windows/process_handles.h => third_party/python/psutil/psutil/arch/windows/process_handles.h rename : python/psutil/psutil/arch/windows/process_info.c => third_party/python/psutil/psutil/arch/windows/process_info.c rename : python/psutil/psutil/arch/windows/process_info.h => third_party/python/psutil/psutil/arch/windows/process_info.h rename : python/psutil/psutil/arch/windows/security.c => third_party/python/psutil/psutil/arch/windows/security.c rename : python/psutil/psutil/arch/windows/security.h => third_party/python/psutil/psutil/arch/windows/security.h rename : python/psutil/setup.cfg => third_party/python/psutil/setup.cfg rename : python/psutil/setup.py => third_party/python/psutil/setup.py rename : python/psutil/test/README.rst => third_party/python/psutil/test/README.rst rename : python/psutil/test/_bsd.py => third_party/python/psutil/test/_bsd.py rename : python/psutil/test/_linux.py => third_party/python/psutil/test/_linux.py rename : python/psutil/test/_osx.py => third_party/python/psutil/test/_osx.py rename : python/psutil/test/_posix.py => third_party/python/psutil/test/_posix.py rename : python/psutil/test/_sunos.py => third_party/python/psutil/test/_sunos.py rename : python/psutil/test/_windows.py => third_party/python/psutil/test/_windows.py rename : python/psutil/test/test_memory_leaks.py => third_party/python/psutil/test/test_memory_leaks.py rename : python/psutil/test/test_psutil.py => third_party/python/psutil/test/test_psutil.py rename : python/psutil/tox.ini => third_party/python/psutil/tox.ini rename : python/py/AUTHORS => third_party/python/py/AUTHORS rename : python/py/LICENSE => third_party/python/py/LICENSE rename : python/py/MANIFEST.in => third_party/python/py/MANIFEST.in rename : python/py/PKG-INFO => third_party/python/py/PKG-INFO rename : python/py/README.txt => third_party/python/py/README.txt rename : python/py/py/__init__.py => third_party/python/py/py/__init__.py rename : python/py/py/__metainfo.py => third_party/python/py/py/__metainfo.py rename : python/py/py/_apipkg.py => third_party/python/py/py/_apipkg.py rename : python/py/py/_builtin.py => third_party/python/py/py/_builtin.py rename : python/py/py/_code/__init__.py => third_party/python/py/py/_code/__init__.py rename : python/py/py/_code/_assertionnew.py => third_party/python/py/py/_code/_assertionnew.py rename : python/py/py/_code/_assertionold.py => third_party/python/py/py/_code/_assertionold.py rename : python/py/py/_code/_py2traceback.py => third_party/python/py/py/_code/_py2traceback.py rename : python/py/py/_code/assertion.py => third_party/python/py/py/_code/assertion.py rename : python/py/py/_code/code.py => third_party/python/py/py/_code/code.py rename : python/py/py/_code/source.py => third_party/python/py/py/_code/source.py rename : python/py/py/_error.py => third_party/python/py/py/_error.py rename : python/py/py/_iniconfig.py => third_party/python/py/py/_iniconfig.py rename : python/py/py/_io/__init__.py => third_party/python/py/py/_io/__init__.py rename : python/py/py/_io/capture.py => third_party/python/py/py/_io/capture.py rename : python/py/py/_io/saferepr.py => third_party/python/py/py/_io/saferepr.py rename : python/py/py/_io/terminalwriter.py => third_party/python/py/py/_io/terminalwriter.py rename : python/py/py/_log/__init__.py => third_party/python/py/py/_log/__init__.py rename : python/py/py/_log/log.py => third_party/python/py/py/_log/log.py rename : python/py/py/_log/warning.py => third_party/python/py/py/_log/warning.py rename : python/py/py/_path/__init__.py => third_party/python/py/py/_path/__init__.py rename : python/py/py/_path/cacheutil.py => third_party/python/py/py/_path/cacheutil.py rename : python/py/py/_path/common.py => third_party/python/py/py/_path/common.py rename : python/py/py/_path/local.py => third_party/python/py/py/_path/local.py rename : python/py/py/_path/svnurl.py => third_party/python/py/py/_path/svnurl.py rename : python/py/py/_path/svnwc.py => third_party/python/py/py/_path/svnwc.py rename : python/py/py/_process/__init__.py => third_party/python/py/py/_process/__init__.py rename : python/py/py/_process/cmdexec.py => third_party/python/py/py/_process/cmdexec.py rename : python/py/py/_process/forkedfunc.py => third_party/python/py/py/_process/forkedfunc.py rename : python/py/py/_process/killproc.py => third_party/python/py/py/_process/killproc.py rename : python/py/py/_std.py => third_party/python/py/py/_std.py rename : python/py/py/_xmlgen.py => third_party/python/py/py/_xmlgen.py rename : python/py/py/test.py => third_party/python/py/py/test.py rename : python/py/setup.cfg => third_party/python/py/setup.cfg rename : python/py/setup.py => third_party/python/py/setup.py rename : python/pyasn1-modules/CHANGES => third_party/python/pyasn1-modules/CHANGES rename : python/pyasn1-modules/LICENSE => third_party/python/pyasn1-modules/LICENSE rename : python/pyasn1-modules/MANIFEST.in => third_party/python/pyasn1-modules/MANIFEST.in rename : python/pyasn1-modules/PKG-INFO => third_party/python/pyasn1-modules/PKG-INFO rename : python/pyasn1-modules/README => third_party/python/pyasn1-modules/README rename : python/pyasn1-modules/pyasn1_modules.egg-info/PKG-INFO => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/PKG-INFO rename : python/pyasn1-modules/pyasn1_modules.egg-info/SOURCES.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/SOURCES.txt rename : python/pyasn1-modules/pyasn1_modules.egg-info/dependency_links.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/dependency_links.txt rename : python/pyasn1-modules/pyasn1_modules.egg-info/requires.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/requires.txt rename : python/pyasn1-modules/pyasn1_modules.egg-info/top_level.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/top_level.txt rename : python/pyasn1-modules/pyasn1_modules.egg-info/zip-safe => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/zip-safe rename : python/pyasn1-modules/pyasn1_modules/__init__.py => third_party/python/pyasn1-modules/pyasn1_modules/__init__.py rename : python/pyasn1-modules/pyasn1_modules/pem.py => third_party/python/pyasn1-modules/pyasn1_modules/pem.py rename : python/pyasn1-modules/pyasn1_modules/pkcs12.py => third_party/python/pyasn1-modules/pyasn1_modules/pkcs12.py rename : python/pyasn1-modules/pyasn1_modules/rfc1155.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1155.py rename : python/pyasn1-modules/pyasn1_modules/rfc1157.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1157.py rename : python/pyasn1-modules/pyasn1_modules/rfc1901.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1901.py rename : python/pyasn1-modules/pyasn1_modules/rfc1902.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1902.py rename : python/pyasn1-modules/pyasn1_modules/rfc1905.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1905.py rename : python/pyasn1-modules/pyasn1_modules/rfc2251.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2251.py rename : python/pyasn1-modules/pyasn1_modules/rfc2314.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2314.py rename : python/pyasn1-modules/pyasn1_modules/rfc2315.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2315.py rename : python/pyasn1-modules/pyasn1_modules/rfc2437.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2437.py rename : python/pyasn1-modules/pyasn1_modules/rfc2459.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2459.py rename : python/pyasn1-modules/pyasn1_modules/rfc2511.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2511.py rename : python/pyasn1-modules/pyasn1_modules/rfc2560.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2560.py rename : python/pyasn1-modules/pyasn1_modules/rfc3412.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc3412.py rename : python/pyasn1-modules/pyasn1_modules/rfc3414.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc3414.py rename : python/pyasn1-modules/pyasn1_modules/rfc3447.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc3447.py rename : python/pyasn1-modules/pyasn1_modules/rfc4210.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc4210.py rename : python/pyasn1-modules/pyasn1_modules/rfc5208.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc5208.py rename : python/pyasn1-modules/setup.cfg => third_party/python/pyasn1-modules/setup.cfg rename : python/pyasn1-modules/setup.py => third_party/python/pyasn1-modules/setup.py rename : python/pyasn1-modules/test/cmp.sh => third_party/python/pyasn1-modules/test/cmp.sh rename : python/pyasn1-modules/test/crl.sh => third_party/python/pyasn1-modules/test/crl.sh rename : python/pyasn1-modules/test/crmf.sh => third_party/python/pyasn1-modules/test/crmf.sh rename : python/pyasn1-modules/test/ocspreq.sh => third_party/python/pyasn1-modules/test/ocspreq.sh rename : python/pyasn1-modules/test/ocsprsp.sh => third_party/python/pyasn1-modules/test/ocsprsp.sh rename : python/pyasn1-modules/test/pkcs1.sh => third_party/python/pyasn1-modules/test/pkcs1.sh rename : python/pyasn1-modules/test/pkcs10.sh => third_party/python/pyasn1-modules/test/pkcs10.sh rename : python/pyasn1-modules/test/pkcs7.sh => third_party/python/pyasn1-modules/test/pkcs7.sh rename : python/pyasn1-modules/test/pkcs8.sh => third_party/python/pyasn1-modules/test/pkcs8.sh rename : python/pyasn1-modules/test/x509dump.sh => third_party/python/pyasn1-modules/test/x509dump.sh rename : python/pyasn1-modules/tools/cmpdump.py => third_party/python/pyasn1-modules/tools/cmpdump.py rename : python/pyasn1-modules/tools/crldump.py => third_party/python/pyasn1-modules/tools/crldump.py rename : python/pyasn1-modules/tools/crmfdump.py => third_party/python/pyasn1-modules/tools/crmfdump.py rename : python/pyasn1-modules/tools/ocspclient.py => third_party/python/pyasn1-modules/tools/ocspclient.py rename : python/pyasn1-modules/tools/ocspreqdump.py => third_party/python/pyasn1-modules/tools/ocspreqdump.py rename : python/pyasn1-modules/tools/ocsprspdump.py => third_party/python/pyasn1-modules/tools/ocsprspdump.py rename : python/pyasn1-modules/tools/ocspserver.py => third_party/python/pyasn1-modules/tools/ocspserver.py rename : python/pyasn1-modules/tools/pkcs10dump.py => third_party/python/pyasn1-modules/tools/pkcs10dump.py rename : python/pyasn1-modules/tools/pkcs1dump.py => third_party/python/pyasn1-modules/tools/pkcs1dump.py rename : python/pyasn1-modules/tools/pkcs7dump.py => third_party/python/pyasn1-modules/tools/pkcs7dump.py rename : python/pyasn1-modules/tools/pkcs8dump.py => third_party/python/pyasn1-modules/tools/pkcs8dump.py rename : python/pyasn1-modules/tools/snmpget.py => third_party/python/pyasn1-modules/tools/snmpget.py rename : python/pyasn1-modules/tools/x509dump.py => third_party/python/pyasn1-modules/tools/x509dump.py rename : python/pyasn1/CHANGES => third_party/python/pyasn1/CHANGES rename : python/pyasn1/LICENSE => third_party/python/pyasn1/LICENSE rename : python/pyasn1/MANIFEST.in => third_party/python/pyasn1/MANIFEST.in rename : python/pyasn1/PKG-INFO => third_party/python/pyasn1/PKG-INFO rename : python/pyasn1/README => third_party/python/pyasn1/README rename : python/pyasn1/THANKS => third_party/python/pyasn1/THANKS rename : python/pyasn1/TODO => third_party/python/pyasn1/TODO rename : python/pyasn1/doc/codecs.html => third_party/python/pyasn1/doc/codecs.html rename : python/pyasn1/doc/constraints.html => third_party/python/pyasn1/doc/constraints.html rename : python/pyasn1/doc/constructed.html => third_party/python/pyasn1/doc/constructed.html rename : python/pyasn1/doc/intro.html => third_party/python/pyasn1/doc/intro.html rename : python/pyasn1/doc/pyasn1-tutorial.html => third_party/python/pyasn1/doc/pyasn1-tutorial.html rename : python/pyasn1/doc/scalar.html => third_party/python/pyasn1/doc/scalar.html rename : python/pyasn1/doc/tagging.html => third_party/python/pyasn1/doc/tagging.html rename : python/pyasn1/pyasn1.egg-info/PKG-INFO => third_party/python/pyasn1/pyasn1.egg-info/PKG-INFO rename : python/pyasn1/pyasn1.egg-info/SOURCES.txt => third_party/python/pyasn1/pyasn1.egg-info/SOURCES.txt rename : python/pyasn1/pyasn1.egg-info/dependency_links.txt => third_party/python/pyasn1/pyasn1.egg-info/dependency_links.txt rename : python/pyasn1/pyasn1.egg-info/top_level.txt => third_party/python/pyasn1/pyasn1.egg-info/top_level.txt rename : python/pyasn1/pyasn1.egg-info/zip-safe => third_party/python/pyasn1/pyasn1.egg-info/zip-safe rename : python/pyasn1/pyasn1/__init__.py => third_party/python/pyasn1/pyasn1/__init__.py rename : python/pyasn1/pyasn1/codec/__init__.py => third_party/python/pyasn1/pyasn1/codec/__init__.py rename : python/pyasn1/pyasn1/codec/ber/__init__.py => third_party/python/pyasn1/pyasn1/codec/ber/__init__.py rename : python/pyasn1/pyasn1/codec/ber/decoder.py => third_party/python/pyasn1/pyasn1/codec/ber/decoder.py rename : python/pyasn1/pyasn1/codec/ber/encoder.py => third_party/python/pyasn1/pyasn1/codec/ber/encoder.py rename : python/pyasn1/pyasn1/codec/ber/eoo.py => third_party/python/pyasn1/pyasn1/codec/ber/eoo.py rename : python/pyasn1/pyasn1/codec/cer/__init__.py => third_party/python/pyasn1/pyasn1/codec/cer/__init__.py rename : python/pyasn1/pyasn1/codec/cer/decoder.py => third_party/python/pyasn1/pyasn1/codec/cer/decoder.py rename : python/pyasn1/pyasn1/codec/cer/encoder.py => third_party/python/pyasn1/pyasn1/codec/cer/encoder.py rename : python/pyasn1/pyasn1/codec/der/__init__.py => third_party/python/pyasn1/pyasn1/codec/der/__init__.py rename : python/pyasn1/pyasn1/codec/der/decoder.py => third_party/python/pyasn1/pyasn1/codec/der/decoder.py rename : python/pyasn1/pyasn1/codec/der/encoder.py => third_party/python/pyasn1/pyasn1/codec/der/encoder.py rename : python/pyasn1/pyasn1/compat/__init__.py => third_party/python/pyasn1/pyasn1/compat/__init__.py rename : python/pyasn1/pyasn1/compat/octets.py => third_party/python/pyasn1/pyasn1/compat/octets.py rename : python/pyasn1/pyasn1/debug.py => third_party/python/pyasn1/pyasn1/debug.py rename : python/pyasn1/pyasn1/error.py => third_party/python/pyasn1/pyasn1/error.py rename : python/pyasn1/pyasn1/type/__init__.py => third_party/python/pyasn1/pyasn1/type/__init__.py rename : python/pyasn1/pyasn1/type/base.py => third_party/python/pyasn1/pyasn1/type/base.py rename : python/pyasn1/pyasn1/type/char.py => third_party/python/pyasn1/pyasn1/type/char.py rename : python/pyasn1/pyasn1/type/constraint.py => third_party/python/pyasn1/pyasn1/type/constraint.py rename : python/pyasn1/pyasn1/type/error.py => third_party/python/pyasn1/pyasn1/type/error.py rename : python/pyasn1/pyasn1/type/namedtype.py => third_party/python/pyasn1/pyasn1/type/namedtype.py rename : python/pyasn1/pyasn1/type/namedval.py => third_party/python/pyasn1/pyasn1/type/namedval.py rename : python/pyasn1/pyasn1/type/tag.py => third_party/python/pyasn1/pyasn1/type/tag.py rename : python/pyasn1/pyasn1/type/tagmap.py => third_party/python/pyasn1/pyasn1/type/tagmap.py rename : python/pyasn1/pyasn1/type/univ.py => third_party/python/pyasn1/pyasn1/type/univ.py rename : python/pyasn1/pyasn1/type/useful.py => third_party/python/pyasn1/pyasn1/type/useful.py rename : python/pyasn1/setup.cfg => third_party/python/pyasn1/setup.cfg rename : python/pyasn1/setup.py => third_party/python/pyasn1/setup.py rename : python/pyasn1/test/__init__.py => third_party/python/pyasn1/test/__init__.py rename : python/pyasn1/test/codec/__init__.py => third_party/python/pyasn1/test/codec/__init__.py rename : python/pyasn1/test/codec/ber/__init__.py => third_party/python/pyasn1/test/codec/ber/__init__.py rename : python/pyasn1/test/codec/ber/suite.py => third_party/python/pyasn1/test/codec/ber/suite.py rename : python/pyasn1/test/codec/ber/test_decoder.py => third_party/python/pyasn1/test/codec/ber/test_decoder.py rename : python/pyasn1/test/codec/ber/test_encoder.py => third_party/python/pyasn1/test/codec/ber/test_encoder.py rename : python/pyasn1/test/codec/cer/__init__.py => third_party/python/pyasn1/test/codec/cer/__init__.py rename : python/pyasn1/test/codec/cer/suite.py => third_party/python/pyasn1/test/codec/cer/suite.py rename : python/pyasn1/test/codec/cer/test_decoder.py => third_party/python/pyasn1/test/codec/cer/test_decoder.py rename : python/pyasn1/test/codec/cer/test_encoder.py => third_party/python/pyasn1/test/codec/cer/test_encoder.py rename : python/pyasn1/test/codec/der/__init__.py => third_party/python/pyasn1/test/codec/der/__init__.py rename : python/pyasn1/test/codec/der/suite.py => third_party/python/pyasn1/test/codec/der/suite.py rename : python/pyasn1/test/codec/der/test_decoder.py => third_party/python/pyasn1/test/codec/der/test_decoder.py rename : python/pyasn1/test/codec/der/test_encoder.py => third_party/python/pyasn1/test/codec/der/test_encoder.py rename : python/pyasn1/test/codec/suite.py => third_party/python/pyasn1/test/codec/suite.py rename : python/pyasn1/test/suite.py => third_party/python/pyasn1/test/suite.py rename : python/pyasn1/test/type/__init__.py => third_party/python/pyasn1/test/type/__init__.py rename : python/pyasn1/test/type/suite.py => third_party/python/pyasn1/test/type/suite.py rename : python/pyasn1/test/type/test_constraint.py => third_party/python/pyasn1/test/type/test_constraint.py rename : python/pyasn1/test/type/test_namedtype.py => third_party/python/pyasn1/test/type/test_namedtype.py rename : python/pyasn1/test/type/test_tag.py => third_party/python/pyasn1/test/type/test_tag.py rename : python/pyasn1/test/type/test_univ.py => third_party/python/pyasn1/test/type/test_univ.py rename : python/pylru/pylru.py => third_party/python/pylru/pylru.py rename : python/pylru/test.py => third_party/python/pylru/test.py rename : python/pystache/.gitignore => third_party/python/pystache/.gitignore rename : python/pystache/.gitmodules => third_party/python/pystache/.gitmodules rename : python/pystache/.travis.yml => third_party/python/pystache/.travis.yml rename : python/pystache/HISTORY.md => third_party/python/pystache/HISTORY.md rename : python/pystache/LICENSE => third_party/python/pystache/LICENSE rename : python/pystache/MANIFEST.in => third_party/python/pystache/MANIFEST.in rename : python/pystache/README.md => third_party/python/pystache/README.md rename : python/pystache/TODO.md => third_party/python/pystache/TODO.md rename : python/pystache/gh/images/logo_phillips.png => third_party/python/pystache/gh/images/logo_phillips.png rename : python/pystache/pystache/__init__.py => third_party/python/pystache/pystache/__init__.py rename : python/pystache/pystache/commands/__init__.py => third_party/python/pystache/pystache/commands/__init__.py rename : python/pystache/pystache/commands/render.py => third_party/python/pystache/pystache/commands/render.py rename : python/pystache/pystache/commands/test.py => third_party/python/pystache/pystache/commands/test.py rename : python/pystache/pystache/common.py => third_party/python/pystache/pystache/common.py rename : python/pystache/pystache/context.py => third_party/python/pystache/pystache/context.py rename : python/pystache/pystache/defaults.py => third_party/python/pystache/pystache/defaults.py rename : python/pystache/pystache/init.py => third_party/python/pystache/pystache/init.py rename : python/pystache/pystache/loader.py => third_party/python/pystache/pystache/loader.py rename : python/pystache/pystache/locator.py => third_party/python/pystache/pystache/locator.py rename : python/pystache/pystache/parsed.py => third_party/python/pystache/pystache/parsed.py rename : python/pystache/pystache/parser.py => third_party/python/pystache/pystache/parser.py rename : python/pystache/pystache/renderengine.py => third_party/python/pystache/pystache/renderengine.py rename : python/pystache/pystache/renderer.py => third_party/python/pystache/pystache/renderer.py rename : python/pystache/pystache/specloader.py => third_party/python/pystache/pystache/specloader.py rename : python/pystache/pystache/template_spec.py => third_party/python/pystache/pystache/template_spec.py rename : python/pystache/setup.py => third_party/python/pystache/setup.py rename : python/pystache/setup_description.rst => third_party/python/pystache/setup_description.rst rename : python/pystache/test_pystache.py => third_party/python/pystache/test_pystache.py rename : python/pystache/tox.ini => third_party/python/pystache/tox.ini rename : python/pytest/.coveragerc => third_party/python/pytest/.coveragerc rename : python/pytest/AUTHORS => third_party/python/pytest/AUTHORS rename : python/pytest/LICENSE => third_party/python/pytest/LICENSE rename : python/pytest/MANIFEST.in => third_party/python/pytest/MANIFEST.in rename : python/pytest/PKG-INFO => third_party/python/pytest/PKG-INFO rename : python/pytest/README.rst => third_party/python/pytest/README.rst rename : python/pytest/_pytest/__init__.py => third_party/python/pytest/_pytest/__init__.py rename : python/pytest/_pytest/_argcomplete.py => third_party/python/pytest/_pytest/_argcomplete.py rename : python/pytest/_pytest/_code/__init__.py => third_party/python/pytest/_pytest/_code/__init__.py rename : python/pytest/_pytest/_code/_py2traceback.py => third_party/python/pytest/_pytest/_code/_py2traceback.py rename : python/pytest/_pytest/_code/code.py => third_party/python/pytest/_pytest/_code/code.py rename : python/pytest/_pytest/_code/source.py => third_party/python/pytest/_pytest/_code/source.py rename : python/pytest/_pytest/_pluggy.py => third_party/python/pytest/_pytest/_pluggy.py rename : python/pytest/_pytest/assertion/__init__.py => third_party/python/pytest/_pytest/assertion/__init__.py rename : python/pytest/_pytest/assertion/reinterpret.py => third_party/python/pytest/_pytest/assertion/reinterpret.py rename : python/pytest/_pytest/assertion/rewrite.py => third_party/python/pytest/_pytest/assertion/rewrite.py rename : python/pytest/_pytest/assertion/util.py => third_party/python/pytest/_pytest/assertion/util.py rename : python/pytest/_pytest/cacheprovider.py => third_party/python/pytest/_pytest/cacheprovider.py rename : python/pytest/_pytest/capture.py => third_party/python/pytest/_pytest/capture.py rename : python/pytest/_pytest/config.py => third_party/python/pytest/_pytest/config.py rename : python/pytest/_pytest/doctest.py => third_party/python/pytest/_pytest/doctest.py rename : python/pytest/_pytest/genscript.py => third_party/python/pytest/_pytest/genscript.py rename : python/pytest/_pytest/helpconfig.py => third_party/python/pytest/_pytest/helpconfig.py rename : python/pytest/_pytest/hookspec.py => third_party/python/pytest/_pytest/hookspec.py rename : python/pytest/_pytest/junitxml.py => third_party/python/pytest/_pytest/junitxml.py rename : python/pytest/_pytest/main.py => third_party/python/pytest/_pytest/main.py rename : python/pytest/_pytest/mark.py => third_party/python/pytest/_pytest/mark.py rename : python/pytest/_pytest/monkeypatch.py => third_party/python/pytest/_pytest/monkeypatch.py rename : python/pytest/_pytest/nose.py => third_party/python/pytest/_pytest/nose.py rename : python/pytest/_pytest/pastebin.py => third_party/python/pytest/_pytest/pastebin.py rename : python/pytest/_pytest/pdb.py => third_party/python/pytest/_pytest/pdb.py rename : python/pytest/_pytest/pytester.py => third_party/python/pytest/_pytest/pytester.py rename : python/pytest/_pytest/python.py => third_party/python/pytest/_pytest/python.py rename : python/pytest/_pytest/recwarn.py => third_party/python/pytest/_pytest/recwarn.py rename : python/pytest/_pytest/resultlog.py => third_party/python/pytest/_pytest/resultlog.py rename : python/pytest/_pytest/runner.py => third_party/python/pytest/_pytest/runner.py rename : python/pytest/_pytest/skipping.py => third_party/python/pytest/_pytest/skipping.py rename : python/pytest/_pytest/standalonetemplate.py => third_party/python/pytest/_pytest/standalonetemplate.py rename : python/pytest/_pytest/terminal.py => third_party/python/pytest/_pytest/terminal.py rename : python/pytest/_pytest/tmpdir.py => third_party/python/pytest/_pytest/tmpdir.py rename : python/pytest/_pytest/unittest.py => third_party/python/pytest/_pytest/unittest.py rename : python/pytest/_pytest/vendored_packages/README.md => third_party/python/pytest/_pytest/vendored_packages/README.md rename : python/pytest/_pytest/vendored_packages/__init__.py => third_party/python/pytest/_pytest/vendored_packages/__init__.py rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/DESCRIPTION.rst => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/DESCRIPTION.rst rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/METADATA => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/METADATA rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/RECORD => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/RECORD rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/WHEEL => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/WHEEL rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/metadata.json => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/metadata.json rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/pbr.json => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/pbr.json rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/top_level.txt => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/top_level.txt rename : python/pytest/_pytest/vendored_packages/pluggy.py => third_party/python/pytest/_pytest/vendored_packages/pluggy.py rename : python/pytest/pytest.py => third_party/python/pytest/pytest.py rename : python/pytest/setup.cfg => third_party/python/pytest/setup.cfg rename : python/pytest/setup.py => third_party/python/pytest/setup.py rename : python/pytoml/PKG-INFO => third_party/python/pytoml/PKG-INFO rename : python/pytoml/pytoml/__init__.py => third_party/python/pytoml/pytoml/__init__.py rename : python/pytoml/pytoml/core.py => third_party/python/pytoml/pytoml/core.py rename : python/pytoml/pytoml/parser.py => third_party/python/pytoml/pytoml/parser.py rename : python/pytoml/pytoml/writer.py => third_party/python/pytoml/pytoml/writer.py rename : python/pytoml/setup.cfg => third_party/python/pytoml/setup.cfg rename : python/pytoml/setup.py => third_party/python/pytoml/setup.py rename : python/pytoml/test/test.py => third_party/python/pytoml/test/test.py rename : python/pyyaml/CHANGES => third_party/python/pyyaml/CHANGES rename : python/pyyaml/LICENSE => third_party/python/pyyaml/LICENSE rename : python/pyyaml/PKG-INFO => third_party/python/pyyaml/PKG-INFO rename : python/pyyaml/README => third_party/python/pyyaml/README rename : python/pyyaml/examples/pygments-lexer/example.yaml => third_party/python/pyyaml/examples/pygments-lexer/example.yaml rename : python/pyyaml/examples/pygments-lexer/yaml.py => third_party/python/pyyaml/examples/pygments-lexer/yaml.py rename : python/pyyaml/examples/yaml-highlight/yaml_hl.cfg => third_party/python/pyyaml/examples/yaml-highlight/yaml_hl.cfg rename : python/pyyaml/examples/yaml-highlight/yaml_hl.py => third_party/python/pyyaml/examples/yaml-highlight/yaml_hl.py rename : python/pyyaml/ext/_yaml.c => third_party/python/pyyaml/ext/_yaml.c rename : python/pyyaml/ext/_yaml.h => third_party/python/pyyaml/ext/_yaml.h rename : python/pyyaml/ext/_yaml.pxd => third_party/python/pyyaml/ext/_yaml.pxd rename : python/pyyaml/ext/_yaml.pyx => third_party/python/pyyaml/ext/_yaml.pyx rename : python/pyyaml/lib/yaml/__init__.py => third_party/python/pyyaml/lib/yaml/__init__.py rename : python/pyyaml/lib/yaml/composer.py => third_party/python/pyyaml/lib/yaml/composer.py rename : python/pyyaml/lib/yaml/constructor.py => third_party/python/pyyaml/lib/yaml/constructor.py rename : python/pyyaml/lib/yaml/cyaml.py => third_party/python/pyyaml/lib/yaml/cyaml.py rename : python/pyyaml/lib/yaml/dumper.py => third_party/python/pyyaml/lib/yaml/dumper.py rename : python/pyyaml/lib/yaml/emitter.py => third_party/python/pyyaml/lib/yaml/emitter.py rename : python/pyyaml/lib/yaml/error.py => third_party/python/pyyaml/lib/yaml/error.py rename : python/pyyaml/lib/yaml/events.py => third_party/python/pyyaml/lib/yaml/events.py rename : python/pyyaml/lib/yaml/loader.py => third_party/python/pyyaml/lib/yaml/loader.py rename : python/pyyaml/lib/yaml/nodes.py => third_party/python/pyyaml/lib/yaml/nodes.py rename : python/pyyaml/lib/yaml/parser.py => third_party/python/pyyaml/lib/yaml/parser.py rename : python/pyyaml/lib/yaml/reader.py => third_party/python/pyyaml/lib/yaml/reader.py rename : python/pyyaml/lib/yaml/representer.py => third_party/python/pyyaml/lib/yaml/representer.py rename : python/pyyaml/lib/yaml/resolver.py => third_party/python/pyyaml/lib/yaml/resolver.py rename : python/pyyaml/lib/yaml/scanner.py => third_party/python/pyyaml/lib/yaml/scanner.py rename : python/pyyaml/lib/yaml/serializer.py => third_party/python/pyyaml/lib/yaml/serializer.py rename : python/pyyaml/lib/yaml/tokens.py => third_party/python/pyyaml/lib/yaml/tokens.py rename : python/pyyaml/lib3/yaml/__init__.py => third_party/python/pyyaml/lib3/yaml/__init__.py rename : python/pyyaml/lib3/yaml/composer.py => third_party/python/pyyaml/lib3/yaml/composer.py rename : python/pyyaml/lib3/yaml/constructor.py => third_party/python/pyyaml/lib3/yaml/constructor.py rename : python/pyyaml/lib3/yaml/cyaml.py => third_party/python/pyyaml/lib3/yaml/cyaml.py rename : python/pyyaml/lib3/yaml/dumper.py => third_party/python/pyyaml/lib3/yaml/dumper.py rename : python/pyyaml/lib3/yaml/emitter.py => third_party/python/pyyaml/lib3/yaml/emitter.py rename : python/pyyaml/lib3/yaml/error.py => third_party/python/pyyaml/lib3/yaml/error.py rename : python/pyyaml/lib3/yaml/events.py => third_party/python/pyyaml/lib3/yaml/events.py rename : python/pyyaml/lib3/yaml/loader.py => third_party/python/pyyaml/lib3/yaml/loader.py rename : python/pyyaml/lib3/yaml/nodes.py => third_party/python/pyyaml/lib3/yaml/nodes.py rename : python/pyyaml/lib3/yaml/parser.py => third_party/python/pyyaml/lib3/yaml/parser.py rename : python/pyyaml/lib3/yaml/reader.py => third_party/python/pyyaml/lib3/yaml/reader.py rename : python/pyyaml/lib3/yaml/representer.py => third_party/python/pyyaml/lib3/yaml/representer.py rename : python/pyyaml/lib3/yaml/resolver.py => third_party/python/pyyaml/lib3/yaml/resolver.py rename : python/pyyaml/lib3/yaml/scanner.py => third_party/python/pyyaml/lib3/yaml/scanner.py rename : python/pyyaml/lib3/yaml/serializer.py => third_party/python/pyyaml/lib3/yaml/serializer.py rename : python/pyyaml/lib3/yaml/tokens.py => third_party/python/pyyaml/lib3/yaml/tokens.py rename : python/pyyaml/setup.cfg => third_party/python/pyyaml/setup.cfg rename : python/pyyaml/setup.py => third_party/python/pyyaml/setup.py rename : python/redo/PKG-INFO => third_party/python/redo/PKG-INFO rename : python/redo/README => third_party/python/redo/README rename : python/redo/redo.egg-info/PKG-INFO => third_party/python/redo/redo.egg-info/PKG-INFO rename : python/redo/redo.egg-info/SOURCES.txt => third_party/python/redo/redo.egg-info/SOURCES.txt rename : python/redo/redo.egg-info/dependency_links.txt => third_party/python/redo/redo.egg-info/dependency_links.txt rename : python/redo/redo.egg-info/entry_points.txt => third_party/python/redo/redo.egg-info/entry_points.txt rename : python/redo/redo.egg-info/top_level.txt => third_party/python/redo/redo.egg-info/top_level.txt rename : python/redo/redo/__init__.py => third_party/python/redo/redo/__init__.py rename : python/redo/redo/cmd.py => third_party/python/redo/redo/cmd.py rename : python/redo/setup.cfg => third_party/python/redo/setup.cfg rename : python/redo/setup.py => third_party/python/redo/setup.py rename : python/requests/HISTORY.rst => third_party/python/requests/HISTORY.rst rename : python/requests/LICENSE => third_party/python/requests/LICENSE rename : python/requests/MANIFEST.in => third_party/python/requests/MANIFEST.in rename : python/requests/NOTICE => third_party/python/requests/NOTICE rename : python/requests/PKG-INFO => third_party/python/requests/PKG-INFO rename : python/requests/README.rst => third_party/python/requests/README.rst rename : python/requests/requests.egg-info/PKG-INFO => third_party/python/requests/requests.egg-info/PKG-INFO rename : python/requests/requests.egg-info/SOURCES.txt => third_party/python/requests/requests.egg-info/SOURCES.txt rename : python/requests/requests.egg-info/dependency_links.txt => third_party/python/requests/requests.egg-info/dependency_links.txt rename : python/requests/requests.egg-info/not-zip-safe => third_party/python/requests/requests.egg-info/not-zip-safe rename : python/requests/requests.egg-info/requires.txt => third_party/python/requests/requests.egg-info/requires.txt rename : python/requests/requests.egg-info/top_level.txt => third_party/python/requests/requests.egg-info/top_level.txt rename : python/requests/requests/__init__.py => third_party/python/requests/requests/__init__.py rename : python/requests/requests/adapters.py => third_party/python/requests/requests/adapters.py rename : python/requests/requests/api.py => third_party/python/requests/requests/api.py rename : python/requests/requests/auth.py => third_party/python/requests/requests/auth.py rename : python/requests/requests/cacert.pem => third_party/python/requests/requests/cacert.pem rename : python/requests/requests/certs.py => third_party/python/requests/requests/certs.py rename : python/requests/requests/compat.py => third_party/python/requests/requests/compat.py rename : python/requests/requests/cookies.py => third_party/python/requests/requests/cookies.py rename : python/requests/requests/exceptions.py => third_party/python/requests/requests/exceptions.py rename : python/requests/requests/hooks.py => third_party/python/requests/requests/hooks.py rename : python/requests/requests/models.py => third_party/python/requests/requests/models.py rename : python/requests/requests/packages/__init__.py => third_party/python/requests/requests/packages/__init__.py rename : python/requests/requests/packages/chardet/__init__.py => third_party/python/requests/requests/packages/chardet/__init__.py rename : python/requests/requests/packages/chardet/big5freq.py => third_party/python/requests/requests/packages/chardet/big5freq.py rename : python/requests/requests/packages/chardet/big5prober.py => third_party/python/requests/requests/packages/chardet/big5prober.py rename : python/requests/requests/packages/chardet/chardetect.py => third_party/python/requests/requests/packages/chardet/chardetect.py rename : python/requests/requests/packages/chardet/chardistribution.py => third_party/python/requests/requests/packages/chardet/chardistribution.py rename : python/requests/requests/packages/chardet/charsetgroupprober.py => third_party/python/requests/requests/packages/chardet/charsetgroupprober.py rename : python/requests/requests/packages/chardet/charsetprober.py => third_party/python/requests/requests/packages/chardet/charsetprober.py rename : python/requests/requests/packages/chardet/codingstatemachine.py => third_party/python/requests/requests/packages/chardet/codingstatemachine.py rename : python/requests/requests/packages/chardet/compat.py => third_party/python/requests/requests/packages/chardet/compat.py rename : python/requests/requests/packages/chardet/constants.py => third_party/python/requests/requests/packages/chardet/constants.py rename : python/requests/requests/packages/chardet/cp949prober.py => third_party/python/requests/requests/packages/chardet/cp949prober.py rename : python/requests/requests/packages/chardet/escprober.py => third_party/python/requests/requests/packages/chardet/escprober.py rename : python/requests/requests/packages/chardet/escsm.py => third_party/python/requests/requests/packages/chardet/escsm.py rename : python/requests/requests/packages/chardet/eucjpprober.py => third_party/python/requests/requests/packages/chardet/eucjpprober.py rename : python/requests/requests/packages/chardet/euckrfreq.py => third_party/python/requests/requests/packages/chardet/euckrfreq.py rename : python/requests/requests/packages/chardet/euckrprober.py => third_party/python/requests/requests/packages/chardet/euckrprober.py rename : python/requests/requests/packages/chardet/euctwfreq.py => third_party/python/requests/requests/packages/chardet/euctwfreq.py rename : python/requests/requests/packages/chardet/euctwprober.py => third_party/python/requests/requests/packages/chardet/euctwprober.py rename : python/requests/requests/packages/chardet/gb2312freq.py => third_party/python/requests/requests/packages/chardet/gb2312freq.py rename : python/requests/requests/packages/chardet/gb2312prober.py => third_party/python/requests/requests/packages/chardet/gb2312prober.py rename : python/requests/requests/packages/chardet/hebrewprober.py => third_party/python/requests/requests/packages/chardet/hebrewprober.py rename : python/requests/requests/packages/chardet/jisfreq.py => third_party/python/requests/requests/packages/chardet/jisfreq.py rename : python/requests/requests/packages/chardet/jpcntx.py => third_party/python/requests/requests/packages/chardet/jpcntx.py rename : python/requests/requests/packages/chardet/langbulgarianmodel.py => third_party/python/requests/requests/packages/chardet/langbulgarianmodel.py rename : python/requests/requests/packages/chardet/langcyrillicmodel.py => third_party/python/requests/requests/packages/chardet/langcyrillicmodel.py rename : python/requests/requests/packages/chardet/langgreekmodel.py => third_party/python/requests/requests/packages/chardet/langgreekmodel.py rename : python/requests/requests/packages/chardet/langhebrewmodel.py => third_party/python/requests/requests/packages/chardet/langhebrewmodel.py rename : python/requests/requests/packages/chardet/langhungarianmodel.py => third_party/python/requests/requests/packages/chardet/langhungarianmodel.py rename : python/requests/requests/packages/chardet/langthaimodel.py => third_party/python/requests/requests/packages/chardet/langthaimodel.py rename : python/requests/requests/packages/chardet/latin1prober.py => third_party/python/requests/requests/packages/chardet/latin1prober.py rename : python/requests/requests/packages/chardet/mbcharsetprober.py => third_party/python/requests/requests/packages/chardet/mbcharsetprober.py rename : python/requests/requests/packages/chardet/mbcsgroupprober.py => third_party/python/requests/requests/packages/chardet/mbcsgroupprober.py rename : python/requests/requests/packages/chardet/mbcssm.py => third_party/python/requests/requests/packages/chardet/mbcssm.py rename : python/requests/requests/packages/chardet/sbcharsetprober.py => third_party/python/requests/requests/packages/chardet/sbcharsetprober.py rename : python/requests/requests/packages/chardet/sbcsgroupprober.py => third_party/python/requests/requests/packages/chardet/sbcsgroupprober.py rename : python/requests/requests/packages/chardet/sjisprober.py => third_party/python/requests/requests/packages/chardet/sjisprober.py rename : python/requests/requests/packages/chardet/universaldetector.py => third_party/python/requests/requests/packages/chardet/universaldetector.py rename : python/requests/requests/packages/chardet/utf8prober.py => third_party/python/requests/requests/packages/chardet/utf8prober.py rename : python/requests/requests/packages/urllib3/__init__.py => third_party/python/requests/requests/packages/urllib3/__init__.py rename : python/requests/requests/packages/urllib3/_collections.py => third_party/python/requests/requests/packages/urllib3/_collections.py rename : python/requests/requests/packages/urllib3/connection.py => third_party/python/requests/requests/packages/urllib3/connection.py rename : python/requests/requests/packages/urllib3/connectionpool.py => third_party/python/requests/requests/packages/urllib3/connectionpool.py rename : python/requests/requests/packages/urllib3/contrib/__init__.py => third_party/python/requests/requests/packages/urllib3/contrib/__init__.py rename : python/requests/requests/packages/urllib3/contrib/appengine.py => third_party/python/requests/requests/packages/urllib3/contrib/appengine.py rename : python/requests/requests/packages/urllib3/contrib/ntlmpool.py => third_party/python/requests/requests/packages/urllib3/contrib/ntlmpool.py rename : python/requests/requests/packages/urllib3/contrib/pyopenssl.py => third_party/python/requests/requests/packages/urllib3/contrib/pyopenssl.py rename : python/requests/requests/packages/urllib3/exceptions.py => third_party/python/requests/requests/packages/urllib3/exceptions.py rename : python/requests/requests/packages/urllib3/fields.py => third_party/python/requests/requests/packages/urllib3/fields.py rename : python/requests/requests/packages/urllib3/filepost.py => third_party/python/requests/requests/packages/urllib3/filepost.py rename : python/requests/requests/packages/urllib3/packages/__init__.py => third_party/python/requests/requests/packages/urllib3/packages/__init__.py rename : python/requests/requests/packages/urllib3/packages/ordered_dict.py => third_party/python/requests/requests/packages/urllib3/packages/ordered_dict.py rename : python/requests/requests/packages/urllib3/packages/six.py => third_party/python/requests/requests/packages/urllib3/packages/six.py rename : python/requests/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py => third_party/python/requests/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py rename : python/requests/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py => third_party/python/requests/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py rename : python/requests/requests/packages/urllib3/poolmanager.py => third_party/python/requests/requests/packages/urllib3/poolmanager.py rename : python/requests/requests/packages/urllib3/request.py => third_party/python/requests/requests/packages/urllib3/request.py rename : python/requests/requests/packages/urllib3/response.py => third_party/python/requests/requests/packages/urllib3/response.py rename : python/requests/requests/packages/urllib3/util/__init__.py => third_party/python/requests/requests/packages/urllib3/util/__init__.py rename : python/requests/requests/packages/urllib3/util/connection.py => third_party/python/requests/requests/packages/urllib3/util/connection.py rename : python/requests/requests/packages/urllib3/util/request.py => third_party/python/requests/requests/packages/urllib3/util/request.py rename : python/requests/requests/packages/urllib3/util/response.py => third_party/python/requests/requests/packages/urllib3/util/response.py rename : python/requests/requests/packages/urllib3/util/retry.py => third_party/python/requests/requests/packages/urllib3/util/retry.py rename : python/requests/requests/packages/urllib3/util/ssl_.py => third_party/python/requests/requests/packages/urllib3/util/ssl_.py rename : python/requests/requests/packages/urllib3/util/timeout.py => third_party/python/requests/requests/packages/urllib3/util/timeout.py rename : python/requests/requests/packages/urllib3/util/url.py => third_party/python/requests/requests/packages/urllib3/util/url.py rename : python/requests/requests/sessions.py => third_party/python/requests/requests/sessions.py rename : python/requests/requests/status_codes.py => third_party/python/requests/requests/status_codes.py rename : python/requests/requests/structures.py => third_party/python/requests/requests/structures.py rename : python/requests/requests/utils.py => third_party/python/requests/requests/utils.py rename : python/requests/requirements.txt => third_party/python/requests/requirements.txt rename : python/requests/setup.cfg => third_party/python/requests/setup.cfg rename : python/requests/setup.py => third_party/python/requests/setup.py rename : python/requests/test_requests.py => third_party/python/requests/test_requests.py rename : python/rsa/LICENSE => third_party/python/rsa/LICENSE rename : python/rsa/MANIFEST.in => third_party/python/rsa/MANIFEST.in rename : python/rsa/PKG-INFO => third_party/python/rsa/PKG-INFO rename : python/rsa/README.rst => third_party/python/rsa/README.rst rename : python/rsa/create_timing_table.py => third_party/python/rsa/create_timing_table.py rename : python/rsa/playstuff.py => third_party/python/rsa/playstuff.py rename : python/rsa/rsa.egg-info/PKG-INFO => third_party/python/rsa/rsa.egg-info/PKG-INFO rename : python/rsa/rsa.egg-info/SOURCES.txt => third_party/python/rsa/rsa.egg-info/SOURCES.txt rename : python/rsa/rsa.egg-info/dependency_links.txt => third_party/python/rsa/rsa.egg-info/dependency_links.txt rename : python/rsa/rsa.egg-info/entry_points.txt => third_party/python/rsa/rsa.egg-info/entry_points.txt rename : python/rsa/rsa.egg-info/requires.txt => third_party/python/rsa/rsa.egg-info/requires.txt rename : python/rsa/rsa.egg-info/top_level.txt => third_party/python/rsa/rsa.egg-info/top_level.txt rename : python/rsa/rsa/__init__.py => third_party/python/rsa/rsa/__init__.py rename : python/rsa/rsa/_compat.py => third_party/python/rsa/rsa/_compat.py rename : python/rsa/rsa/_version133.py => third_party/python/rsa/rsa/_version133.py rename : python/rsa/rsa/_version200.py => third_party/python/rsa/rsa/_version200.py rename : python/rsa/rsa/asn1.py => third_party/python/rsa/rsa/asn1.py rename : python/rsa/rsa/bigfile.py => third_party/python/rsa/rsa/bigfile.py rename : python/rsa/rsa/cli.py => third_party/python/rsa/rsa/cli.py rename : python/rsa/rsa/common.py => third_party/python/rsa/rsa/common.py rename : python/rsa/rsa/core.py => third_party/python/rsa/rsa/core.py rename : python/rsa/rsa/key.py => third_party/python/rsa/rsa/key.py rename : python/rsa/rsa/parallel.py => third_party/python/rsa/rsa/parallel.py rename : python/rsa/rsa/pem.py => third_party/python/rsa/rsa/pem.py rename : python/rsa/rsa/pkcs1.py => third_party/python/rsa/rsa/pkcs1.py rename : python/rsa/rsa/prime.py => third_party/python/rsa/rsa/prime.py rename : python/rsa/rsa/randnum.py => third_party/python/rsa/rsa/randnum.py rename : python/rsa/rsa/transform.py => third_party/python/rsa/rsa/transform.py rename : python/rsa/rsa/util.py => third_party/python/rsa/rsa/util.py rename : python/rsa/rsa/varblock.py => third_party/python/rsa/rsa/varblock.py rename : python/rsa/run_tests.py => third_party/python/rsa/run_tests.py rename : python/rsa/setup.cfg => third_party/python/rsa/setup.cfg rename : python/rsa/setup.py => third_party/python/rsa/setup.py rename : python/rsa/tests/__init__.py => third_party/python/rsa/tests/__init__.py rename : python/rsa/tests/constants.py => third_party/python/rsa/tests/constants.py rename : python/rsa/tests/py2kconstants.py => third_party/python/rsa/tests/py2kconstants.py rename : python/rsa/tests/py3kconstants.py => third_party/python/rsa/tests/py3kconstants.py rename : python/rsa/tests/test_bigfile.py => third_party/python/rsa/tests/test_bigfile.py rename : python/rsa/tests/test_common.py => third_party/python/rsa/tests/test_common.py rename : python/rsa/tests/test_compat.py => third_party/python/rsa/tests/test_compat.py rename : python/rsa/tests/test_integers.py => third_party/python/rsa/tests/test_integers.py rename : python/rsa/tests/test_load_save_keys.py => third_party/python/rsa/tests/test_load_save_keys.py rename : python/rsa/tests/test_pem.py => third_party/python/rsa/tests/test_pem.py rename : python/rsa/tests/test_pkcs1.py => third_party/python/rsa/tests/test_pkcs1.py rename : python/rsa/tests/test_strings.py => third_party/python/rsa/tests/test_strings.py rename : python/rsa/tests/test_transform.py => third_party/python/rsa/tests/test_transform.py rename : python/rsa/tests/test_varblock.py => third_party/python/rsa/tests/test_varblock.py rename : python/slugid/.gitignore => third_party/python/slugid/.gitignore rename : python/slugid/.travis.yml => third_party/python/slugid/.travis.yml rename : python/slugid/LICENSE => third_party/python/slugid/LICENSE rename : python/slugid/README.rst => third_party/python/slugid/README.rst rename : python/slugid/requirements.txt => third_party/python/slugid/requirements.txt rename : python/slugid/setup.py => third_party/python/slugid/setup.py rename : python/slugid/slugid/__init__.py => third_party/python/slugid/slugid/__init__.py rename : python/slugid/slugid/slugid.py => third_party/python/slugid/slugid/slugid.py rename : python/slugid/test.py => third_party/python/slugid/test.py rename : python/slugid/tox.ini => third_party/python/slugid/tox.ini rename : python/virtualenv/AUTHORS.txt => third_party/python/virtualenv/AUTHORS.txt rename : python/virtualenv/LICENSE.txt => third_party/python/virtualenv/LICENSE.txt rename : python/virtualenv/MANIFEST.in => third_party/python/virtualenv/MANIFEST.in rename : python/virtualenv/PKG-INFO => third_party/python/virtualenv/PKG-INFO rename : python/virtualenv/README.rst => third_party/python/virtualenv/README.rst rename : python/virtualenv/bin/rebuild-script.py => third_party/python/virtualenv/bin/rebuild-script.py rename : python/virtualenv/docs/Makefile => third_party/python/virtualenv/docs/Makefile rename : python/virtualenv/docs/changes.rst => third_party/python/virtualenv/docs/changes.rst rename : python/virtualenv/docs/conf.py => third_party/python/virtualenv/docs/conf.py rename : python/virtualenv/docs/development.rst => third_party/python/virtualenv/docs/development.rst rename : python/virtualenv/docs/index.rst => third_party/python/virtualenv/docs/index.rst rename : python/virtualenv/docs/installation.rst => third_party/python/virtualenv/docs/installation.rst rename : python/virtualenv/docs/make.bat => third_party/python/virtualenv/docs/make.bat rename : python/virtualenv/docs/reference.rst => third_party/python/virtualenv/docs/reference.rst rename : python/virtualenv/docs/userguide.rst => third_party/python/virtualenv/docs/userguide.rst rename : python/virtualenv/scripts/virtualenv => third_party/python/virtualenv/scripts/virtualenv rename : python/virtualenv/setup.cfg => third_party/python/virtualenv/setup.cfg rename : python/virtualenv/setup.py => third_party/python/virtualenv/setup.py rename : python/virtualenv/site.py => third_party/python/virtualenv/site.py rename : python/virtualenv/tests/__init__.py => third_party/python/virtualenv/tests/__init__.py rename : python/virtualenv/tests/test_activate.sh => third_party/python/virtualenv/tests/test_activate.sh rename : python/virtualenv/tests/test_activate_output.expected => third_party/python/virtualenv/tests/test_activate_output.expected rename : python/virtualenv/tests/test_cmdline.py => third_party/python/virtualenv/tests/test_cmdline.py rename : python/virtualenv/tests/test_virtualenv.py => third_party/python/virtualenv/tests/test_virtualenv.py rename : python/virtualenv/virtualenv.py => third_party/python/virtualenv/virtualenv.py rename : python/virtualenv/virtualenv_embedded/activate.bat => third_party/python/virtualenv/virtualenv_embedded/activate.bat rename : python/virtualenv/virtualenv_embedded/activate.csh => third_party/python/virtualenv/virtualenv_embedded/activate.csh rename : python/virtualenv/virtualenv_embedded/activate.fish => third_party/python/virtualenv/virtualenv_embedded/activate.fish rename : python/virtualenv/virtualenv_embedded/activate.ps1 => third_party/python/virtualenv/virtualenv_embedded/activate.ps1 rename : python/virtualenv/virtualenv_embedded/activate.sh => third_party/python/virtualenv/virtualenv_embedded/activate.sh rename : python/virtualenv/virtualenv_embedded/activate_this.py => third_party/python/virtualenv/virtualenv_embedded/activate_this.py rename : python/virtualenv/virtualenv_embedded/deactivate.bat => third_party/python/virtualenv/virtualenv_embedded/deactivate.bat rename : python/virtualenv/virtualenv_embedded/distutils-init.py => third_party/python/virtualenv/virtualenv_embedded/distutils-init.py rename : python/virtualenv/virtualenv_embedded/distutils.cfg => third_party/python/virtualenv/virtualenv_embedded/distutils.cfg rename : python/virtualenv/virtualenv_embedded/python-config => third_party/python/virtualenv/virtualenv_embedded/python-config rename : python/virtualenv/virtualenv_embedded/site.py => third_party/python/virtualenv/virtualenv_embedded/site.py rename : python/virtualenv/virtualenv_support/__init__.py => third_party/python/virtualenv/virtualenv_support/__init__.py rename : python/virtualenv/virtualenv_support/argparse-1.4.0-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/argparse-1.4.0-py2.py3-none-any.whl rename : python/virtualenv/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl rename : python/virtualenv/virtualenv_support/setuptools-25.2.0-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/setuptools-25.2.0-py2.py3-none-any.whl rename : python/virtualenv/virtualenv_support/wheel-0.29.0-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/wheel-0.29.0-py2.py3-none-any.whl rename : python/voluptuous/COPYING => third_party/python/voluptuous/COPYING rename : python/voluptuous/MANIFEST.in => third_party/python/voluptuous/MANIFEST.in rename : python/voluptuous/PKG-INFO => third_party/python/voluptuous/PKG-INFO rename : python/voluptuous/README.md => third_party/python/voluptuous/README.md rename : python/voluptuous/README.rst => third_party/python/voluptuous/README.rst rename : python/voluptuous/setup.cfg => third_party/python/voluptuous/setup.cfg rename : python/voluptuous/setup.py => third_party/python/voluptuous/setup.py rename : python/voluptuous/tests.md => third_party/python/voluptuous/tests.md rename : python/voluptuous/voluptuous.py => third_party/python/voluptuous/voluptuous.py rename : python/which/LICENSE.txt => third_party/python/which/LICENSE.txt rename : python/which/MANIFEST.in => third_party/python/which/MANIFEST.in rename : python/which/Makefile.win => third_party/python/which/Makefile.win rename : python/which/PKG-INFO => third_party/python/which/PKG-INFO rename : python/which/README.txt => third_party/python/which/README.txt rename : python/which/TODO.txt => third_party/python/which/TODO.txt rename : python/which/build.py => third_party/python/which/build.py rename : python/which/launcher.cpp => third_party/python/which/launcher.cpp rename : python/which/logo.jpg => third_party/python/which/logo.jpg rename : python/which/setup.py => third_party/python/which/setup.py rename : python/which/test/test_which.py => third_party/python/which/test/test_which.py rename : python/which/test/testsupport.py => third_party/python/which/test/testsupport.py rename : python/which/which.py => third_party/python/which/which.py extra : rebase_source : fc38848c444c36b0d38a0c33aa5be74d5037d57d
479 lines
14 KiB
Text
479 lines
14 KiB
Text
===========================
|
|
Getting Started with Mock
|
|
===========================
|
|
|
|
.. _getting-started:
|
|
|
|
.. index:: Getting Started
|
|
|
|
.. testsetup::
|
|
|
|
class SomeClass(object):
|
|
static_method = None
|
|
class_method = None
|
|
attribute = None
|
|
|
|
sys.modules['package'] = package = Mock(name='package')
|
|
sys.modules['package.module'] = module = package.module
|
|
sys.modules['module'] = package.module
|
|
|
|
|
|
Using Mock
|
|
==========
|
|
|
|
Mock Patching Methods
|
|
---------------------
|
|
|
|
Common uses for :class:`Mock` objects include:
|
|
|
|
* Patching methods
|
|
* Recording method calls on objects
|
|
|
|
You might want to replace a method on an object to check that
|
|
it is called with the correct arguments by another part of the system:
|
|
|
|
.. doctest::
|
|
|
|
>>> real = SomeClass()
|
|
>>> real.method = MagicMock(name='method')
|
|
>>> real.method(3, 4, 5, key='value')
|
|
<MagicMock name='method()' id='...'>
|
|
|
|
Once our mock has been used (`real.method` in this example) it has methods
|
|
and attributes that allow you to make assertions about how it has been used.
|
|
|
|
.. note::
|
|
|
|
In most of these examples the :class:`Mock` and :class:`MagicMock` classes
|
|
are interchangeable. As the `MagicMock` is the more capable class it makes
|
|
a sensible one to use by default.
|
|
|
|
Once the mock has been called its :attr:`~Mock.called` attribute is set to
|
|
`True`. More importantly we can use the :meth:`~Mock.assert_called_with` or
|
|
:meth:`~Mock.assert_called_once_with` method to check that it was called with
|
|
the correct arguments.
|
|
|
|
This example tests that calling `ProductionClass().method` results in a call to
|
|
the `something` method:
|
|
|
|
.. doctest::
|
|
|
|
>>> from mock import MagicMock
|
|
>>> class ProductionClass(object):
|
|
... def method(self):
|
|
... self.something(1, 2, 3)
|
|
... def something(self, a, b, c):
|
|
... pass
|
|
...
|
|
>>> real = ProductionClass()
|
|
>>> real.something = MagicMock()
|
|
>>> real.method()
|
|
>>> real.something.assert_called_once_with(1, 2, 3)
|
|
|
|
|
|
|
|
Mock for Method Calls on an Object
|
|
----------------------------------
|
|
|
|
In the last example we patched a method directly on an object to check that it
|
|
was called correctly. Another common use case is to pass an object into a
|
|
method (or some part of the system under test) and then check that it is used
|
|
in the correct way.
|
|
|
|
The simple `ProductionClass` below has a `closer` method. If it is called with
|
|
an object then it calls `close` on it.
|
|
|
|
.. doctest::
|
|
|
|
>>> class ProductionClass(object):
|
|
... def closer(self, something):
|
|
... something.close()
|
|
...
|
|
|
|
So to test it we need to pass in an object with a `close` method and check
|
|
that it was called correctly.
|
|
|
|
.. doctest::
|
|
|
|
>>> real = ProductionClass()
|
|
>>> mock = Mock()
|
|
>>> real.closer(mock)
|
|
>>> mock.close.assert_called_with()
|
|
|
|
We don't have to do any work to provide the 'close' method on our mock.
|
|
Accessing close creates it. So, if 'close' hasn't already been called then
|
|
accessing it in the test will create it, but :meth:`~Mock.assert_called_with`
|
|
will raise a failure exception.
|
|
|
|
|
|
Mocking Classes
|
|
---------------
|
|
|
|
A common use case is to mock out classes instantiated by your code under test.
|
|
When you patch a class, then that class is replaced with a mock. Instances
|
|
are created by *calling the class*. This means you access the "mock instance"
|
|
by looking at the return value of the mocked class.
|
|
|
|
In the example below we have a function `some_function` that instantiates `Foo`
|
|
and calls a method on it. The call to `patch` replaces the class `Foo` with a
|
|
mock. The `Foo` instance is the result of calling the mock, so it is configured
|
|
by modifying the mock :attr:`~Mock.return_value`.
|
|
|
|
.. doctest::
|
|
|
|
>>> def some_function():
|
|
... instance = module.Foo()
|
|
... return instance.method()
|
|
...
|
|
>>> with patch('module.Foo') as mock:
|
|
... instance = mock.return_value
|
|
... instance.method.return_value = 'the result'
|
|
... result = some_function()
|
|
... assert result == 'the result'
|
|
|
|
|
|
Naming your mocks
|
|
-----------------
|
|
|
|
It can be useful to give your mocks a name. The name is shown in the repr of
|
|
the mock and can be helpful when the mock appears in test failure messages. The
|
|
name is also propagated to attributes or methods of the mock:
|
|
|
|
.. doctest::
|
|
|
|
>>> mock = MagicMock(name='foo')
|
|
>>> mock
|
|
<MagicMock name='foo' id='...'>
|
|
>>> mock.method
|
|
<MagicMock name='foo.method' id='...'>
|
|
|
|
|
|
Tracking all Calls
|
|
------------------
|
|
|
|
Often you want to track more than a single call to a method. The
|
|
:attr:`~Mock.mock_calls` attribute records all calls
|
|
to child attributes of the mock - and also to their children.
|
|
|
|
.. doctest::
|
|
|
|
>>> mock = MagicMock()
|
|
>>> mock.method()
|
|
<MagicMock name='mock.method()' id='...'>
|
|
>>> mock.attribute.method(10, x=53)
|
|
<MagicMock name='mock.attribute.method()' id='...'>
|
|
>>> mock.mock_calls
|
|
[call.method(), call.attribute.method(10, x=53)]
|
|
|
|
If you make an assertion about `mock_calls` and any unexpected methods
|
|
have been called, then the assertion will fail. This is useful because as well
|
|
as asserting that the calls you expected have been made, you are also checking
|
|
that they were made in the right order and with no additional calls:
|
|
|
|
You use the :data:`call` object to construct lists for comparing with
|
|
`mock_calls`:
|
|
|
|
.. doctest::
|
|
|
|
>>> expected = [call.method(), call.attribute.method(10, x=53)]
|
|
>>> mock.mock_calls == expected
|
|
True
|
|
|
|
|
|
Setting Return Values and Attributes
|
|
------------------------------------
|
|
|
|
Setting the return values on a mock object is trivially easy:
|
|
|
|
.. doctest::
|
|
|
|
>>> mock = Mock()
|
|
>>> mock.return_value = 3
|
|
>>> mock()
|
|
3
|
|
|
|
Of course you can do the same for methods on the mock:
|
|
|
|
.. doctest::
|
|
|
|
>>> mock = Mock()
|
|
>>> mock.method.return_value = 3
|
|
>>> mock.method()
|
|
3
|
|
|
|
The return value can also be set in the constructor:
|
|
|
|
.. doctest::
|
|
|
|
>>> mock = Mock(return_value=3)
|
|
>>> mock()
|
|
3
|
|
|
|
If you need an attribute setting on your mock, just do it:
|
|
|
|
.. doctest::
|
|
|
|
>>> mock = Mock()
|
|
>>> mock.x = 3
|
|
>>> mock.x
|
|
3
|
|
|
|
Sometimes you want to mock up a more complex situation, like for example
|
|
`mock.connection.cursor().execute("SELECT 1")`. If we wanted this call to
|
|
return a list, then we have to configure the result of the nested call.
|
|
|
|
We can use :data:`call` to construct the set of calls in a "chained call" like
|
|
this for easy assertion afterwards:
|
|
|
|
|
|
.. doctest::
|
|
|
|
>>> mock = Mock()
|
|
>>> cursor = mock.connection.cursor.return_value
|
|
>>> cursor.execute.return_value = ['foo']
|
|
>>> mock.connection.cursor().execute("SELECT 1")
|
|
['foo']
|
|
>>> expected = call.connection.cursor().execute("SELECT 1").call_list()
|
|
>>> mock.mock_calls
|
|
[call.connection.cursor(), call.connection.cursor().execute('SELECT 1')]
|
|
>>> mock.mock_calls == expected
|
|
True
|
|
|
|
It is the call to `.call_list()` that turns our call object into a list of
|
|
calls representing the chained calls.
|
|
|
|
|
|
|
|
Raising exceptions with mocks
|
|
-----------------------------
|
|
|
|
A useful attribute is :attr:`~Mock.side_effect`. If you set this to an
|
|
exception class or instance then the exception will be raised when the mock
|
|
is called.
|
|
|
|
.. doctest::
|
|
|
|
>>> mock = Mock(side_effect=Exception('Boom!'))
|
|
>>> mock()
|
|
Traceback (most recent call last):
|
|
...
|
|
Exception: Boom!
|
|
|
|
|
|
Side effect functions and iterables
|
|
-----------------------------------
|
|
|
|
`side_effect` can also be set to a function or an iterable. The use case for
|
|
`side_effect` as an iterable is where your mock is going to be called several
|
|
times, and you want each call to return a different value. When you set
|
|
`side_effect` to an iterable every call to the mock returns the next value
|
|
from the iterable:
|
|
|
|
.. doctest::
|
|
|
|
>>> mock = MagicMock(side_effect=[4, 5, 6])
|
|
>>> mock()
|
|
4
|
|
>>> mock()
|
|
5
|
|
>>> mock()
|
|
6
|
|
|
|
|
|
For more advanced use cases, like dynamically varying the return values
|
|
depending on what the mock is called with, `side_effect` can be a function.
|
|
The function will be called with the same arguments as the mock. Whatever the
|
|
function returns is what the call returns:
|
|
|
|
.. doctest::
|
|
|
|
>>> vals = {(1, 2): 1, (2, 3): 2}
|
|
>>> def side_effect(*args):
|
|
... return vals[args]
|
|
...
|
|
>>> mock = MagicMock(side_effect=side_effect)
|
|
>>> mock(1, 2)
|
|
1
|
|
>>> mock(2, 3)
|
|
2
|
|
|
|
|
|
Creating a Mock from an Existing Object
|
|
---------------------------------------
|
|
|
|
One problem with over use of mocking is that it couples your tests to the
|
|
implementation of your mocks rather than your real code. Suppose you have a
|
|
class that implements `some_method`. In a test for another class, you
|
|
provide a mock of this object that *also* provides `some_method`. If later
|
|
you refactor the first class, so that it no longer has `some_method` - then
|
|
your tests will continue to pass even though your code is now broken!
|
|
|
|
`Mock` allows you to provide an object as a specification for the mock,
|
|
using the `spec` keyword argument. Accessing methods / attributes on the
|
|
mock that don't exist on your specification object will immediately raise an
|
|
attribute error. If you change the implementation of your specification, then
|
|
tests that use that class will start failing immediately without you having to
|
|
instantiate the class in those tests.
|
|
|
|
.. doctest::
|
|
|
|
>>> mock = Mock(spec=SomeClass)
|
|
>>> mock.old_method()
|
|
Traceback (most recent call last):
|
|
...
|
|
AttributeError: object has no attribute 'old_method'
|
|
|
|
If you want a stronger form of specification that prevents the setting
|
|
of arbitrary attributes as well as the getting of them then you can use
|
|
`spec_set` instead of `spec`.
|
|
|
|
|
|
|
|
Patch Decorators
|
|
================
|
|
|
|
.. note::
|
|
|
|
With `patch` it matters that you patch objects in the namespace where they
|
|
are looked up. This is normally straightforward, but for a quick guide
|
|
read :ref:`where to patch <where-to-patch>`.
|
|
|
|
|
|
A common need in tests is to patch a class attribute or a module attribute,
|
|
for example patching a builtin or patching a class in a module to test that it
|
|
is instantiated. Modules and classes are effectively global, so patching on
|
|
them has to be undone after the test or the patch will persist into other
|
|
tests and cause hard to diagnose problems.
|
|
|
|
mock provides three convenient decorators for this: `patch`, `patch.object` and
|
|
`patch.dict`. `patch` takes a single string, of the form
|
|
`package.module.Class.attribute` to specify the attribute you are patching. It
|
|
also optionally takes a value that you want the attribute (or class or
|
|
whatever) to be replaced with. 'patch.object' takes an object and the name of
|
|
the attribute you would like patched, plus optionally the value to patch it
|
|
with.
|
|
|
|
`patch.object`:
|
|
|
|
.. doctest::
|
|
|
|
>>> original = SomeClass.attribute
|
|
>>> @patch.object(SomeClass, 'attribute', sentinel.attribute)
|
|
... def test():
|
|
... assert SomeClass.attribute == sentinel.attribute
|
|
...
|
|
>>> test()
|
|
>>> assert SomeClass.attribute == original
|
|
|
|
>>> @patch('package.module.attribute', sentinel.attribute)
|
|
... def test():
|
|
... from package.module import attribute
|
|
... assert attribute is sentinel.attribute
|
|
...
|
|
>>> test()
|
|
|
|
If you are patching a module (including `__builtin__`) then use `patch`
|
|
instead of `patch.object`:
|
|
|
|
.. doctest::
|
|
|
|
>>> mock = MagicMock(return_value = sentinel.file_handle)
|
|
>>> with patch('__builtin__.open', mock):
|
|
... handle = open('filename', 'r')
|
|
...
|
|
>>> mock.assert_called_with('filename', 'r')
|
|
>>> assert handle == sentinel.file_handle, "incorrect file handle returned"
|
|
|
|
The module name can be 'dotted', in the form `package.module` if needed:
|
|
|
|
.. doctest::
|
|
|
|
>>> @patch('package.module.ClassName.attribute', sentinel.attribute)
|
|
... def test():
|
|
... from package.module import ClassName
|
|
... assert ClassName.attribute == sentinel.attribute
|
|
...
|
|
>>> test()
|
|
|
|
A nice pattern is to actually decorate test methods themselves:
|
|
|
|
.. doctest::
|
|
|
|
>>> class MyTest(unittest2.TestCase):
|
|
... @patch.object(SomeClass, 'attribute', sentinel.attribute)
|
|
... def test_something(self):
|
|
... self.assertEqual(SomeClass.attribute, sentinel.attribute)
|
|
...
|
|
>>> original = SomeClass.attribute
|
|
>>> MyTest('test_something').test_something()
|
|
>>> assert SomeClass.attribute == original
|
|
|
|
If you want to patch with a Mock, you can use `patch` with only one argument
|
|
(or `patch.object` with two arguments). The mock will be created for you and
|
|
passed into the test function / method:
|
|
|
|
.. doctest::
|
|
|
|
>>> class MyTest(unittest2.TestCase):
|
|
... @patch.object(SomeClass, 'static_method')
|
|
... def test_something(self, mock_method):
|
|
... SomeClass.static_method()
|
|
... mock_method.assert_called_with()
|
|
...
|
|
>>> MyTest('test_something').test_something()
|
|
|
|
You can stack up multiple patch decorators using this pattern:
|
|
|
|
.. doctest::
|
|
|
|
>>> class MyTest(unittest2.TestCase):
|
|
... @patch('package.module.ClassName1')
|
|
... @patch('package.module.ClassName2')
|
|
... def test_something(self, MockClass2, MockClass1):
|
|
... self.assertTrue(package.module.ClassName1 is MockClass1)
|
|
... self.assertTrue(package.module.ClassName2 is MockClass2)
|
|
...
|
|
>>> MyTest('test_something').test_something()
|
|
|
|
When you nest patch decorators the mocks are passed in to the decorated
|
|
function in the same order they applied (the normal *python* order that
|
|
decorators are applied). This means from the bottom up, so in the example
|
|
above the mock for `test_module.ClassName2` is passed in first.
|
|
|
|
There is also :func:`patch.dict` for setting values in a dictionary just
|
|
during a scope and restoring the dictionary to its original state when the test
|
|
ends:
|
|
|
|
.. doctest::
|
|
|
|
>>> foo = {'key': 'value'}
|
|
>>> original = foo.copy()
|
|
>>> with patch.dict(foo, {'newkey': 'newvalue'}, clear=True):
|
|
... assert foo == {'newkey': 'newvalue'}
|
|
...
|
|
>>> assert foo == original
|
|
|
|
`patch`, `patch.object` and `patch.dict` can all be used as context managers.
|
|
|
|
Where you use `patch` to create a mock for you, you can get a reference to the
|
|
mock using the "as" form of the with statement:
|
|
|
|
.. doctest::
|
|
|
|
>>> class ProductionClass(object):
|
|
... def method(self):
|
|
... pass
|
|
...
|
|
>>> with patch.object(ProductionClass, 'method') as mock_method:
|
|
... mock_method.return_value = None
|
|
... real = ProductionClass()
|
|
... real.method(1, 2, 3)
|
|
...
|
|
>>> mock_method.assert_called_with(1, 2, 3)
|
|
|
|
|
|
As an alternative `patch`, `patch.object` and `patch.dict` can be used as
|
|
class decorators. When used in this way it is the same as applying the
|
|
decorator indvidually to every method whose name starts with "test".
|
|
|
|
For some more advanced examples, see the :ref:`further-examples` page.
|