fune/third_party/python/mock-1.0.0/tests/testpatch.py
Andrew Halberstadt 5ccbc0cfd7 Bug 1346025 - Move vendored python modules from /python to /third_party/python, r=ted
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
2017-05-25 11:48:03 -04:00

1790 lines
52 KiB
Python

# Copyright (C) 2007-2012 Michael Foord & the mock team
# E-mail: fuzzyman AT voidspace DOT org DOT uk
# http://www.voidspace.org.uk/python/mock/
import os
import sys
from tests import support
from tests.support import unittest2, inPy3k, SomeClass, is_instance, callable
from mock import (
NonCallableMock, CallableMixin, patch, sentinel,
MagicMock, Mock, NonCallableMagicMock, patch, _patch,
DEFAULT, call, _get_target
)
builtin_string = '__builtin__'
if inPy3k:
builtin_string = 'builtins'
unicode = str
PTModule = sys.modules[__name__]
MODNAME = '%s.PTModule' % __name__
def _get_proxy(obj, get_only=True):
class Proxy(object):
def __getattr__(self, name):
return getattr(obj, name)
if not get_only:
def __setattr__(self, name, value):
setattr(obj, name, value)
def __delattr__(self, name):
delattr(obj, name)
Proxy.__setattr__ = __setattr__
Proxy.__delattr__ = __delattr__
return Proxy()
# for use in the test
something = sentinel.Something
something_else = sentinel.SomethingElse
class Foo(object):
def __init__(self, a):
pass
def f(self, a):
pass
def g(self):
pass
foo = 'bar'
class Bar(object):
def a(self):
pass
foo_name = '%s.Foo' % __name__
def function(a, b=Foo):
pass
class Container(object):
def __init__(self):
self.values = {}
def __getitem__(self, name):
return self.values[name]
def __setitem__(self, name, value):
self.values[name] = value
def __delitem__(self, name):
del self.values[name]
def __iter__(self):
return iter(self.values)
class PatchTest(unittest2.TestCase):
def assertNotCallable(self, obj, magic=True):
MockClass = NonCallableMagicMock
if not magic:
MockClass = NonCallableMock
self.assertRaises(TypeError, obj)
self.assertTrue(is_instance(obj, MockClass))
self.assertFalse(is_instance(obj, CallableMixin))
def test_single_patchobject(self):
class Something(object):
attribute = sentinel.Original
@patch.object(Something, 'attribute', sentinel.Patched)
def test():
self.assertEqual(Something.attribute, sentinel.Patched, "unpatched")
test()
self.assertEqual(Something.attribute, sentinel.Original,
"patch not restored")
def test_patchobject_with_none(self):
class Something(object):
attribute = sentinel.Original
@patch.object(Something, 'attribute', None)
def test():
self.assertIsNone(Something.attribute, "unpatched")
test()
self.assertEqual(Something.attribute, sentinel.Original,
"patch not restored")
def test_multiple_patchobject(self):
class Something(object):
attribute = sentinel.Original
next_attribute = sentinel.Original2
@patch.object(Something, 'attribute', sentinel.Patched)
@patch.object(Something, 'next_attribute', sentinel.Patched2)
def test():
self.assertEqual(Something.attribute, sentinel.Patched,
"unpatched")
self.assertEqual(Something.next_attribute, sentinel.Patched2,
"unpatched")
test()
self.assertEqual(Something.attribute, sentinel.Original,
"patch not restored")
self.assertEqual(Something.next_attribute, sentinel.Original2,
"patch not restored")
def test_object_lookup_is_quite_lazy(self):
global something
original = something
@patch('%s.something' % __name__, sentinel.Something2)
def test():
pass
try:
something = sentinel.replacement_value
test()
self.assertEqual(something, sentinel.replacement_value)
finally:
something = original
def test_patch(self):
@patch('%s.something' % __name__, sentinel.Something2)
def test():
self.assertEqual(PTModule.something, sentinel.Something2,
"unpatched")
test()
self.assertEqual(PTModule.something, sentinel.Something,
"patch not restored")
@patch('%s.something' % __name__, sentinel.Something2)
@patch('%s.something_else' % __name__, sentinel.SomethingElse)
def test():
self.assertEqual(PTModule.something, sentinel.Something2,
"unpatched")
self.assertEqual(PTModule.something_else, sentinel.SomethingElse,
"unpatched")
self.assertEqual(PTModule.something, sentinel.Something,
"patch not restored")
self.assertEqual(PTModule.something_else, sentinel.SomethingElse,
"patch not restored")
# Test the patching and restoring works a second time
test()
self.assertEqual(PTModule.something, sentinel.Something,
"patch not restored")
self.assertEqual(PTModule.something_else, sentinel.SomethingElse,
"patch not restored")
mock = Mock()
mock.return_value = sentinel.Handle
@patch('%s.open' % builtin_string, mock)
def test():
self.assertEqual(open('filename', 'r'), sentinel.Handle,
"open not patched")
test()
test()
self.assertNotEqual(open, mock, "patch not restored")
def test_patch_class_attribute(self):
@patch('%s.SomeClass.class_attribute' % __name__,
sentinel.ClassAttribute)
def test():
self.assertEqual(PTModule.SomeClass.class_attribute,
sentinel.ClassAttribute, "unpatched")
test()
self.assertIsNone(PTModule.SomeClass.class_attribute,
"patch not restored")
def test_patchobject_with_default_mock(self):
class Test(object):
something = sentinel.Original
something2 = sentinel.Original2
@patch.object(Test, 'something')
def test(mock):
self.assertEqual(mock, Test.something,
"Mock not passed into test function")
self.assertIsInstance(mock, MagicMock,
"patch with two arguments did not create a mock")
test()
@patch.object(Test, 'something')
@patch.object(Test, 'something2')
def test(this1, this2, mock1, mock2):
self.assertEqual(this1, sentinel.this1,
"Patched function didn't receive initial argument")
self.assertEqual(this2, sentinel.this2,
"Patched function didn't receive second argument")
self.assertEqual(mock1, Test.something2,
"Mock not passed into test function")
self.assertEqual(mock2, Test.something,
"Second Mock not passed into test function")
self.assertIsInstance(mock2, MagicMock,
"patch with two arguments did not create a mock")
self.assertIsInstance(mock2, MagicMock,
"patch with two arguments did not create a mock")
# A hack to test that new mocks are passed the second time
self.assertNotEqual(outerMock1, mock1, "unexpected value for mock1")
self.assertNotEqual(outerMock2, mock2, "unexpected value for mock1")
return mock1, mock2
outerMock1 = outerMock2 = None
outerMock1, outerMock2 = test(sentinel.this1, sentinel.this2)
# Test that executing a second time creates new mocks
test(sentinel.this1, sentinel.this2)
def test_patch_with_spec(self):
@patch('%s.SomeClass' % __name__, spec=SomeClass)
def test(MockSomeClass):
self.assertEqual(SomeClass, MockSomeClass)
self.assertTrue(is_instance(SomeClass.wibble, MagicMock))
self.assertRaises(AttributeError, lambda: SomeClass.not_wibble)
test()
def test_patchobject_with_spec(self):
@patch.object(SomeClass, 'class_attribute', spec=SomeClass)
def test(MockAttribute):
self.assertEqual(SomeClass.class_attribute, MockAttribute)
self.assertTrue(is_instance(SomeClass.class_attribute.wibble,
MagicMock))
self.assertRaises(AttributeError,
lambda: SomeClass.class_attribute.not_wibble)
test()
def test_patch_with_spec_as_list(self):
@patch('%s.SomeClass' % __name__, spec=['wibble'])
def test(MockSomeClass):
self.assertEqual(SomeClass, MockSomeClass)
self.assertTrue(is_instance(SomeClass.wibble, MagicMock))
self.assertRaises(AttributeError, lambda: SomeClass.not_wibble)
test()
def test_patchobject_with_spec_as_list(self):
@patch.object(SomeClass, 'class_attribute', spec=['wibble'])
def test(MockAttribute):
self.assertEqual(SomeClass.class_attribute, MockAttribute)
self.assertTrue(is_instance(SomeClass.class_attribute.wibble,
MagicMock))
self.assertRaises(AttributeError,
lambda: SomeClass.class_attribute.not_wibble)
test()
def test_nested_patch_with_spec_as_list(self):
# regression test for nested decorators
@patch('%s.open' % builtin_string)
@patch('%s.SomeClass' % __name__, spec=['wibble'])
def test(MockSomeClass, MockOpen):
self.assertEqual(SomeClass, MockSomeClass)
self.assertTrue(is_instance(SomeClass.wibble, MagicMock))
self.assertRaises(AttributeError, lambda: SomeClass.not_wibble)
test()
def test_patch_with_spec_as_boolean(self):
@patch('%s.SomeClass' % __name__, spec=True)
def test(MockSomeClass):
self.assertEqual(SomeClass, MockSomeClass)
# Should not raise attribute error
MockSomeClass.wibble
self.assertRaises(AttributeError, lambda: MockSomeClass.not_wibble)
test()
def test_patch_object_with_spec_as_boolean(self):
@patch.object(PTModule, 'SomeClass', spec=True)
def test(MockSomeClass):
self.assertEqual(SomeClass, MockSomeClass)
# Should not raise attribute error
MockSomeClass.wibble
self.assertRaises(AttributeError, lambda: MockSomeClass.not_wibble)
test()
def test_patch_class_acts_with_spec_is_inherited(self):
@patch('%s.SomeClass' % __name__, spec=True)
def test(MockSomeClass):
self.assertTrue(is_instance(MockSomeClass, MagicMock))
instance = MockSomeClass()
self.assertNotCallable(instance)
# Should not raise attribute error
instance.wibble
self.assertRaises(AttributeError, lambda: instance.not_wibble)
test()
def test_patch_with_create_mocks_non_existent_attributes(self):
@patch('%s.frooble' % builtin_string, sentinel.Frooble, create=True)
def test():
self.assertEqual(frooble, sentinel.Frooble)
test()
self.assertRaises(NameError, lambda: frooble)
def test_patchobject_with_create_mocks_non_existent_attributes(self):
@patch.object(SomeClass, 'frooble', sentinel.Frooble, create=True)
def test():
self.assertEqual(SomeClass.frooble, sentinel.Frooble)
test()
self.assertFalse(hasattr(SomeClass, 'frooble'))
def test_patch_wont_create_by_default(self):
try:
@patch('%s.frooble' % builtin_string, sentinel.Frooble)
def test():
self.assertEqual(frooble, sentinel.Frooble)
test()
except AttributeError:
pass
else:
self.fail('Patching non existent attributes should fail')
self.assertRaises(NameError, lambda: frooble)
def test_patchobject_wont_create_by_default(self):
try:
@patch.object(SomeClass, 'frooble', sentinel.Frooble)
def test():
self.fail('Patching non existent attributes should fail')
test()
except AttributeError:
pass
else:
self.fail('Patching non existent attributes should fail')
self.assertFalse(hasattr(SomeClass, 'frooble'))
def test_patch_with_static_methods(self):
class Foo(object):
@staticmethod
def woot():
return sentinel.Static
@patch.object(Foo, 'woot', staticmethod(lambda: sentinel.Patched))
def anonymous():
self.assertEqual(Foo.woot(), sentinel.Patched)
anonymous()
self.assertEqual(Foo.woot(), sentinel.Static)
def test_patch_local(self):
foo = sentinel.Foo
@patch.object(sentinel, 'Foo', 'Foo')
def anonymous():
self.assertEqual(sentinel.Foo, 'Foo')
anonymous()
self.assertEqual(sentinel.Foo, foo)
def test_patch_slots(self):
class Foo(object):
__slots__ = ('Foo',)
foo = Foo()
foo.Foo = sentinel.Foo
@patch.object(foo, 'Foo', 'Foo')
def anonymous():
self.assertEqual(foo.Foo, 'Foo')
anonymous()
self.assertEqual(foo.Foo, sentinel.Foo)
def test_patchobject_class_decorator(self):
class Something(object):
attribute = sentinel.Original
class Foo(object):
def test_method(other_self):
self.assertEqual(Something.attribute, sentinel.Patched,
"unpatched")
def not_test_method(other_self):
self.assertEqual(Something.attribute, sentinel.Original,
"non-test method patched")
Foo = patch.object(Something, 'attribute', sentinel.Patched)(Foo)
f = Foo()
f.test_method()
f.not_test_method()
self.assertEqual(Something.attribute, sentinel.Original,
"patch not restored")
def test_patch_class_decorator(self):
class Something(object):
attribute = sentinel.Original
class Foo(object):
def test_method(other_self, mock_something):
self.assertEqual(PTModule.something, mock_something,
"unpatched")
def not_test_method(other_self):
self.assertEqual(PTModule.something, sentinel.Something,
"non-test method patched")
Foo = patch('%s.something' % __name__)(Foo)
f = Foo()
f.test_method()
f.not_test_method()
self.assertEqual(Something.attribute, sentinel.Original,
"patch not restored")
self.assertEqual(PTModule.something, sentinel.Something,
"patch not restored")
def test_patchobject_twice(self):
class Something(object):
attribute = sentinel.Original
next_attribute = sentinel.Original2
@patch.object(Something, 'attribute', sentinel.Patched)
@patch.object(Something, 'attribute', sentinel.Patched)
def test():
self.assertEqual(Something.attribute, sentinel.Patched, "unpatched")
test()
self.assertEqual(Something.attribute, sentinel.Original,
"patch not restored")
def test_patch_dict(self):
foo = {'initial': object(), 'other': 'something'}
original = foo.copy()
@patch.dict(foo)
def test():
foo['a'] = 3
del foo['initial']
foo['other'] = 'something else'
test()
self.assertEqual(foo, original)
@patch.dict(foo, {'a': 'b'})
def test():
self.assertEqual(len(foo), 3)
self.assertEqual(foo['a'], 'b')
test()
self.assertEqual(foo, original)
@patch.dict(foo, [('a', 'b')])
def test():
self.assertEqual(len(foo), 3)
self.assertEqual(foo['a'], 'b')
test()
self.assertEqual(foo, original)
def test_patch_dict_with_container_object(self):
foo = Container()
foo['initial'] = object()
foo['other'] = 'something'
original = foo.values.copy()
@patch.dict(foo)
def test():
foo['a'] = 3
del foo['initial']
foo['other'] = 'something else'
test()
self.assertEqual(foo.values, original)
@patch.dict(foo, {'a': 'b'})
def test():
self.assertEqual(len(foo.values), 3)
self.assertEqual(foo['a'], 'b')
test()
self.assertEqual(foo.values, original)
def test_patch_dict_with_clear(self):
foo = {'initial': object(), 'other': 'something'}
original = foo.copy()
@patch.dict(foo, clear=True)
def test():
self.assertEqual(foo, {})
foo['a'] = 3
foo['other'] = 'something else'
test()
self.assertEqual(foo, original)
@patch.dict(foo, {'a': 'b'}, clear=True)
def test():
self.assertEqual(foo, {'a': 'b'})
test()
self.assertEqual(foo, original)
@patch.dict(foo, [('a', 'b')], clear=True)
def test():
self.assertEqual(foo, {'a': 'b'})
test()
self.assertEqual(foo, original)
def test_patch_dict_with_container_object_and_clear(self):
foo = Container()
foo['initial'] = object()
foo['other'] = 'something'
original = foo.values.copy()
@patch.dict(foo, clear=True)
def test():
self.assertEqual(foo.values, {})
foo['a'] = 3
foo['other'] = 'something else'
test()
self.assertEqual(foo.values, original)
@patch.dict(foo, {'a': 'b'}, clear=True)
def test():
self.assertEqual(foo.values, {'a': 'b'})
test()
self.assertEqual(foo.values, original)
def test_name_preserved(self):
foo = {}
@patch('%s.SomeClass' % __name__, object())
@patch('%s.SomeClass' % __name__, object(), autospec=True)
@patch.object(SomeClass, object())
@patch.dict(foo)
def some_name():
pass
self.assertEqual(some_name.__name__, 'some_name')
def test_patch_with_exception(self):
foo = {}
@patch.dict(foo, {'a': 'b'})
def test():
raise NameError('Konrad')
try:
test()
except NameError:
pass
else:
self.fail('NameError not raised by test')
self.assertEqual(foo, {})
def test_patch_dict_with_string(self):
@patch.dict('os.environ', {'konrad_delong': 'some value'})
def test():
self.assertIn('konrad_delong', os.environ)
test()
@unittest2.expectedFailure
def test_patch_descriptor(self):
# would be some effort to fix this - we could special case the
# builtin descriptors: classmethod, property, staticmethod
class Nothing(object):
foo = None
class Something(object):
foo = {}
@patch.object(Nothing, 'foo', 2)
@classmethod
def klass(cls):
self.assertIs(cls, Something)
@patch.object(Nothing, 'foo', 2)
@staticmethod
def static(arg):
return arg
@patch.dict(foo)
@classmethod
def klass_dict(cls):
self.assertIs(cls, Something)
@patch.dict(foo)
@staticmethod
def static_dict(arg):
return arg
# these will raise exceptions if patching descriptors is broken
self.assertEqual(Something.static('f00'), 'f00')
Something.klass()
self.assertEqual(Something.static_dict('f00'), 'f00')
Something.klass_dict()
something = Something()
self.assertEqual(something.static('f00'), 'f00')
something.klass()
self.assertEqual(something.static_dict('f00'), 'f00')
something.klass_dict()
def test_patch_spec_set(self):
@patch('%s.SomeClass' % __name__, spec_set=SomeClass)
def test(MockClass):
MockClass.z = 'foo'
self.assertRaises(AttributeError, test)
@patch.object(support, 'SomeClass', spec_set=SomeClass)
def test(MockClass):
MockClass.z = 'foo'
self.assertRaises(AttributeError, test)
@patch('%s.SomeClass' % __name__, spec_set=True)
def test(MockClass):
MockClass.z = 'foo'
self.assertRaises(AttributeError, test)
@patch.object(support, 'SomeClass', spec_set=True)
def test(MockClass):
MockClass.z = 'foo'
self.assertRaises(AttributeError, test)
def test_spec_set_inherit(self):
@patch('%s.SomeClass' % __name__, spec_set=True)
def test(MockClass):
instance = MockClass()
instance.z = 'foo'
self.assertRaises(AttributeError, test)
def test_patch_start_stop(self):
original = something
patcher = patch('%s.something' % __name__)
self.assertIs(something, original)
mock = patcher.start()
try:
self.assertIsNot(mock, original)
self.assertIs(something, mock)
finally:
patcher.stop()
self.assertIs(something, original)
def test_stop_without_start(self):
patcher = patch(foo_name, 'bar', 3)
# calling stop without start used to produce a very obscure error
self.assertRaises(RuntimeError, patcher.stop)
def test_patchobject_start_stop(self):
original = something
patcher = patch.object(PTModule, 'something', 'foo')
self.assertIs(something, original)
replaced = patcher.start()
try:
self.assertEqual(replaced, 'foo')
self.assertIs(something, replaced)
finally:
patcher.stop()
self.assertIs(something, original)
def test_patch_dict_start_stop(self):
d = {'foo': 'bar'}
original = d.copy()
patcher = patch.dict(d, [('spam', 'eggs')], clear=True)
self.assertEqual(d, original)
patcher.start()
try:
self.assertEqual(d, {'spam': 'eggs'})
finally:
patcher.stop()
self.assertEqual(d, original)
def test_patch_dict_class_decorator(self):
this = self
d = {'spam': 'eggs'}
original = d.copy()
class Test(object):
def test_first(self):
this.assertEqual(d, {'foo': 'bar'})
def test_second(self):
this.assertEqual(d, {'foo': 'bar'})
Test = patch.dict(d, {'foo': 'bar'}, clear=True)(Test)
self.assertEqual(d, original)
test = Test()
test.test_first()
self.assertEqual(d, original)
test.test_second()
self.assertEqual(d, original)
test = Test()
test.test_first()
self.assertEqual(d, original)
test.test_second()
self.assertEqual(d, original)
def test_get_only_proxy(self):
class Something(object):
foo = 'foo'
class SomethingElse:
foo = 'foo'
for thing in Something, SomethingElse, Something(), SomethingElse:
proxy = _get_proxy(thing)
@patch.object(proxy, 'foo', 'bar')
def test():
self.assertEqual(proxy.foo, 'bar')
test()
self.assertEqual(proxy.foo, 'foo')
self.assertEqual(thing.foo, 'foo')
self.assertNotIn('foo', proxy.__dict__)
def test_get_set_delete_proxy(self):
class Something(object):
foo = 'foo'
class SomethingElse:
foo = 'foo'
for thing in Something, SomethingElse, Something(), SomethingElse:
proxy = _get_proxy(Something, get_only=False)
@patch.object(proxy, 'foo', 'bar')
def test():
self.assertEqual(proxy.foo, 'bar')
test()
self.assertEqual(proxy.foo, 'foo')
self.assertEqual(thing.foo, 'foo')
self.assertNotIn('foo', proxy.__dict__)
def test_patch_keyword_args(self):
kwargs = {'side_effect': KeyError, 'foo.bar.return_value': 33,
'foo': MagicMock()}
patcher = patch(foo_name, **kwargs)
mock = patcher.start()
patcher.stop()
self.assertRaises(KeyError, mock)
self.assertEqual(mock.foo.bar(), 33)
self.assertIsInstance(mock.foo, MagicMock)
def test_patch_object_keyword_args(self):
kwargs = {'side_effect': KeyError, 'foo.bar.return_value': 33,
'foo': MagicMock()}
patcher = patch.object(Foo, 'f', **kwargs)
mock = patcher.start()
patcher.stop()
self.assertRaises(KeyError, mock)
self.assertEqual(mock.foo.bar(), 33)
self.assertIsInstance(mock.foo, MagicMock)
def test_patch_dict_keyword_args(self):
original = {'foo': 'bar'}
copy = original.copy()
patcher = patch.dict(original, foo=3, bar=4, baz=5)
patcher.start()
try:
self.assertEqual(original, dict(foo=3, bar=4, baz=5))
finally:
patcher.stop()
self.assertEqual(original, copy)
def test_autospec(self):
class Boo(object):
def __init__(self, a):
pass
def f(self, a):
pass
def g(self):
pass
foo = 'bar'
class Bar(object):
def a(self):
pass
def _test(mock):
mock(1)
mock.assert_called_with(1)
self.assertRaises(TypeError, mock)
def _test2(mock):
mock.f(1)
mock.f.assert_called_with(1)
self.assertRaises(TypeError, mock.f)
mock.g()
mock.g.assert_called_with()
self.assertRaises(TypeError, mock.g, 1)
self.assertRaises(AttributeError, getattr, mock, 'h')
mock.foo.lower()
mock.foo.lower.assert_called_with()
self.assertRaises(AttributeError, getattr, mock.foo, 'bar')
mock.Bar()
mock.Bar.assert_called_with()
mock.Bar.a()
mock.Bar.a.assert_called_with()
self.assertRaises(TypeError, mock.Bar.a, 1)
mock.Bar().a()
mock.Bar().a.assert_called_with()
self.assertRaises(TypeError, mock.Bar().a, 1)
self.assertRaises(AttributeError, getattr, mock.Bar, 'b')
self.assertRaises(AttributeError, getattr, mock.Bar(), 'b')
def function(mock):
_test(mock)
_test2(mock)
_test2(mock(1))
self.assertIs(mock, Foo)
return mock
test = patch(foo_name, autospec=True)(function)
mock = test()
self.assertIsNot(Foo, mock)
# test patching a second time works
test()
module = sys.modules[__name__]
test = patch.object(module, 'Foo', autospec=True)(function)
mock = test()
self.assertIsNot(Foo, mock)
# test patching a second time works
test()
def test_autospec_function(self):
@patch('%s.function' % __name__, autospec=True)
def test(mock):
function(1)
function.assert_called_with(1)
function(2, 3)
function.assert_called_with(2, 3)
self.assertRaises(TypeError, function)
self.assertRaises(AttributeError, getattr, function, 'foo')
test()
def test_autospec_keywords(self):
@patch('%s.function' % __name__, autospec=True,
return_value=3)
def test(mock_function):
#self.assertEqual(function.abc, 'foo')
return function(1, 2)
result = test()
self.assertEqual(result, 3)
def test_autospec_with_new(self):
patcher = patch('%s.function' % __name__, new=3, autospec=True)
self.assertRaises(TypeError, patcher.start)
module = sys.modules[__name__]
patcher = patch.object(module, 'function', new=3, autospec=True)
self.assertRaises(TypeError, patcher.start)
def test_autospec_with_object(self):
class Bar(Foo):
extra = []
patcher = patch(foo_name, autospec=Bar)
mock = patcher.start()
try:
self.assertIsInstance(mock, Bar)
self.assertIsInstance(mock.extra, list)
finally:
patcher.stop()
def test_autospec_inherits(self):
FooClass = Foo
patcher = patch(foo_name, autospec=True)
mock = patcher.start()
try:
self.assertIsInstance(mock, FooClass)
self.assertIsInstance(mock(3), FooClass)
finally:
patcher.stop()
def test_autospec_name(self):
patcher = patch(foo_name, autospec=True)
mock = patcher.start()
try:
self.assertIn(" name='Foo'", repr(mock))
self.assertIn(" name='Foo.f'", repr(mock.f))
self.assertIn(" name='Foo()'", repr(mock(None)))
self.assertIn(" name='Foo().f'", repr(mock(None).f))
finally:
patcher.stop()
def test_tracebacks(self):
@patch.object(Foo, 'f', object())
def test():
raise AssertionError
try:
test()
except:
err = sys.exc_info()
result = unittest2.TextTestResult(None, None, 0)
traceback = result._exc_info_to_string(err, self)
self.assertIn('raise AssertionError', traceback)
def test_new_callable_patch(self):
patcher = patch(foo_name, new_callable=NonCallableMagicMock)
m1 = patcher.start()
patcher.stop()
m2 = patcher.start()
patcher.stop()
self.assertIsNot(m1, m2)
for mock in m1, m2:
self.assertNotCallable(m1)
def test_new_callable_patch_object(self):
patcher = patch.object(Foo, 'f', new_callable=NonCallableMagicMock)
m1 = patcher.start()
patcher.stop()
m2 = patcher.start()
patcher.stop()
self.assertIsNot(m1, m2)
for mock in m1, m2:
self.assertNotCallable(m1)
def test_new_callable_keyword_arguments(self):
class Bar(object):
kwargs = None
def __init__(self, **kwargs):
Bar.kwargs = kwargs
patcher = patch(foo_name, new_callable=Bar, arg1=1, arg2=2)
m = patcher.start()
try:
self.assertIs(type(m), Bar)
self.assertEqual(Bar.kwargs, dict(arg1=1, arg2=2))
finally:
patcher.stop()
def test_new_callable_spec(self):
class Bar(object):
kwargs = None
def __init__(self, **kwargs):
Bar.kwargs = kwargs
patcher = patch(foo_name, new_callable=Bar, spec=Bar)
patcher.start()
try:
self.assertEqual(Bar.kwargs, dict(spec=Bar))
finally:
patcher.stop()
patcher = patch(foo_name, new_callable=Bar, spec_set=Bar)
patcher.start()
try:
self.assertEqual(Bar.kwargs, dict(spec_set=Bar))
finally:
patcher.stop()
def test_new_callable_create(self):
non_existent_attr = '%s.weeeee' % foo_name
p = patch(non_existent_attr, new_callable=NonCallableMock)
self.assertRaises(AttributeError, p.start)
p = patch(non_existent_attr, new_callable=NonCallableMock,
create=True)
m = p.start()
try:
self.assertNotCallable(m, magic=False)
finally:
p.stop()
def test_new_callable_incompatible_with_new(self):
self.assertRaises(
ValueError, patch, foo_name, new=object(), new_callable=MagicMock
)
self.assertRaises(
ValueError, patch.object, Foo, 'f', new=object(),
new_callable=MagicMock
)
def test_new_callable_incompatible_with_autospec(self):
self.assertRaises(
ValueError, patch, foo_name, new_callable=MagicMock,
autospec=True
)
self.assertRaises(
ValueError, patch.object, Foo, 'f', new_callable=MagicMock,
autospec=True
)
def test_new_callable_inherit_for_mocks(self):
class MockSub(Mock):
pass
MockClasses = (
NonCallableMock, NonCallableMagicMock, MagicMock, Mock, MockSub
)
for Klass in MockClasses:
for arg in 'spec', 'spec_set':
kwargs = {arg: True}
p = patch(foo_name, new_callable=Klass, **kwargs)
m = p.start()
try:
instance = m.return_value
self.assertRaises(AttributeError, getattr, instance, 'x')
finally:
p.stop()
def test_new_callable_inherit_non_mock(self):
class NotAMock(object):
def __init__(self, spec):
self.spec = spec
p = patch(foo_name, new_callable=NotAMock, spec=True)
m = p.start()
try:
self.assertTrue(is_instance(m, NotAMock))
self.assertRaises(AttributeError, getattr, m, 'return_value')
finally:
p.stop()
self.assertEqual(m.spec, Foo)
def test_new_callable_class_decorating(self):
test = self
original = Foo
class SomeTest(object):
def _test(self, mock_foo):
test.assertIsNot(Foo, original)
test.assertIs(Foo, mock_foo)
test.assertIsInstance(Foo, SomeClass)
def test_two(self, mock_foo):
self._test(mock_foo)
def test_one(self, mock_foo):
self._test(mock_foo)
SomeTest = patch(foo_name, new_callable=SomeClass)(SomeTest)
SomeTest().test_one()
SomeTest().test_two()
self.assertIs(Foo, original)
def test_patch_multiple(self):
original_foo = Foo
original_f = Foo.f
original_g = Foo.g
patcher1 = patch.multiple(foo_name, f=1, g=2)
patcher2 = patch.multiple(Foo, f=1, g=2)
for patcher in patcher1, patcher2:
patcher.start()
try:
self.assertIs(Foo, original_foo)
self.assertEqual(Foo.f, 1)
self.assertEqual(Foo.g, 2)
finally:
patcher.stop()
self.assertIs(Foo, original_foo)
self.assertEqual(Foo.f, original_f)
self.assertEqual(Foo.g, original_g)
@patch.multiple(foo_name, f=3, g=4)
def test():
self.assertIs(Foo, original_foo)
self.assertEqual(Foo.f, 3)
self.assertEqual(Foo.g, 4)
test()
def test_patch_multiple_no_kwargs(self):
self.assertRaises(ValueError, patch.multiple, foo_name)
self.assertRaises(ValueError, patch.multiple, Foo)
def test_patch_multiple_create_mocks(self):
original_foo = Foo
original_f = Foo.f
original_g = Foo.g
@patch.multiple(foo_name, f=DEFAULT, g=3, foo=DEFAULT)
def test(f, foo):
self.assertIs(Foo, original_foo)
self.assertIs(Foo.f, f)
self.assertEqual(Foo.g, 3)
self.assertIs(Foo.foo, foo)
self.assertTrue(is_instance(f, MagicMock))
self.assertTrue(is_instance(foo, MagicMock))
test()
self.assertEqual(Foo.f, original_f)
self.assertEqual(Foo.g, original_g)
def test_patch_multiple_create_mocks_different_order(self):
# bug revealed by Jython!
original_f = Foo.f
original_g = Foo.g
patcher = patch.object(Foo, 'f', 3)
patcher.attribute_name = 'f'
other = patch.object(Foo, 'g', DEFAULT)
other.attribute_name = 'g'
patcher.additional_patchers = [other]
@patcher
def test(g):
self.assertIs(Foo.g, g)
self.assertEqual(Foo.f, 3)
test()
self.assertEqual(Foo.f, original_f)
self.assertEqual(Foo.g, original_g)
def test_patch_multiple_stacked_decorators(self):
original_foo = Foo
original_f = Foo.f
original_g = Foo.g
@patch.multiple(foo_name, f=DEFAULT)
@patch.multiple(foo_name, foo=DEFAULT)
@patch(foo_name + '.g')
def test1(g, **kwargs):
_test(g, **kwargs)
@patch.multiple(foo_name, f=DEFAULT)
@patch(foo_name + '.g')
@patch.multiple(foo_name, foo=DEFAULT)
def test2(g, **kwargs):
_test(g, **kwargs)
@patch(foo_name + '.g')
@patch.multiple(foo_name, f=DEFAULT)
@patch.multiple(foo_name, foo=DEFAULT)
def test3(g, **kwargs):
_test(g, **kwargs)
def _test(g, **kwargs):
f = kwargs.pop('f')
foo = kwargs.pop('foo')
self.assertFalse(kwargs)
self.assertIs(Foo, original_foo)
self.assertIs(Foo.f, f)
self.assertIs(Foo.g, g)
self.assertIs(Foo.foo, foo)
self.assertTrue(is_instance(f, MagicMock))
self.assertTrue(is_instance(g, MagicMock))
self.assertTrue(is_instance(foo, MagicMock))
test1()
test2()
test3()
self.assertEqual(Foo.f, original_f)
self.assertEqual(Foo.g, original_g)
def test_patch_multiple_create_mocks_patcher(self):
original_foo = Foo
original_f = Foo.f
original_g = Foo.g
patcher = patch.multiple(foo_name, f=DEFAULT, g=3, foo=DEFAULT)
result = patcher.start()
try:
f = result['f']
foo = result['foo']
self.assertEqual(set(result), set(['f', 'foo']))
self.assertIs(Foo, original_foo)
self.assertIs(Foo.f, f)
self.assertIs(Foo.foo, foo)
self.assertTrue(is_instance(f, MagicMock))
self.assertTrue(is_instance(foo, MagicMock))
finally:
patcher.stop()
self.assertEqual(Foo.f, original_f)
self.assertEqual(Foo.g, original_g)
def test_patch_multiple_decorating_class(self):
test = self
original_foo = Foo
original_f = Foo.f
original_g = Foo.g
class SomeTest(object):
def _test(self, f, foo):
test.assertIs(Foo, original_foo)
test.assertIs(Foo.f, f)
test.assertEqual(Foo.g, 3)
test.assertIs(Foo.foo, foo)
test.assertTrue(is_instance(f, MagicMock))
test.assertTrue(is_instance(foo, MagicMock))
def test_two(self, f, foo):
self._test(f, foo)
def test_one(self, f, foo):
self._test(f, foo)
SomeTest = patch.multiple(
foo_name, f=DEFAULT, g=3, foo=DEFAULT
)(SomeTest)
thing = SomeTest()
thing.test_one()
thing.test_two()
self.assertEqual(Foo.f, original_f)
self.assertEqual(Foo.g, original_g)
def test_patch_multiple_create(self):
patcher = patch.multiple(Foo, blam='blam')
self.assertRaises(AttributeError, patcher.start)
patcher = patch.multiple(Foo, blam='blam', create=True)
patcher.start()
try:
self.assertEqual(Foo.blam, 'blam')
finally:
patcher.stop()
self.assertFalse(hasattr(Foo, 'blam'))
def test_patch_multiple_spec_set(self):
# if spec_set works then we can assume that spec and autospec also
# work as the underlying machinery is the same
patcher = patch.multiple(Foo, foo=DEFAULT, spec_set=['a', 'b'])
result = patcher.start()
try:
self.assertEqual(Foo.foo, result['foo'])
Foo.foo.a(1)
Foo.foo.b(2)
Foo.foo.a.assert_called_with(1)
Foo.foo.b.assert_called_with(2)
self.assertRaises(AttributeError, setattr, Foo.foo, 'c', None)
finally:
patcher.stop()
def test_patch_multiple_new_callable(self):
class Thing(object):
pass
patcher = patch.multiple(
Foo, f=DEFAULT, g=DEFAULT, new_callable=Thing
)
result = patcher.start()
try:
self.assertIs(Foo.f, result['f'])
self.assertIs(Foo.g, result['g'])
self.assertIsInstance(Foo.f, Thing)
self.assertIsInstance(Foo.g, Thing)
self.assertIsNot(Foo.f, Foo.g)
finally:
patcher.stop()
def test_nested_patch_failure(self):
original_f = Foo.f
original_g = Foo.g
@patch.object(Foo, 'g', 1)
@patch.object(Foo, 'missing', 1)
@patch.object(Foo, 'f', 1)
def thing1():
pass
@patch.object(Foo, 'missing', 1)
@patch.object(Foo, 'g', 1)
@patch.object(Foo, 'f', 1)
def thing2():
pass
@patch.object(Foo, 'g', 1)
@patch.object(Foo, 'f', 1)
@patch.object(Foo, 'missing', 1)
def thing3():
pass
for func in thing1, thing2, thing3:
self.assertRaises(AttributeError, func)
self.assertEqual(Foo.f, original_f)
self.assertEqual(Foo.g, original_g)
def test_new_callable_failure(self):
original_f = Foo.f
original_g = Foo.g
original_foo = Foo.foo
def crasher():
raise NameError('crasher')
@patch.object(Foo, 'g', 1)
@patch.object(Foo, 'foo', new_callable=crasher)
@patch.object(Foo, 'f', 1)
def thing1():
pass
@patch.object(Foo, 'foo', new_callable=crasher)
@patch.object(Foo, 'g', 1)
@patch.object(Foo, 'f', 1)
def thing2():
pass
@patch.object(Foo, 'g', 1)
@patch.object(Foo, 'f', 1)
@patch.object(Foo, 'foo', new_callable=crasher)
def thing3():
pass
for func in thing1, thing2, thing3:
self.assertRaises(NameError, func)
self.assertEqual(Foo.f, original_f)
self.assertEqual(Foo.g, original_g)
self.assertEqual(Foo.foo, original_foo)
def test_patch_multiple_failure(self):
original_f = Foo.f
original_g = Foo.g
patcher = patch.object(Foo, 'f', 1)
patcher.attribute_name = 'f'
good = patch.object(Foo, 'g', 1)
good.attribute_name = 'g'
bad = patch.object(Foo, 'missing', 1)
bad.attribute_name = 'missing'
for additionals in [good, bad], [bad, good]:
patcher.additional_patchers = additionals
@patcher
def func():
pass
self.assertRaises(AttributeError, func)
self.assertEqual(Foo.f, original_f)
self.assertEqual(Foo.g, original_g)
def test_patch_multiple_new_callable_failure(self):
original_f = Foo.f
original_g = Foo.g
original_foo = Foo.foo
def crasher():
raise NameError('crasher')
patcher = patch.object(Foo, 'f', 1)
patcher.attribute_name = 'f'
good = patch.object(Foo, 'g', 1)
good.attribute_name = 'g'
bad = patch.object(Foo, 'foo', new_callable=crasher)
bad.attribute_name = 'foo'
for additionals in [good, bad], [bad, good]:
patcher.additional_patchers = additionals
@patcher
def func():
pass
self.assertRaises(NameError, func)
self.assertEqual(Foo.f, original_f)
self.assertEqual(Foo.g, original_g)
self.assertEqual(Foo.foo, original_foo)
def test_patch_multiple_string_subclasses(self):
for base in (str, unicode):
Foo = type('Foo', (base,), {'fish': 'tasty'})
foo = Foo()
@patch.multiple(foo, fish='nearly gone')
def test():
self.assertEqual(foo.fish, 'nearly gone')
test()
self.assertEqual(foo.fish, 'tasty')
@patch('mock.patch.TEST_PREFIX', 'foo')
def test_patch_test_prefix(self):
class Foo(object):
thing = 'original'
def foo_one(self):
return self.thing
def foo_two(self):
return self.thing
def test_one(self):
return self.thing
def test_two(self):
return self.thing
Foo = patch.object(Foo, 'thing', 'changed')(Foo)
foo = Foo()
self.assertEqual(foo.foo_one(), 'changed')
self.assertEqual(foo.foo_two(), 'changed')
self.assertEqual(foo.test_one(), 'original')
self.assertEqual(foo.test_two(), 'original')
@patch('mock.patch.TEST_PREFIX', 'bar')
def test_patch_dict_test_prefix(self):
class Foo(object):
def bar_one(self):
return dict(the_dict)
def bar_two(self):
return dict(the_dict)
def test_one(self):
return dict(the_dict)
def test_two(self):
return dict(the_dict)
the_dict = {'key': 'original'}
Foo = patch.dict(the_dict, key='changed')(Foo)
foo =Foo()
self.assertEqual(foo.bar_one(), {'key': 'changed'})
self.assertEqual(foo.bar_two(), {'key': 'changed'})
self.assertEqual(foo.test_one(), {'key': 'original'})
self.assertEqual(foo.test_two(), {'key': 'original'})
def test_patch_with_spec_mock_repr(self):
for arg in ('spec', 'autospec', 'spec_set'):
p = patch('%s.SomeClass' % __name__, **{arg: True})
m = p.start()
try:
self.assertIn(" name='SomeClass'", repr(m))
self.assertIn(" name='SomeClass.class_attribute'",
repr(m.class_attribute))
self.assertIn(" name='SomeClass()'", repr(m()))
self.assertIn(" name='SomeClass().class_attribute'",
repr(m().class_attribute))
finally:
p.stop()
def test_patch_nested_autospec_repr(self):
p = patch('tests.support', autospec=True)
m = p.start()
try:
self.assertIn(" name='support.SomeClass.wibble()'",
repr(m.SomeClass.wibble()))
self.assertIn(" name='support.SomeClass().wibble()'",
repr(m.SomeClass().wibble()))
finally:
p.stop()
def test_mock_calls_with_patch(self):
for arg in ('spec', 'autospec', 'spec_set'):
p = patch('%s.SomeClass' % __name__, **{arg: True})
m = p.start()
try:
m.wibble()
kalls = [call.wibble()]
self.assertEqual(m.mock_calls, kalls)
self.assertEqual(m.method_calls, kalls)
self.assertEqual(m.wibble.mock_calls, [call()])
result = m()
kalls.append(call())
self.assertEqual(m.mock_calls, kalls)
result.wibble()
kalls.append(call().wibble())
self.assertEqual(m.mock_calls, kalls)
self.assertEqual(result.mock_calls, [call.wibble()])
self.assertEqual(result.wibble.mock_calls, [call()])
self.assertEqual(result.method_calls, [call.wibble()])
finally:
p.stop()
def test_patch_imports_lazily(self):
sys.modules.pop('squizz', None)
p1 = patch('squizz.squozz')
self.assertRaises(ImportError, p1.start)
squizz = Mock()
squizz.squozz = 6
sys.modules['squizz'] = squizz
p1 = patch('squizz.squozz')
squizz.squozz = 3
p1.start()
p1.stop()
self.assertEqual(squizz.squozz, 3)
def test_patch_propogrates_exc_on_exit(self):
class holder:
exc_info = None, None, None
class custom_patch(_patch):
def __exit__(self, etype=None, val=None, tb=None):
_patch.__exit__(self, etype, val, tb)
holder.exc_info = etype, val, tb
stop = __exit__
def with_custom_patch(target):
getter, attribute = _get_target(target)
return custom_patch(
getter, attribute, DEFAULT, None, False, None,
None, None, {}
)
@with_custom_patch('squizz.squozz')
def test(mock):
raise RuntimeError
self.assertRaises(RuntimeError, test)
self.assertIs(holder.exc_info[0], RuntimeError)
self.assertIsNotNone(holder.exc_info[1],
'exception value not propgated')
self.assertIsNotNone(holder.exc_info[2],
'exception traceback not propgated')
def test_create_and_specs(self):
for kwarg in ('spec', 'spec_set', 'autospec'):
p = patch('%s.doesnotexist' % __name__, create=True,
**{kwarg: True})
self.assertRaises(TypeError, p.start)
self.assertRaises(NameError, lambda: doesnotexist)
# check that spec with create is innocuous if the original exists
p = patch(MODNAME, create=True, **{kwarg: True})
p.start()
p.stop()
def test_multiple_specs(self):
original = PTModule
for kwarg in ('spec', 'spec_set'):
p = patch(MODNAME, autospec=0, **{kwarg: 0})
self.assertRaises(TypeError, p.start)
self.assertIs(PTModule, original)
for kwarg in ('spec', 'autospec'):
p = patch(MODNAME, spec_set=0, **{kwarg: 0})
self.assertRaises(TypeError, p.start)
self.assertIs(PTModule, original)
for kwarg in ('spec_set', 'autospec'):
p = patch(MODNAME, spec=0, **{kwarg: 0})
self.assertRaises(TypeError, p.start)
self.assertIs(PTModule, original)
def test_specs_false_instead_of_none(self):
p = patch(MODNAME, spec=False, spec_set=False, autospec=False)
mock = p.start()
try:
# no spec should have been set, so attribute access should not fail
mock.does_not_exist
mock.does_not_exist = 3
finally:
p.stop()
def test_falsey_spec(self):
for kwarg in ('spec', 'autospec', 'spec_set'):
p = patch(MODNAME, **{kwarg: 0})
m = p.start()
try:
self.assertRaises(AttributeError, getattr, m, 'doesnotexit')
finally:
p.stop()
def test_spec_set_true(self):
for kwarg in ('spec', 'autospec'):
p = patch(MODNAME, spec_set=True, **{kwarg: True})
m = p.start()
try:
self.assertRaises(AttributeError, setattr, m,
'doesnotexist', 'something')
self.assertRaises(AttributeError, getattr, m, 'doesnotexist')
finally:
p.stop()
def test_callable_spec_as_list(self):
spec = ('__call__',)
p = patch(MODNAME, spec=spec)
m = p.start()
try:
self.assertTrue(callable(m))
finally:
p.stop()
def test_not_callable_spec_as_list(self):
spec = ('foo', 'bar')
p = patch(MODNAME, spec=spec)
m = p.start()
try:
self.assertFalse(callable(m))
finally:
p.stop()
def test_patch_stopall(self):
unlink = os.unlink
chdir = os.chdir
path = os.path
patch('os.unlink', something).start()
patch('os.chdir', something_else).start()
@patch('os.path')
def patched(mock_path):
patch.stopall()
self.assertIs(os.path, mock_path)
self.assertIs(os.unlink, unlink)
self.assertIs(os.chdir, chdir)
patched()
self.assertIs(os.path, path)
if __name__ == '__main__':
unittest2.main()