forked from mirrors/gecko-dev
This commit is a simple 'hg mv' and does not contain any file modifications. *** Bug 1346025 - Split vendored modules in python/moz.build to third_party/python/moz.build, r=ted *** Bug 1346025 - Update references to moved python modules, r=ted MozReview-Commit-ID: A12RnIFtXju --HG-- rename : python/PyECC/MANIFEST.in => third_party/python/PyECC/MANIFEST.in rename : python/PyECC/README.md => third_party/python/PyECC/README.md rename : python/PyECC/ecc/Key.py => third_party/python/PyECC/ecc/Key.py rename : python/PyECC/ecc/Rabbit.py => third_party/python/PyECC/ecc/Rabbit.py rename : python/PyECC/ecc/SecurityViolationException.py => third_party/python/PyECC/ecc/SecurityViolationException.py rename : python/PyECC/ecc/__init__.py => third_party/python/PyECC/ecc/__init__.py rename : python/PyECC/ecc/curves.py => third_party/python/PyECC/ecc/curves.py rename : python/PyECC/ecc/eccrypt.py => third_party/python/PyECC/ecc/eccrypt.py rename : python/PyECC/ecc/ecdsa.py => third_party/python/PyECC/ecc/ecdsa.py rename : python/PyECC/ecc/elliptic.py => third_party/python/PyECC/ecc/elliptic.py rename : python/PyECC/ecc/encoding.py => third_party/python/PyECC/ecc/encoding.py rename : python/PyECC/ecc/performance.py => third_party/python/PyECC/ecc/performance.py rename : python/PyECC/ecc/primes.py => third_party/python/PyECC/ecc/primes.py rename : python/PyECC/ecc/shacrypt.py => third_party/python/PyECC/ecc/shacrypt.py rename : python/PyECC/setup.py => third_party/python/PyECC/setup.py rename : python/blessings/LICENSE => third_party/python/blessings/LICENSE rename : python/blessings/MANIFEST.in => third_party/python/blessings/MANIFEST.in rename : python/blessings/PKG-INFO => third_party/python/blessings/PKG-INFO rename : python/blessings/README.rst => third_party/python/blessings/README.rst rename : python/blessings/blessings/__init__.py => third_party/python/blessings/blessings/__init__.py rename : python/blessings/blessings/tests.py => third_party/python/blessings/blessings/tests.py rename : python/blessings/setup.cfg => third_party/python/blessings/setup.cfg rename : python/blessings/setup.py => third_party/python/blessings/setup.py rename : python/blessings/tox.ini => third_party/python/blessings/tox.ini rename : python/compare-locales/compare_locales/__init__.py => third_party/python/compare-locales/compare_locales/__init__.py rename : python/compare-locales/compare_locales/checks.py => third_party/python/compare-locales/compare_locales/checks.py rename : python/compare-locales/compare_locales/commands.py => third_party/python/compare-locales/compare_locales/commands.py rename : python/compare-locales/compare_locales/compare.py => third_party/python/compare-locales/compare_locales/compare.py rename : python/compare-locales/compare_locales/parser.py => third_party/python/compare-locales/compare_locales/parser.py rename : python/compare-locales/compare_locales/paths.py => third_party/python/compare-locales/compare_locales/paths.py rename : python/compare-locales/compare_locales/tests/__init__.py => third_party/python/compare-locales/compare_locales/tests/__init__.py rename : python/compare-locales/compare_locales/tests/data/bug121341.properties => third_party/python/compare-locales/compare_locales/tests/data/bug121341.properties rename : python/compare-locales/compare_locales/tests/data/test.properties => third_party/python/compare-locales/compare_locales/tests/data/test.properties rename : python/compare-locales/compare_locales/tests/data/triple-license.dtd => third_party/python/compare-locales/compare_locales/tests/data/triple-license.dtd rename : python/compare-locales/compare_locales/tests/test_checks.py => third_party/python/compare-locales/compare_locales/tests/test_checks.py rename : python/compare-locales/compare_locales/tests/test_compare.py => third_party/python/compare-locales/compare_locales/tests/test_compare.py rename : python/compare-locales/compare_locales/tests/test_dtd.py => third_party/python/compare-locales/compare_locales/tests/test_dtd.py rename : python/compare-locales/compare_locales/tests/test_ini.py => third_party/python/compare-locales/compare_locales/tests/test_ini.py rename : python/compare-locales/compare_locales/tests/test_merge.py => third_party/python/compare-locales/compare_locales/tests/test_merge.py rename : python/compare-locales/compare_locales/tests/test_properties.py => third_party/python/compare-locales/compare_locales/tests/test_properties.py rename : python/compare-locales/compare_locales/tests/test_util.py => third_party/python/compare-locales/compare_locales/tests/test_util.py rename : python/compare-locales/compare_locales/tests/test_webapps.py => third_party/python/compare-locales/compare_locales/tests/test_webapps.py rename : python/compare-locales/compare_locales/util.py => third_party/python/compare-locales/compare_locales/util.py rename : python/compare-locales/compare_locales/webapps.py => third_party/python/compare-locales/compare_locales/webapps.py rename : python/configobj/PKG-INFO => third_party/python/configobj/PKG-INFO rename : python/configobj/configobj.py => third_party/python/configobj/configobj.py rename : python/configobj/setup.py => third_party/python/configobj/setup.py rename : python/configobj/validate.py => third_party/python/configobj/validate.py rename : python/dlmanager/README.rst => third_party/python/dlmanager/README.rst rename : python/dlmanager/check.py => third_party/python/dlmanager/check.py rename : python/dlmanager/dlmanager/__init__.py => third_party/python/dlmanager/dlmanager/__init__.py rename : python/dlmanager/dlmanager/fs.py => third_party/python/dlmanager/dlmanager/fs.py rename : python/dlmanager/dlmanager/manager.py => third_party/python/dlmanager/dlmanager/manager.py rename : python/dlmanager/dlmanager/persist_limit.py => third_party/python/dlmanager/dlmanager/persist_limit.py rename : python/dlmanager/doc/Makefile => third_party/python/dlmanager/doc/Makefile rename : python/dlmanager/doc/api.rst => third_party/python/dlmanager/doc/api.rst rename : python/dlmanager/doc/conf.py => third_party/python/dlmanager/doc/conf.py rename : python/dlmanager/doc/index.rst => third_party/python/dlmanager/doc/index.rst rename : python/dlmanager/doc/make.bat => third_party/python/dlmanager/doc/make.bat rename : python/dlmanager/examples/dl_progressbar.py => third_party/python/dlmanager/examples/dl_progressbar.py rename : python/dlmanager/examples/dl_tqdm.py => third_party/python/dlmanager/examples/dl_tqdm.py rename : python/dlmanager/requirements.txt => third_party/python/dlmanager/requirements.txt rename : python/dlmanager/setup.cfg => third_party/python/dlmanager/setup.cfg rename : python/dlmanager/setup.py => third_party/python/dlmanager/setup.py rename : python/dlmanager/test-requirements.txt => third_party/python/dlmanager/test-requirements.txt rename : python/dlmanager/tests/__init__.py => third_party/python/dlmanager/tests/__init__.py rename : python/dlmanager/tests/test_manager.py => third_party/python/dlmanager/tests/test_manager.py rename : python/dlmanager/tests/test_persist_limit.py => third_party/python/dlmanager/tests/test_persist_limit.py rename : python/futures/CHANGES => third_party/python/futures/CHANGES rename : python/futures/LICENSE => third_party/python/futures/LICENSE rename : python/futures/MANIFEST.in => third_party/python/futures/MANIFEST.in rename : python/futures/PKG-INFO => third_party/python/futures/PKG-INFO rename : python/futures/concurrent/__init__.py => third_party/python/futures/concurrent/__init__.py rename : python/futures/concurrent/futures/__init__.py => third_party/python/futures/concurrent/futures/__init__.py rename : python/futures/concurrent/futures/_base.py => third_party/python/futures/concurrent/futures/_base.py rename : python/futures/concurrent/futures/process.py => third_party/python/futures/concurrent/futures/process.py rename : python/futures/concurrent/futures/thread.py => third_party/python/futures/concurrent/futures/thread.py rename : python/futures/crawl.py => third_party/python/futures/crawl.py rename : python/futures/docs/Makefile => third_party/python/futures/docs/Makefile rename : python/futures/docs/conf.py => third_party/python/futures/docs/conf.py rename : python/futures/docs/index.rst => third_party/python/futures/docs/index.rst rename : python/futures/docs/make.bat => third_party/python/futures/docs/make.bat rename : python/futures/futures.egg-info/PKG-INFO => third_party/python/futures/futures.egg-info/PKG-INFO rename : python/futures/futures.egg-info/SOURCES.txt => third_party/python/futures/futures.egg-info/SOURCES.txt rename : python/futures/futures.egg-info/dependency_links.txt => third_party/python/futures/futures.egg-info/dependency_links.txt rename : python/futures/futures.egg-info/not-zip-safe => third_party/python/futures/futures.egg-info/not-zip-safe rename : python/futures/futures.egg-info/pbr.json => third_party/python/futures/futures.egg-info/pbr.json rename : python/futures/futures.egg-info/top_level.txt => third_party/python/futures/futures.egg-info/top_level.txt rename : python/futures/primes.py => third_party/python/futures/primes.py rename : python/futures/setup.cfg => third_party/python/futures/setup.cfg rename : python/futures/setup.py => third_party/python/futures/setup.py rename : python/futures/test_futures.py => third_party/python/futures/test_futures.py rename : python/futures/tox.ini => third_party/python/futures/tox.ini rename : python/gdbpp/gdbpp/__init__.py => third_party/python/gdbpp/gdbpp/__init__.py rename : python/gdbpp/gdbpp/linkedlist.py => third_party/python/gdbpp/gdbpp/linkedlist.py rename : python/gdbpp/gdbpp/owningthread.py => third_party/python/gdbpp/gdbpp/owningthread.py rename : python/gdbpp/gdbpp/smartptr.py => third_party/python/gdbpp/gdbpp/smartptr.py rename : python/gdbpp/gdbpp/string.py => third_party/python/gdbpp/gdbpp/string.py rename : python/gdbpp/gdbpp/tarray.py => third_party/python/gdbpp/gdbpp/tarray.py rename : python/gdbpp/gdbpp/thashtable.py => third_party/python/gdbpp/gdbpp/thashtable.py rename : python/jsmin/jsmin/__init__.py => third_party/python/jsmin/jsmin/__init__.py rename : python/jsmin/jsmin/test.py => third_party/python/jsmin/jsmin/test.py rename : python/jsmin/setup.cfg => third_party/python/jsmin/setup.cfg rename : python/jsmin/setup.py => third_party/python/jsmin/setup.py rename : python/lldbutils/README.txt => third_party/python/lldbutils/README.txt rename : python/lldbutils/lldbutils/__init__.py => third_party/python/lldbutils/lldbutils/__init__.py rename : python/lldbutils/lldbutils/content.py => third_party/python/lldbutils/lldbutils/content.py rename : python/lldbutils/lldbutils/general.py => third_party/python/lldbutils/lldbutils/general.py rename : python/lldbutils/lldbutils/gfx.py => third_party/python/lldbutils/lldbutils/gfx.py rename : python/lldbutils/lldbutils/layout.py => third_party/python/lldbutils/lldbutils/layout.py rename : python/lldbutils/lldbutils/utils.py => third_party/python/lldbutils/lldbutils/utils.py rename : python/mock-1.0.0/LICENSE.txt => third_party/python/mock-1.0.0/LICENSE.txt rename : python/mock-1.0.0/MANIFEST.in => third_party/python/mock-1.0.0/MANIFEST.in rename : python/mock-1.0.0/PKG-INFO => third_party/python/mock-1.0.0/PKG-INFO rename : python/mock-1.0.0/README.txt => third_party/python/mock-1.0.0/README.txt rename : python/mock-1.0.0/docs/changelog.txt => third_party/python/mock-1.0.0/docs/changelog.txt rename : python/mock-1.0.0/docs/compare.txt => third_party/python/mock-1.0.0/docs/compare.txt rename : python/mock-1.0.0/docs/conf.py => third_party/python/mock-1.0.0/docs/conf.py rename : python/mock-1.0.0/docs/examples.txt => third_party/python/mock-1.0.0/docs/examples.txt rename : python/mock-1.0.0/docs/getting-started.txt => third_party/python/mock-1.0.0/docs/getting-started.txt rename : python/mock-1.0.0/docs/helpers.txt => third_party/python/mock-1.0.0/docs/helpers.txt rename : python/mock-1.0.0/docs/index.txt => third_party/python/mock-1.0.0/docs/index.txt rename : python/mock-1.0.0/docs/magicmock.txt => third_party/python/mock-1.0.0/docs/magicmock.txt rename : python/mock-1.0.0/docs/mock.txt => third_party/python/mock-1.0.0/docs/mock.txt rename : python/mock-1.0.0/docs/patch.txt => third_party/python/mock-1.0.0/docs/patch.txt rename : python/mock-1.0.0/docs/sentinel.txt => third_party/python/mock-1.0.0/docs/sentinel.txt rename : python/mock-1.0.0/html/.doctrees/changelog.doctree => third_party/python/mock-1.0.0/html/.doctrees/changelog.doctree rename : python/mock-1.0.0/html/.doctrees/compare.doctree => third_party/python/mock-1.0.0/html/.doctrees/compare.doctree rename : python/mock-1.0.0/html/.doctrees/examples.doctree => third_party/python/mock-1.0.0/html/.doctrees/examples.doctree rename : python/mock-1.0.0/html/.doctrees/getting-started.doctree => third_party/python/mock-1.0.0/html/.doctrees/getting-started.doctree rename : python/mock-1.0.0/html/.doctrees/index.doctree => third_party/python/mock-1.0.0/html/.doctrees/index.doctree rename : python/mock-1.0.0/html/.doctrees/magicmock.doctree => third_party/python/mock-1.0.0/html/.doctrees/magicmock.doctree rename : python/mock-1.0.0/html/.doctrees/mock.doctree => third_party/python/mock-1.0.0/html/.doctrees/mock.doctree rename : python/mock-1.0.0/html/.doctrees/mocksignature.doctree => third_party/python/mock-1.0.0/html/.doctrees/mocksignature.doctree rename : python/mock-1.0.0/html/.doctrees/patch.doctree => third_party/python/mock-1.0.0/html/.doctrees/patch.doctree rename : python/mock-1.0.0/html/.doctrees/sentinel.doctree => third_party/python/mock-1.0.0/html/.doctrees/sentinel.doctree rename : python/mock-1.0.0/html/_sources/changelog.txt => third_party/python/mock-1.0.0/html/_sources/changelog.txt rename : python/mock-1.0.0/html/_sources/compare.txt => third_party/python/mock-1.0.0/html/_sources/compare.txt rename : python/mock-1.0.0/html/_sources/examples.txt => third_party/python/mock-1.0.0/html/_sources/examples.txt rename : python/mock-1.0.0/html/_sources/getting-started.txt => third_party/python/mock-1.0.0/html/_sources/getting-started.txt rename : python/mock-1.0.0/html/_sources/index.txt => third_party/python/mock-1.0.0/html/_sources/index.txt rename : python/mock-1.0.0/html/_sources/magicmock.txt => third_party/python/mock-1.0.0/html/_sources/magicmock.txt rename : python/mock-1.0.0/html/_sources/mock.txt => third_party/python/mock-1.0.0/html/_sources/mock.txt rename : python/mock-1.0.0/html/_sources/mocksignature.txt => third_party/python/mock-1.0.0/html/_sources/mocksignature.txt rename : python/mock-1.0.0/html/_sources/patch.txt => third_party/python/mock-1.0.0/html/_sources/patch.txt rename : python/mock-1.0.0/html/_sources/sentinel.txt => third_party/python/mock-1.0.0/html/_sources/sentinel.txt rename : python/mock-1.0.0/html/_static/adctheme.css => third_party/python/mock-1.0.0/html/_static/adctheme.css rename : python/mock-1.0.0/html/_static/basic.css => third_party/python/mock-1.0.0/html/_static/basic.css rename : python/mock-1.0.0/html/_static/breadcrumb_background.png => third_party/python/mock-1.0.0/html/_static/breadcrumb_background.png rename : python/mock-1.0.0/html/_static/default.css => third_party/python/mock-1.0.0/html/_static/default.css rename : python/mock-1.0.0/html/_static/doctools.js => third_party/python/mock-1.0.0/html/_static/doctools.js rename : python/mock-1.0.0/html/_static/documentation.png => third_party/python/mock-1.0.0/html/_static/documentation.png rename : python/mock-1.0.0/html/_static/file.png => third_party/python/mock-1.0.0/html/_static/file.png rename : python/mock-1.0.0/html/_static/header_sm_mid.png => third_party/python/mock-1.0.0/html/_static/header_sm_mid.png rename : python/mock-1.0.0/html/_static/jquery.js => third_party/python/mock-1.0.0/html/_static/jquery.js rename : python/mock-1.0.0/html/_static/minus.png => third_party/python/mock-1.0.0/html/_static/minus.png rename : python/mock-1.0.0/html/_static/mobile.css => third_party/python/mock-1.0.0/html/_static/mobile.css rename : python/mock-1.0.0/html/_static/plus.png => third_party/python/mock-1.0.0/html/_static/plus.png rename : python/mock-1.0.0/html/_static/pygments.css => third_party/python/mock-1.0.0/html/_static/pygments.css rename : python/mock-1.0.0/html/_static/scrn1.png => third_party/python/mock-1.0.0/html/_static/scrn1.png rename : python/mock-1.0.0/html/_static/scrn2.png => third_party/python/mock-1.0.0/html/_static/scrn2.png rename : python/mock-1.0.0/html/_static/searchfield_leftcap.png => third_party/python/mock-1.0.0/html/_static/searchfield_leftcap.png rename : python/mock-1.0.0/html/_static/searchfield_repeat.png => third_party/python/mock-1.0.0/html/_static/searchfield_repeat.png rename : python/mock-1.0.0/html/_static/searchfield_rightcap.png => third_party/python/mock-1.0.0/html/_static/searchfield_rightcap.png rename : python/mock-1.0.0/html/_static/searchtools.js => third_party/python/mock-1.0.0/html/_static/searchtools.js rename : python/mock-1.0.0/html/_static/sidebar.js => third_party/python/mock-1.0.0/html/_static/sidebar.js rename : python/mock-1.0.0/html/_static/title_background.png => third_party/python/mock-1.0.0/html/_static/title_background.png rename : python/mock-1.0.0/html/_static/toc.js => third_party/python/mock-1.0.0/html/_static/toc.js rename : python/mock-1.0.0/html/_static/triangle_closed.png => third_party/python/mock-1.0.0/html/_static/triangle_closed.png rename : python/mock-1.0.0/html/_static/triangle_left.png => third_party/python/mock-1.0.0/html/_static/triangle_left.png rename : python/mock-1.0.0/html/_static/triangle_open.png => third_party/python/mock-1.0.0/html/_static/triangle_open.png rename : python/mock-1.0.0/html/_static/underscore.js => third_party/python/mock-1.0.0/html/_static/underscore.js rename : python/mock-1.0.0/html/changelog.html => third_party/python/mock-1.0.0/html/changelog.html rename : python/mock-1.0.0/html/compare.html => third_party/python/mock-1.0.0/html/compare.html rename : python/mock-1.0.0/html/examples.html => third_party/python/mock-1.0.0/html/examples.html rename : python/mock-1.0.0/html/genindex.html => third_party/python/mock-1.0.0/html/genindex.html rename : python/mock-1.0.0/html/getting-started.html => third_party/python/mock-1.0.0/html/getting-started.html rename : python/mock-1.0.0/html/index.html => third_party/python/mock-1.0.0/html/index.html rename : python/mock-1.0.0/html/magicmock.html => third_party/python/mock-1.0.0/html/magicmock.html rename : python/mock-1.0.0/html/mock.html => third_party/python/mock-1.0.0/html/mock.html rename : python/mock-1.0.0/html/mocksignature.html => third_party/python/mock-1.0.0/html/mocksignature.html rename : python/mock-1.0.0/html/objects.inv => third_party/python/mock-1.0.0/html/objects.inv rename : python/mock-1.0.0/html/output.txt => third_party/python/mock-1.0.0/html/output.txt rename : python/mock-1.0.0/html/patch.html => third_party/python/mock-1.0.0/html/patch.html rename : python/mock-1.0.0/html/search.html => third_party/python/mock-1.0.0/html/search.html rename : python/mock-1.0.0/html/searchindex.js => third_party/python/mock-1.0.0/html/searchindex.js rename : python/mock-1.0.0/html/sentinel.html => third_party/python/mock-1.0.0/html/sentinel.html rename : python/mock-1.0.0/mock.egg-info/PKG-INFO => third_party/python/mock-1.0.0/mock.egg-info/PKG-INFO rename : python/mock-1.0.0/mock.egg-info/SOURCES.txt => third_party/python/mock-1.0.0/mock.egg-info/SOURCES.txt rename : python/mock-1.0.0/mock.egg-info/dependency_links.txt => third_party/python/mock-1.0.0/mock.egg-info/dependency_links.txt rename : python/mock-1.0.0/mock.egg-info/top_level.txt => third_party/python/mock-1.0.0/mock.egg-info/top_level.txt rename : python/mock-1.0.0/mock.py => third_party/python/mock-1.0.0/mock.py rename : python/mock-1.0.0/setup.cfg => third_party/python/mock-1.0.0/setup.cfg rename : python/mock-1.0.0/setup.py => third_party/python/mock-1.0.0/setup.py rename : python/mock-1.0.0/tests/__init__.py => third_party/python/mock-1.0.0/tests/__init__.py rename : python/mock-1.0.0/tests/_testwith.py => third_party/python/mock-1.0.0/tests/_testwith.py rename : python/mock-1.0.0/tests/support.py => third_party/python/mock-1.0.0/tests/support.py rename : python/mock-1.0.0/tests/support_with.py => third_party/python/mock-1.0.0/tests/support_with.py rename : python/mock-1.0.0/tests/testcallable.py => third_party/python/mock-1.0.0/tests/testcallable.py rename : python/mock-1.0.0/tests/testhelpers.py => third_party/python/mock-1.0.0/tests/testhelpers.py rename : python/mock-1.0.0/tests/testmagicmethods.py => third_party/python/mock-1.0.0/tests/testmagicmethods.py rename : python/mock-1.0.0/tests/testmock.py => third_party/python/mock-1.0.0/tests/testmock.py rename : python/mock-1.0.0/tests/testpatch.py => third_party/python/mock-1.0.0/tests/testpatch.py rename : python/mock-1.0.0/tests/testsentinel.py => third_party/python/mock-1.0.0/tests/testsentinel.py rename : python/mock-1.0.0/tests/testwith.py => third_party/python/mock-1.0.0/tests/testwith.py rename : python/mock-1.0.0/tox.ini => third_party/python/mock-1.0.0/tox.ini rename : python/psutil/CREDITS => third_party/python/psutil/CREDITS rename : python/psutil/HISTORY.rst => third_party/python/psutil/HISTORY.rst rename : python/psutil/INSTALL.rst => third_party/python/psutil/INSTALL.rst rename : python/psutil/LICENSE => third_party/python/psutil/LICENSE rename : python/psutil/MANIFEST.in => third_party/python/psutil/MANIFEST.in rename : python/psutil/Makefile => third_party/python/psutil/Makefile rename : python/psutil/PKG-INFO => third_party/python/psutil/PKG-INFO rename : python/psutil/README.rst => third_party/python/psutil/README.rst rename : python/psutil/TODO => third_party/python/psutil/TODO rename : python/psutil/docs/Makefile => third_party/python/psutil/docs/Makefile rename : python/psutil/docs/README => third_party/python/psutil/docs/README rename : python/psutil/docs/_static/copybutton.js => third_party/python/psutil/docs/_static/copybutton.js rename : python/psutil/docs/_static/favicon.ico => third_party/python/psutil/docs/_static/favicon.ico rename : python/psutil/docs/_static/logo.png => third_party/python/psutil/docs/_static/logo.png rename : python/psutil/docs/_static/sidebar.js => third_party/python/psutil/docs/_static/sidebar.js rename : python/psutil/docs/_template/globaltoc.html => third_party/python/psutil/docs/_template/globaltoc.html rename : python/psutil/docs/_template/indexcontent.html => third_party/python/psutil/docs/_template/indexcontent.html rename : python/psutil/docs/_template/indexsidebar.html => third_party/python/psutil/docs/_template/indexsidebar.html rename : python/psutil/docs/_template/page.html => third_party/python/psutil/docs/_template/page.html rename : python/psutil/docs/_themes/pydoctheme/static/pydoctheme.css => third_party/python/psutil/docs/_themes/pydoctheme/static/pydoctheme.css rename : python/psutil/docs/_themes/pydoctheme/theme.conf => third_party/python/psutil/docs/_themes/pydoctheme/theme.conf rename : python/psutil/docs/conf.py => third_party/python/psutil/docs/conf.py rename : python/psutil/docs/index.rst => third_party/python/psutil/docs/index.rst rename : python/psutil/docs/make.bat => third_party/python/psutil/docs/make.bat rename : python/psutil/docs/xxx => third_party/python/psutil/docs/xxx rename : python/psutil/examples/disk_usage.py => third_party/python/psutil/examples/disk_usage.py rename : python/psutil/examples/free.py => third_party/python/psutil/examples/free.py rename : python/psutil/examples/ifconfig.py => third_party/python/psutil/examples/ifconfig.py rename : python/psutil/examples/iotop.py => third_party/python/psutil/examples/iotop.py rename : python/psutil/examples/killall.py => third_party/python/psutil/examples/killall.py rename : python/psutil/examples/meminfo.py => third_party/python/psutil/examples/meminfo.py rename : python/psutil/examples/netstat.py => third_party/python/psutil/examples/netstat.py rename : python/psutil/examples/nettop.py => third_party/python/psutil/examples/nettop.py rename : python/psutil/examples/pidof.py => third_party/python/psutil/examples/pidof.py rename : python/psutil/examples/pmap.py => third_party/python/psutil/examples/pmap.py rename : python/psutil/examples/process_detail.py => third_party/python/psutil/examples/process_detail.py rename : python/psutil/examples/ps.py => third_party/python/psutil/examples/ps.py rename : python/psutil/examples/pstree.py => third_party/python/psutil/examples/pstree.py rename : python/psutil/examples/top.py => third_party/python/psutil/examples/top.py rename : python/psutil/examples/who.py => third_party/python/psutil/examples/who.py rename : python/psutil/make.bat => third_party/python/psutil/make.bat rename : python/psutil/psutil.egg-info/PKG-INFO => third_party/python/psutil/psutil.egg-info/PKG-INFO rename : python/psutil/psutil.egg-info/SOURCES.txt => third_party/python/psutil/psutil.egg-info/SOURCES.txt rename : python/psutil/psutil.egg-info/dependency_links.txt => third_party/python/psutil/psutil.egg-info/dependency_links.txt rename : python/psutil/psutil.egg-info/top_level.txt => third_party/python/psutil/psutil.egg-info/top_level.txt rename : python/psutil/psutil/__init__.py => third_party/python/psutil/psutil/__init__.py rename : python/psutil/psutil/_common.py => third_party/python/psutil/psutil/_common.py rename : python/psutil/psutil/_compat.py => third_party/python/psutil/psutil/_compat.py rename : python/psutil/psutil/_psbsd.py => third_party/python/psutil/psutil/_psbsd.py rename : python/psutil/psutil/_pslinux.py => third_party/python/psutil/psutil/_pslinux.py rename : python/psutil/psutil/_psosx.py => third_party/python/psutil/psutil/_psosx.py rename : python/psutil/psutil/_psposix.py => third_party/python/psutil/psutil/_psposix.py rename : python/psutil/psutil/_pssunos.py => third_party/python/psutil/psutil/_pssunos.py rename : python/psutil/psutil/_psutil_bsd.c => third_party/python/psutil/psutil/_psutil_bsd.c rename : python/psutil/psutil/_psutil_bsd.h => third_party/python/psutil/psutil/_psutil_bsd.h rename : python/psutil/psutil/_psutil_common.c => third_party/python/psutil/psutil/_psutil_common.c rename : python/psutil/psutil/_psutil_common.h => third_party/python/psutil/psutil/_psutil_common.h rename : python/psutil/psutil/_psutil_linux.c => third_party/python/psutil/psutil/_psutil_linux.c rename : python/psutil/psutil/_psutil_linux.h => third_party/python/psutil/psutil/_psutil_linux.h rename : python/psutil/psutil/_psutil_osx.c => third_party/python/psutil/psutil/_psutil_osx.c rename : python/psutil/psutil/_psutil_osx.h => third_party/python/psutil/psutil/_psutil_osx.h rename : python/psutil/psutil/_psutil_posix.c => third_party/python/psutil/psutil/_psutil_posix.c rename : python/psutil/psutil/_psutil_posix.h => third_party/python/psutil/psutil/_psutil_posix.h rename : python/psutil/psutil/_psutil_sunos.c => third_party/python/psutil/psutil/_psutil_sunos.c rename : python/psutil/psutil/_psutil_sunos.h => third_party/python/psutil/psutil/_psutil_sunos.h rename : python/psutil/psutil/_psutil_windows.c => third_party/python/psutil/psutil/_psutil_windows.c rename : python/psutil/psutil/_psutil_windows.h => third_party/python/psutil/psutil/_psutil_windows.h rename : python/psutil/psutil/_pswindows.py => third_party/python/psutil/psutil/_pswindows.py rename : python/psutil/psutil/arch/bsd/process_info.c => third_party/python/psutil/psutil/arch/bsd/process_info.c rename : python/psutil/psutil/arch/bsd/process_info.h => third_party/python/psutil/psutil/arch/bsd/process_info.h rename : python/psutil/psutil/arch/osx/process_info.c => third_party/python/psutil/psutil/arch/osx/process_info.c rename : python/psutil/psutil/arch/osx/process_info.h => third_party/python/psutil/psutil/arch/osx/process_info.h rename : python/psutil/psutil/arch/windows/glpi.h => third_party/python/psutil/psutil/arch/windows/glpi.h rename : python/psutil/psutil/arch/windows/inet_ntop.c => third_party/python/psutil/psutil/arch/windows/inet_ntop.c rename : python/psutil/psutil/arch/windows/inet_ntop.h => third_party/python/psutil/psutil/arch/windows/inet_ntop.h rename : python/psutil/psutil/arch/windows/ntextapi.h => third_party/python/psutil/psutil/arch/windows/ntextapi.h rename : python/psutil/psutil/arch/windows/process_handles.c => third_party/python/psutil/psutil/arch/windows/process_handles.c rename : python/psutil/psutil/arch/windows/process_handles.h => third_party/python/psutil/psutil/arch/windows/process_handles.h rename : python/psutil/psutil/arch/windows/process_info.c => third_party/python/psutil/psutil/arch/windows/process_info.c rename : python/psutil/psutil/arch/windows/process_info.h => third_party/python/psutil/psutil/arch/windows/process_info.h rename : python/psutil/psutil/arch/windows/security.c => third_party/python/psutil/psutil/arch/windows/security.c rename : python/psutil/psutil/arch/windows/security.h => third_party/python/psutil/psutil/arch/windows/security.h rename : python/psutil/setup.cfg => third_party/python/psutil/setup.cfg rename : python/psutil/setup.py => third_party/python/psutil/setup.py rename : python/psutil/test/README.rst => third_party/python/psutil/test/README.rst rename : python/psutil/test/_bsd.py => third_party/python/psutil/test/_bsd.py rename : python/psutil/test/_linux.py => third_party/python/psutil/test/_linux.py rename : python/psutil/test/_osx.py => third_party/python/psutil/test/_osx.py rename : python/psutil/test/_posix.py => third_party/python/psutil/test/_posix.py rename : python/psutil/test/_sunos.py => third_party/python/psutil/test/_sunos.py rename : python/psutil/test/_windows.py => third_party/python/psutil/test/_windows.py rename : python/psutil/test/test_memory_leaks.py => third_party/python/psutil/test/test_memory_leaks.py rename : python/psutil/test/test_psutil.py => third_party/python/psutil/test/test_psutil.py rename : python/psutil/tox.ini => third_party/python/psutil/tox.ini rename : python/py/AUTHORS => third_party/python/py/AUTHORS rename : python/py/LICENSE => third_party/python/py/LICENSE rename : python/py/MANIFEST.in => third_party/python/py/MANIFEST.in rename : python/py/PKG-INFO => third_party/python/py/PKG-INFO rename : python/py/README.txt => third_party/python/py/README.txt rename : python/py/py/__init__.py => third_party/python/py/py/__init__.py rename : python/py/py/__metainfo.py => third_party/python/py/py/__metainfo.py rename : python/py/py/_apipkg.py => third_party/python/py/py/_apipkg.py rename : python/py/py/_builtin.py => third_party/python/py/py/_builtin.py rename : python/py/py/_code/__init__.py => third_party/python/py/py/_code/__init__.py rename : python/py/py/_code/_assertionnew.py => third_party/python/py/py/_code/_assertionnew.py rename : python/py/py/_code/_assertionold.py => third_party/python/py/py/_code/_assertionold.py rename : python/py/py/_code/_py2traceback.py => third_party/python/py/py/_code/_py2traceback.py rename : python/py/py/_code/assertion.py => third_party/python/py/py/_code/assertion.py rename : python/py/py/_code/code.py => third_party/python/py/py/_code/code.py rename : python/py/py/_code/source.py => third_party/python/py/py/_code/source.py rename : python/py/py/_error.py => third_party/python/py/py/_error.py rename : python/py/py/_iniconfig.py => third_party/python/py/py/_iniconfig.py rename : python/py/py/_io/__init__.py => third_party/python/py/py/_io/__init__.py rename : python/py/py/_io/capture.py => third_party/python/py/py/_io/capture.py rename : python/py/py/_io/saferepr.py => third_party/python/py/py/_io/saferepr.py rename : python/py/py/_io/terminalwriter.py => third_party/python/py/py/_io/terminalwriter.py rename : python/py/py/_log/__init__.py => third_party/python/py/py/_log/__init__.py rename : python/py/py/_log/log.py => third_party/python/py/py/_log/log.py rename : python/py/py/_log/warning.py => third_party/python/py/py/_log/warning.py rename : python/py/py/_path/__init__.py => third_party/python/py/py/_path/__init__.py rename : python/py/py/_path/cacheutil.py => third_party/python/py/py/_path/cacheutil.py rename : python/py/py/_path/common.py => third_party/python/py/py/_path/common.py rename : python/py/py/_path/local.py => third_party/python/py/py/_path/local.py rename : python/py/py/_path/svnurl.py => third_party/python/py/py/_path/svnurl.py rename : python/py/py/_path/svnwc.py => third_party/python/py/py/_path/svnwc.py rename : python/py/py/_process/__init__.py => third_party/python/py/py/_process/__init__.py rename : python/py/py/_process/cmdexec.py => third_party/python/py/py/_process/cmdexec.py rename : python/py/py/_process/forkedfunc.py => third_party/python/py/py/_process/forkedfunc.py rename : python/py/py/_process/killproc.py => third_party/python/py/py/_process/killproc.py rename : python/py/py/_std.py => third_party/python/py/py/_std.py rename : python/py/py/_xmlgen.py => third_party/python/py/py/_xmlgen.py rename : python/py/py/test.py => third_party/python/py/py/test.py rename : python/py/setup.cfg => third_party/python/py/setup.cfg rename : python/py/setup.py => third_party/python/py/setup.py rename : python/pyasn1-modules/CHANGES => third_party/python/pyasn1-modules/CHANGES rename : python/pyasn1-modules/LICENSE => third_party/python/pyasn1-modules/LICENSE rename : python/pyasn1-modules/MANIFEST.in => third_party/python/pyasn1-modules/MANIFEST.in rename : python/pyasn1-modules/PKG-INFO => third_party/python/pyasn1-modules/PKG-INFO rename : python/pyasn1-modules/README => third_party/python/pyasn1-modules/README rename : python/pyasn1-modules/pyasn1_modules.egg-info/PKG-INFO => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/PKG-INFO rename : python/pyasn1-modules/pyasn1_modules.egg-info/SOURCES.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/SOURCES.txt rename : python/pyasn1-modules/pyasn1_modules.egg-info/dependency_links.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/dependency_links.txt rename : python/pyasn1-modules/pyasn1_modules.egg-info/requires.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/requires.txt rename : python/pyasn1-modules/pyasn1_modules.egg-info/top_level.txt => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/top_level.txt rename : python/pyasn1-modules/pyasn1_modules.egg-info/zip-safe => third_party/python/pyasn1-modules/pyasn1_modules.egg-info/zip-safe rename : python/pyasn1-modules/pyasn1_modules/__init__.py => third_party/python/pyasn1-modules/pyasn1_modules/__init__.py rename : python/pyasn1-modules/pyasn1_modules/pem.py => third_party/python/pyasn1-modules/pyasn1_modules/pem.py rename : python/pyasn1-modules/pyasn1_modules/pkcs12.py => third_party/python/pyasn1-modules/pyasn1_modules/pkcs12.py rename : python/pyasn1-modules/pyasn1_modules/rfc1155.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1155.py rename : python/pyasn1-modules/pyasn1_modules/rfc1157.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1157.py rename : python/pyasn1-modules/pyasn1_modules/rfc1901.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1901.py rename : python/pyasn1-modules/pyasn1_modules/rfc1902.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1902.py rename : python/pyasn1-modules/pyasn1_modules/rfc1905.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc1905.py rename : python/pyasn1-modules/pyasn1_modules/rfc2251.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2251.py rename : python/pyasn1-modules/pyasn1_modules/rfc2314.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2314.py rename : python/pyasn1-modules/pyasn1_modules/rfc2315.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2315.py rename : python/pyasn1-modules/pyasn1_modules/rfc2437.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2437.py rename : python/pyasn1-modules/pyasn1_modules/rfc2459.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2459.py rename : python/pyasn1-modules/pyasn1_modules/rfc2511.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2511.py rename : python/pyasn1-modules/pyasn1_modules/rfc2560.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc2560.py rename : python/pyasn1-modules/pyasn1_modules/rfc3412.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc3412.py rename : python/pyasn1-modules/pyasn1_modules/rfc3414.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc3414.py rename : python/pyasn1-modules/pyasn1_modules/rfc3447.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc3447.py rename : python/pyasn1-modules/pyasn1_modules/rfc4210.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc4210.py rename : python/pyasn1-modules/pyasn1_modules/rfc5208.py => third_party/python/pyasn1-modules/pyasn1_modules/rfc5208.py rename : python/pyasn1-modules/setup.cfg => third_party/python/pyasn1-modules/setup.cfg rename : python/pyasn1-modules/setup.py => third_party/python/pyasn1-modules/setup.py rename : python/pyasn1-modules/test/cmp.sh => third_party/python/pyasn1-modules/test/cmp.sh rename : python/pyasn1-modules/test/crl.sh => third_party/python/pyasn1-modules/test/crl.sh rename : python/pyasn1-modules/test/crmf.sh => third_party/python/pyasn1-modules/test/crmf.sh rename : python/pyasn1-modules/test/ocspreq.sh => third_party/python/pyasn1-modules/test/ocspreq.sh rename : python/pyasn1-modules/test/ocsprsp.sh => third_party/python/pyasn1-modules/test/ocsprsp.sh rename : python/pyasn1-modules/test/pkcs1.sh => third_party/python/pyasn1-modules/test/pkcs1.sh rename : python/pyasn1-modules/test/pkcs10.sh => third_party/python/pyasn1-modules/test/pkcs10.sh rename : python/pyasn1-modules/test/pkcs7.sh => third_party/python/pyasn1-modules/test/pkcs7.sh rename : python/pyasn1-modules/test/pkcs8.sh => third_party/python/pyasn1-modules/test/pkcs8.sh rename : python/pyasn1-modules/test/x509dump.sh => third_party/python/pyasn1-modules/test/x509dump.sh rename : python/pyasn1-modules/tools/cmpdump.py => third_party/python/pyasn1-modules/tools/cmpdump.py rename : python/pyasn1-modules/tools/crldump.py => third_party/python/pyasn1-modules/tools/crldump.py rename : python/pyasn1-modules/tools/crmfdump.py => third_party/python/pyasn1-modules/tools/crmfdump.py rename : python/pyasn1-modules/tools/ocspclient.py => third_party/python/pyasn1-modules/tools/ocspclient.py rename : python/pyasn1-modules/tools/ocspreqdump.py => third_party/python/pyasn1-modules/tools/ocspreqdump.py rename : python/pyasn1-modules/tools/ocsprspdump.py => third_party/python/pyasn1-modules/tools/ocsprspdump.py rename : python/pyasn1-modules/tools/ocspserver.py => third_party/python/pyasn1-modules/tools/ocspserver.py rename : python/pyasn1-modules/tools/pkcs10dump.py => third_party/python/pyasn1-modules/tools/pkcs10dump.py rename : python/pyasn1-modules/tools/pkcs1dump.py => third_party/python/pyasn1-modules/tools/pkcs1dump.py rename : python/pyasn1-modules/tools/pkcs7dump.py => third_party/python/pyasn1-modules/tools/pkcs7dump.py rename : python/pyasn1-modules/tools/pkcs8dump.py => third_party/python/pyasn1-modules/tools/pkcs8dump.py rename : python/pyasn1-modules/tools/snmpget.py => third_party/python/pyasn1-modules/tools/snmpget.py rename : python/pyasn1-modules/tools/x509dump.py => third_party/python/pyasn1-modules/tools/x509dump.py rename : python/pyasn1/CHANGES => third_party/python/pyasn1/CHANGES rename : python/pyasn1/LICENSE => third_party/python/pyasn1/LICENSE rename : python/pyasn1/MANIFEST.in => third_party/python/pyasn1/MANIFEST.in rename : python/pyasn1/PKG-INFO => third_party/python/pyasn1/PKG-INFO rename : python/pyasn1/README => third_party/python/pyasn1/README rename : python/pyasn1/THANKS => third_party/python/pyasn1/THANKS rename : python/pyasn1/TODO => third_party/python/pyasn1/TODO rename : python/pyasn1/doc/codecs.html => third_party/python/pyasn1/doc/codecs.html rename : python/pyasn1/doc/constraints.html => third_party/python/pyasn1/doc/constraints.html rename : python/pyasn1/doc/constructed.html => third_party/python/pyasn1/doc/constructed.html rename : python/pyasn1/doc/intro.html => third_party/python/pyasn1/doc/intro.html rename : python/pyasn1/doc/pyasn1-tutorial.html => third_party/python/pyasn1/doc/pyasn1-tutorial.html rename : python/pyasn1/doc/scalar.html => third_party/python/pyasn1/doc/scalar.html rename : python/pyasn1/doc/tagging.html => third_party/python/pyasn1/doc/tagging.html rename : python/pyasn1/pyasn1.egg-info/PKG-INFO => third_party/python/pyasn1/pyasn1.egg-info/PKG-INFO rename : python/pyasn1/pyasn1.egg-info/SOURCES.txt => third_party/python/pyasn1/pyasn1.egg-info/SOURCES.txt rename : python/pyasn1/pyasn1.egg-info/dependency_links.txt => third_party/python/pyasn1/pyasn1.egg-info/dependency_links.txt rename : python/pyasn1/pyasn1.egg-info/top_level.txt => third_party/python/pyasn1/pyasn1.egg-info/top_level.txt rename : python/pyasn1/pyasn1.egg-info/zip-safe => third_party/python/pyasn1/pyasn1.egg-info/zip-safe rename : python/pyasn1/pyasn1/__init__.py => third_party/python/pyasn1/pyasn1/__init__.py rename : python/pyasn1/pyasn1/codec/__init__.py => third_party/python/pyasn1/pyasn1/codec/__init__.py rename : python/pyasn1/pyasn1/codec/ber/__init__.py => third_party/python/pyasn1/pyasn1/codec/ber/__init__.py rename : python/pyasn1/pyasn1/codec/ber/decoder.py => third_party/python/pyasn1/pyasn1/codec/ber/decoder.py rename : python/pyasn1/pyasn1/codec/ber/encoder.py => third_party/python/pyasn1/pyasn1/codec/ber/encoder.py rename : python/pyasn1/pyasn1/codec/ber/eoo.py => third_party/python/pyasn1/pyasn1/codec/ber/eoo.py rename : python/pyasn1/pyasn1/codec/cer/__init__.py => third_party/python/pyasn1/pyasn1/codec/cer/__init__.py rename : python/pyasn1/pyasn1/codec/cer/decoder.py => third_party/python/pyasn1/pyasn1/codec/cer/decoder.py rename : python/pyasn1/pyasn1/codec/cer/encoder.py => third_party/python/pyasn1/pyasn1/codec/cer/encoder.py rename : python/pyasn1/pyasn1/codec/der/__init__.py => third_party/python/pyasn1/pyasn1/codec/der/__init__.py rename : python/pyasn1/pyasn1/codec/der/decoder.py => third_party/python/pyasn1/pyasn1/codec/der/decoder.py rename : python/pyasn1/pyasn1/codec/der/encoder.py => third_party/python/pyasn1/pyasn1/codec/der/encoder.py rename : python/pyasn1/pyasn1/compat/__init__.py => third_party/python/pyasn1/pyasn1/compat/__init__.py rename : python/pyasn1/pyasn1/compat/octets.py => third_party/python/pyasn1/pyasn1/compat/octets.py rename : python/pyasn1/pyasn1/debug.py => third_party/python/pyasn1/pyasn1/debug.py rename : python/pyasn1/pyasn1/error.py => third_party/python/pyasn1/pyasn1/error.py rename : python/pyasn1/pyasn1/type/__init__.py => third_party/python/pyasn1/pyasn1/type/__init__.py rename : python/pyasn1/pyasn1/type/base.py => third_party/python/pyasn1/pyasn1/type/base.py rename : python/pyasn1/pyasn1/type/char.py => third_party/python/pyasn1/pyasn1/type/char.py rename : python/pyasn1/pyasn1/type/constraint.py => third_party/python/pyasn1/pyasn1/type/constraint.py rename : python/pyasn1/pyasn1/type/error.py => third_party/python/pyasn1/pyasn1/type/error.py rename : python/pyasn1/pyasn1/type/namedtype.py => third_party/python/pyasn1/pyasn1/type/namedtype.py rename : python/pyasn1/pyasn1/type/namedval.py => third_party/python/pyasn1/pyasn1/type/namedval.py rename : python/pyasn1/pyasn1/type/tag.py => third_party/python/pyasn1/pyasn1/type/tag.py rename : python/pyasn1/pyasn1/type/tagmap.py => third_party/python/pyasn1/pyasn1/type/tagmap.py rename : python/pyasn1/pyasn1/type/univ.py => third_party/python/pyasn1/pyasn1/type/univ.py rename : python/pyasn1/pyasn1/type/useful.py => third_party/python/pyasn1/pyasn1/type/useful.py rename : python/pyasn1/setup.cfg => third_party/python/pyasn1/setup.cfg rename : python/pyasn1/setup.py => third_party/python/pyasn1/setup.py rename : python/pyasn1/test/__init__.py => third_party/python/pyasn1/test/__init__.py rename : python/pyasn1/test/codec/__init__.py => third_party/python/pyasn1/test/codec/__init__.py rename : python/pyasn1/test/codec/ber/__init__.py => third_party/python/pyasn1/test/codec/ber/__init__.py rename : python/pyasn1/test/codec/ber/suite.py => third_party/python/pyasn1/test/codec/ber/suite.py rename : python/pyasn1/test/codec/ber/test_decoder.py => third_party/python/pyasn1/test/codec/ber/test_decoder.py rename : python/pyasn1/test/codec/ber/test_encoder.py => third_party/python/pyasn1/test/codec/ber/test_encoder.py rename : python/pyasn1/test/codec/cer/__init__.py => third_party/python/pyasn1/test/codec/cer/__init__.py rename : python/pyasn1/test/codec/cer/suite.py => third_party/python/pyasn1/test/codec/cer/suite.py rename : python/pyasn1/test/codec/cer/test_decoder.py => third_party/python/pyasn1/test/codec/cer/test_decoder.py rename : python/pyasn1/test/codec/cer/test_encoder.py => third_party/python/pyasn1/test/codec/cer/test_encoder.py rename : python/pyasn1/test/codec/der/__init__.py => third_party/python/pyasn1/test/codec/der/__init__.py rename : python/pyasn1/test/codec/der/suite.py => third_party/python/pyasn1/test/codec/der/suite.py rename : python/pyasn1/test/codec/der/test_decoder.py => third_party/python/pyasn1/test/codec/der/test_decoder.py rename : python/pyasn1/test/codec/der/test_encoder.py => third_party/python/pyasn1/test/codec/der/test_encoder.py rename : python/pyasn1/test/codec/suite.py => third_party/python/pyasn1/test/codec/suite.py rename : python/pyasn1/test/suite.py => third_party/python/pyasn1/test/suite.py rename : python/pyasn1/test/type/__init__.py => third_party/python/pyasn1/test/type/__init__.py rename : python/pyasn1/test/type/suite.py => third_party/python/pyasn1/test/type/suite.py rename : python/pyasn1/test/type/test_constraint.py => third_party/python/pyasn1/test/type/test_constraint.py rename : python/pyasn1/test/type/test_namedtype.py => third_party/python/pyasn1/test/type/test_namedtype.py rename : python/pyasn1/test/type/test_tag.py => third_party/python/pyasn1/test/type/test_tag.py rename : python/pyasn1/test/type/test_univ.py => third_party/python/pyasn1/test/type/test_univ.py rename : python/pylru/pylru.py => third_party/python/pylru/pylru.py rename : python/pylru/test.py => third_party/python/pylru/test.py rename : python/pystache/.gitignore => third_party/python/pystache/.gitignore rename : python/pystache/.gitmodules => third_party/python/pystache/.gitmodules rename : python/pystache/.travis.yml => third_party/python/pystache/.travis.yml rename : python/pystache/HISTORY.md => third_party/python/pystache/HISTORY.md rename : python/pystache/LICENSE => third_party/python/pystache/LICENSE rename : python/pystache/MANIFEST.in => third_party/python/pystache/MANIFEST.in rename : python/pystache/README.md => third_party/python/pystache/README.md rename : python/pystache/TODO.md => third_party/python/pystache/TODO.md rename : python/pystache/gh/images/logo_phillips.png => third_party/python/pystache/gh/images/logo_phillips.png rename : python/pystache/pystache/__init__.py => third_party/python/pystache/pystache/__init__.py rename : python/pystache/pystache/commands/__init__.py => third_party/python/pystache/pystache/commands/__init__.py rename : python/pystache/pystache/commands/render.py => third_party/python/pystache/pystache/commands/render.py rename : python/pystache/pystache/commands/test.py => third_party/python/pystache/pystache/commands/test.py rename : python/pystache/pystache/common.py => third_party/python/pystache/pystache/common.py rename : python/pystache/pystache/context.py => third_party/python/pystache/pystache/context.py rename : python/pystache/pystache/defaults.py => third_party/python/pystache/pystache/defaults.py rename : python/pystache/pystache/init.py => third_party/python/pystache/pystache/init.py rename : python/pystache/pystache/loader.py => third_party/python/pystache/pystache/loader.py rename : python/pystache/pystache/locator.py => third_party/python/pystache/pystache/locator.py rename : python/pystache/pystache/parsed.py => third_party/python/pystache/pystache/parsed.py rename : python/pystache/pystache/parser.py => third_party/python/pystache/pystache/parser.py rename : python/pystache/pystache/renderengine.py => third_party/python/pystache/pystache/renderengine.py rename : python/pystache/pystache/renderer.py => third_party/python/pystache/pystache/renderer.py rename : python/pystache/pystache/specloader.py => third_party/python/pystache/pystache/specloader.py rename : python/pystache/pystache/template_spec.py => third_party/python/pystache/pystache/template_spec.py rename : python/pystache/setup.py => third_party/python/pystache/setup.py rename : python/pystache/setup_description.rst => third_party/python/pystache/setup_description.rst rename : python/pystache/test_pystache.py => third_party/python/pystache/test_pystache.py rename : python/pystache/tox.ini => third_party/python/pystache/tox.ini rename : python/pytest/.coveragerc => third_party/python/pytest/.coveragerc rename : python/pytest/AUTHORS => third_party/python/pytest/AUTHORS rename : python/pytest/LICENSE => third_party/python/pytest/LICENSE rename : python/pytest/MANIFEST.in => third_party/python/pytest/MANIFEST.in rename : python/pytest/PKG-INFO => third_party/python/pytest/PKG-INFO rename : python/pytest/README.rst => third_party/python/pytest/README.rst rename : python/pytest/_pytest/__init__.py => third_party/python/pytest/_pytest/__init__.py rename : python/pytest/_pytest/_argcomplete.py => third_party/python/pytest/_pytest/_argcomplete.py rename : python/pytest/_pytest/_code/__init__.py => third_party/python/pytest/_pytest/_code/__init__.py rename : python/pytest/_pytest/_code/_py2traceback.py => third_party/python/pytest/_pytest/_code/_py2traceback.py rename : python/pytest/_pytest/_code/code.py => third_party/python/pytest/_pytest/_code/code.py rename : python/pytest/_pytest/_code/source.py => third_party/python/pytest/_pytest/_code/source.py rename : python/pytest/_pytest/_pluggy.py => third_party/python/pytest/_pytest/_pluggy.py rename : python/pytest/_pytest/assertion/__init__.py => third_party/python/pytest/_pytest/assertion/__init__.py rename : python/pytest/_pytest/assertion/reinterpret.py => third_party/python/pytest/_pytest/assertion/reinterpret.py rename : python/pytest/_pytest/assertion/rewrite.py => third_party/python/pytest/_pytest/assertion/rewrite.py rename : python/pytest/_pytest/assertion/util.py => third_party/python/pytest/_pytest/assertion/util.py rename : python/pytest/_pytest/cacheprovider.py => third_party/python/pytest/_pytest/cacheprovider.py rename : python/pytest/_pytest/capture.py => third_party/python/pytest/_pytest/capture.py rename : python/pytest/_pytest/config.py => third_party/python/pytest/_pytest/config.py rename : python/pytest/_pytest/doctest.py => third_party/python/pytest/_pytest/doctest.py rename : python/pytest/_pytest/genscript.py => third_party/python/pytest/_pytest/genscript.py rename : python/pytest/_pytest/helpconfig.py => third_party/python/pytest/_pytest/helpconfig.py rename : python/pytest/_pytest/hookspec.py => third_party/python/pytest/_pytest/hookspec.py rename : python/pytest/_pytest/junitxml.py => third_party/python/pytest/_pytest/junitxml.py rename : python/pytest/_pytest/main.py => third_party/python/pytest/_pytest/main.py rename : python/pytest/_pytest/mark.py => third_party/python/pytest/_pytest/mark.py rename : python/pytest/_pytest/monkeypatch.py => third_party/python/pytest/_pytest/monkeypatch.py rename : python/pytest/_pytest/nose.py => third_party/python/pytest/_pytest/nose.py rename : python/pytest/_pytest/pastebin.py => third_party/python/pytest/_pytest/pastebin.py rename : python/pytest/_pytest/pdb.py => third_party/python/pytest/_pytest/pdb.py rename : python/pytest/_pytest/pytester.py => third_party/python/pytest/_pytest/pytester.py rename : python/pytest/_pytest/python.py => third_party/python/pytest/_pytest/python.py rename : python/pytest/_pytest/recwarn.py => third_party/python/pytest/_pytest/recwarn.py rename : python/pytest/_pytest/resultlog.py => third_party/python/pytest/_pytest/resultlog.py rename : python/pytest/_pytest/runner.py => third_party/python/pytest/_pytest/runner.py rename : python/pytest/_pytest/skipping.py => third_party/python/pytest/_pytest/skipping.py rename : python/pytest/_pytest/standalonetemplate.py => third_party/python/pytest/_pytest/standalonetemplate.py rename : python/pytest/_pytest/terminal.py => third_party/python/pytest/_pytest/terminal.py rename : python/pytest/_pytest/tmpdir.py => third_party/python/pytest/_pytest/tmpdir.py rename : python/pytest/_pytest/unittest.py => third_party/python/pytest/_pytest/unittest.py rename : python/pytest/_pytest/vendored_packages/README.md => third_party/python/pytest/_pytest/vendored_packages/README.md rename : python/pytest/_pytest/vendored_packages/__init__.py => third_party/python/pytest/_pytest/vendored_packages/__init__.py rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/DESCRIPTION.rst => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/DESCRIPTION.rst rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/METADATA => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/METADATA rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/RECORD => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/RECORD rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/WHEEL => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/WHEEL rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/metadata.json => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/metadata.json rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/pbr.json => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/pbr.json rename : python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/top_level.txt => third_party/python/pytest/_pytest/vendored_packages/pluggy-0.3.1.dist-info/top_level.txt rename : python/pytest/_pytest/vendored_packages/pluggy.py => third_party/python/pytest/_pytest/vendored_packages/pluggy.py rename : python/pytest/pytest.py => third_party/python/pytest/pytest.py rename : python/pytest/setup.cfg => third_party/python/pytest/setup.cfg rename : python/pytest/setup.py => third_party/python/pytest/setup.py rename : python/pytoml/PKG-INFO => third_party/python/pytoml/PKG-INFO rename : python/pytoml/pytoml/__init__.py => third_party/python/pytoml/pytoml/__init__.py rename : python/pytoml/pytoml/core.py => third_party/python/pytoml/pytoml/core.py rename : python/pytoml/pytoml/parser.py => third_party/python/pytoml/pytoml/parser.py rename : python/pytoml/pytoml/writer.py => third_party/python/pytoml/pytoml/writer.py rename : python/pytoml/setup.cfg => third_party/python/pytoml/setup.cfg rename : python/pytoml/setup.py => third_party/python/pytoml/setup.py rename : python/pytoml/test/test.py => third_party/python/pytoml/test/test.py rename : python/pyyaml/CHANGES => third_party/python/pyyaml/CHANGES rename : python/pyyaml/LICENSE => third_party/python/pyyaml/LICENSE rename : python/pyyaml/PKG-INFO => third_party/python/pyyaml/PKG-INFO rename : python/pyyaml/README => third_party/python/pyyaml/README rename : python/pyyaml/examples/pygments-lexer/example.yaml => third_party/python/pyyaml/examples/pygments-lexer/example.yaml rename : python/pyyaml/examples/pygments-lexer/yaml.py => third_party/python/pyyaml/examples/pygments-lexer/yaml.py rename : python/pyyaml/examples/yaml-highlight/yaml_hl.cfg => third_party/python/pyyaml/examples/yaml-highlight/yaml_hl.cfg rename : python/pyyaml/examples/yaml-highlight/yaml_hl.py => third_party/python/pyyaml/examples/yaml-highlight/yaml_hl.py rename : python/pyyaml/ext/_yaml.c => third_party/python/pyyaml/ext/_yaml.c rename : python/pyyaml/ext/_yaml.h => third_party/python/pyyaml/ext/_yaml.h rename : python/pyyaml/ext/_yaml.pxd => third_party/python/pyyaml/ext/_yaml.pxd rename : python/pyyaml/ext/_yaml.pyx => third_party/python/pyyaml/ext/_yaml.pyx rename : python/pyyaml/lib/yaml/__init__.py => third_party/python/pyyaml/lib/yaml/__init__.py rename : python/pyyaml/lib/yaml/composer.py => third_party/python/pyyaml/lib/yaml/composer.py rename : python/pyyaml/lib/yaml/constructor.py => third_party/python/pyyaml/lib/yaml/constructor.py rename : python/pyyaml/lib/yaml/cyaml.py => third_party/python/pyyaml/lib/yaml/cyaml.py rename : python/pyyaml/lib/yaml/dumper.py => third_party/python/pyyaml/lib/yaml/dumper.py rename : python/pyyaml/lib/yaml/emitter.py => third_party/python/pyyaml/lib/yaml/emitter.py rename : python/pyyaml/lib/yaml/error.py => third_party/python/pyyaml/lib/yaml/error.py rename : python/pyyaml/lib/yaml/events.py => third_party/python/pyyaml/lib/yaml/events.py rename : python/pyyaml/lib/yaml/loader.py => third_party/python/pyyaml/lib/yaml/loader.py rename : python/pyyaml/lib/yaml/nodes.py => third_party/python/pyyaml/lib/yaml/nodes.py rename : python/pyyaml/lib/yaml/parser.py => third_party/python/pyyaml/lib/yaml/parser.py rename : python/pyyaml/lib/yaml/reader.py => third_party/python/pyyaml/lib/yaml/reader.py rename : python/pyyaml/lib/yaml/representer.py => third_party/python/pyyaml/lib/yaml/representer.py rename : python/pyyaml/lib/yaml/resolver.py => third_party/python/pyyaml/lib/yaml/resolver.py rename : python/pyyaml/lib/yaml/scanner.py => third_party/python/pyyaml/lib/yaml/scanner.py rename : python/pyyaml/lib/yaml/serializer.py => third_party/python/pyyaml/lib/yaml/serializer.py rename : python/pyyaml/lib/yaml/tokens.py => third_party/python/pyyaml/lib/yaml/tokens.py rename : python/pyyaml/lib3/yaml/__init__.py => third_party/python/pyyaml/lib3/yaml/__init__.py rename : python/pyyaml/lib3/yaml/composer.py => third_party/python/pyyaml/lib3/yaml/composer.py rename : python/pyyaml/lib3/yaml/constructor.py => third_party/python/pyyaml/lib3/yaml/constructor.py rename : python/pyyaml/lib3/yaml/cyaml.py => third_party/python/pyyaml/lib3/yaml/cyaml.py rename : python/pyyaml/lib3/yaml/dumper.py => third_party/python/pyyaml/lib3/yaml/dumper.py rename : python/pyyaml/lib3/yaml/emitter.py => third_party/python/pyyaml/lib3/yaml/emitter.py rename : python/pyyaml/lib3/yaml/error.py => third_party/python/pyyaml/lib3/yaml/error.py rename : python/pyyaml/lib3/yaml/events.py => third_party/python/pyyaml/lib3/yaml/events.py rename : python/pyyaml/lib3/yaml/loader.py => third_party/python/pyyaml/lib3/yaml/loader.py rename : python/pyyaml/lib3/yaml/nodes.py => third_party/python/pyyaml/lib3/yaml/nodes.py rename : python/pyyaml/lib3/yaml/parser.py => third_party/python/pyyaml/lib3/yaml/parser.py rename : python/pyyaml/lib3/yaml/reader.py => third_party/python/pyyaml/lib3/yaml/reader.py rename : python/pyyaml/lib3/yaml/representer.py => third_party/python/pyyaml/lib3/yaml/representer.py rename : python/pyyaml/lib3/yaml/resolver.py => third_party/python/pyyaml/lib3/yaml/resolver.py rename : python/pyyaml/lib3/yaml/scanner.py => third_party/python/pyyaml/lib3/yaml/scanner.py rename : python/pyyaml/lib3/yaml/serializer.py => third_party/python/pyyaml/lib3/yaml/serializer.py rename : python/pyyaml/lib3/yaml/tokens.py => third_party/python/pyyaml/lib3/yaml/tokens.py rename : python/pyyaml/setup.cfg => third_party/python/pyyaml/setup.cfg rename : python/pyyaml/setup.py => third_party/python/pyyaml/setup.py rename : python/redo/PKG-INFO => third_party/python/redo/PKG-INFO rename : python/redo/README => third_party/python/redo/README rename : python/redo/redo.egg-info/PKG-INFO => third_party/python/redo/redo.egg-info/PKG-INFO rename : python/redo/redo.egg-info/SOURCES.txt => third_party/python/redo/redo.egg-info/SOURCES.txt rename : python/redo/redo.egg-info/dependency_links.txt => third_party/python/redo/redo.egg-info/dependency_links.txt rename : python/redo/redo.egg-info/entry_points.txt => third_party/python/redo/redo.egg-info/entry_points.txt rename : python/redo/redo.egg-info/top_level.txt => third_party/python/redo/redo.egg-info/top_level.txt rename : python/redo/redo/__init__.py => third_party/python/redo/redo/__init__.py rename : python/redo/redo/cmd.py => third_party/python/redo/redo/cmd.py rename : python/redo/setup.cfg => third_party/python/redo/setup.cfg rename : python/redo/setup.py => third_party/python/redo/setup.py rename : python/requests/HISTORY.rst => third_party/python/requests/HISTORY.rst rename : python/requests/LICENSE => third_party/python/requests/LICENSE rename : python/requests/MANIFEST.in => third_party/python/requests/MANIFEST.in rename : python/requests/NOTICE => third_party/python/requests/NOTICE rename : python/requests/PKG-INFO => third_party/python/requests/PKG-INFO rename : python/requests/README.rst => third_party/python/requests/README.rst rename : python/requests/requests.egg-info/PKG-INFO => third_party/python/requests/requests.egg-info/PKG-INFO rename : python/requests/requests.egg-info/SOURCES.txt => third_party/python/requests/requests.egg-info/SOURCES.txt rename : python/requests/requests.egg-info/dependency_links.txt => third_party/python/requests/requests.egg-info/dependency_links.txt rename : python/requests/requests.egg-info/not-zip-safe => third_party/python/requests/requests.egg-info/not-zip-safe rename : python/requests/requests.egg-info/requires.txt => third_party/python/requests/requests.egg-info/requires.txt rename : python/requests/requests.egg-info/top_level.txt => third_party/python/requests/requests.egg-info/top_level.txt rename : python/requests/requests/__init__.py => third_party/python/requests/requests/__init__.py rename : python/requests/requests/adapters.py => third_party/python/requests/requests/adapters.py rename : python/requests/requests/api.py => third_party/python/requests/requests/api.py rename : python/requests/requests/auth.py => third_party/python/requests/requests/auth.py rename : python/requests/requests/cacert.pem => third_party/python/requests/requests/cacert.pem rename : python/requests/requests/certs.py => third_party/python/requests/requests/certs.py rename : python/requests/requests/compat.py => third_party/python/requests/requests/compat.py rename : python/requests/requests/cookies.py => third_party/python/requests/requests/cookies.py rename : python/requests/requests/exceptions.py => third_party/python/requests/requests/exceptions.py rename : python/requests/requests/hooks.py => third_party/python/requests/requests/hooks.py rename : python/requests/requests/models.py => third_party/python/requests/requests/models.py rename : python/requests/requests/packages/__init__.py => third_party/python/requests/requests/packages/__init__.py rename : python/requests/requests/packages/chardet/__init__.py => third_party/python/requests/requests/packages/chardet/__init__.py rename : python/requests/requests/packages/chardet/big5freq.py => third_party/python/requests/requests/packages/chardet/big5freq.py rename : python/requests/requests/packages/chardet/big5prober.py => third_party/python/requests/requests/packages/chardet/big5prober.py rename : python/requests/requests/packages/chardet/chardetect.py => third_party/python/requests/requests/packages/chardet/chardetect.py rename : python/requests/requests/packages/chardet/chardistribution.py => third_party/python/requests/requests/packages/chardet/chardistribution.py rename : python/requests/requests/packages/chardet/charsetgroupprober.py => third_party/python/requests/requests/packages/chardet/charsetgroupprober.py rename : python/requests/requests/packages/chardet/charsetprober.py => third_party/python/requests/requests/packages/chardet/charsetprober.py rename : python/requests/requests/packages/chardet/codingstatemachine.py => third_party/python/requests/requests/packages/chardet/codingstatemachine.py rename : python/requests/requests/packages/chardet/compat.py => third_party/python/requests/requests/packages/chardet/compat.py rename : python/requests/requests/packages/chardet/constants.py => third_party/python/requests/requests/packages/chardet/constants.py rename : python/requests/requests/packages/chardet/cp949prober.py => third_party/python/requests/requests/packages/chardet/cp949prober.py rename : python/requests/requests/packages/chardet/escprober.py => third_party/python/requests/requests/packages/chardet/escprober.py rename : python/requests/requests/packages/chardet/escsm.py => third_party/python/requests/requests/packages/chardet/escsm.py rename : python/requests/requests/packages/chardet/eucjpprober.py => third_party/python/requests/requests/packages/chardet/eucjpprober.py rename : python/requests/requests/packages/chardet/euckrfreq.py => third_party/python/requests/requests/packages/chardet/euckrfreq.py rename : python/requests/requests/packages/chardet/euckrprober.py => third_party/python/requests/requests/packages/chardet/euckrprober.py rename : python/requests/requests/packages/chardet/euctwfreq.py => third_party/python/requests/requests/packages/chardet/euctwfreq.py rename : python/requests/requests/packages/chardet/euctwprober.py => third_party/python/requests/requests/packages/chardet/euctwprober.py rename : python/requests/requests/packages/chardet/gb2312freq.py => third_party/python/requests/requests/packages/chardet/gb2312freq.py rename : python/requests/requests/packages/chardet/gb2312prober.py => third_party/python/requests/requests/packages/chardet/gb2312prober.py rename : python/requests/requests/packages/chardet/hebrewprober.py => third_party/python/requests/requests/packages/chardet/hebrewprober.py rename : python/requests/requests/packages/chardet/jisfreq.py => third_party/python/requests/requests/packages/chardet/jisfreq.py rename : python/requests/requests/packages/chardet/jpcntx.py => third_party/python/requests/requests/packages/chardet/jpcntx.py rename : python/requests/requests/packages/chardet/langbulgarianmodel.py => third_party/python/requests/requests/packages/chardet/langbulgarianmodel.py rename : python/requests/requests/packages/chardet/langcyrillicmodel.py => third_party/python/requests/requests/packages/chardet/langcyrillicmodel.py rename : python/requests/requests/packages/chardet/langgreekmodel.py => third_party/python/requests/requests/packages/chardet/langgreekmodel.py rename : python/requests/requests/packages/chardet/langhebrewmodel.py => third_party/python/requests/requests/packages/chardet/langhebrewmodel.py rename : python/requests/requests/packages/chardet/langhungarianmodel.py => third_party/python/requests/requests/packages/chardet/langhungarianmodel.py rename : python/requests/requests/packages/chardet/langthaimodel.py => third_party/python/requests/requests/packages/chardet/langthaimodel.py rename : python/requests/requests/packages/chardet/latin1prober.py => third_party/python/requests/requests/packages/chardet/latin1prober.py rename : python/requests/requests/packages/chardet/mbcharsetprober.py => third_party/python/requests/requests/packages/chardet/mbcharsetprober.py rename : python/requests/requests/packages/chardet/mbcsgroupprober.py => third_party/python/requests/requests/packages/chardet/mbcsgroupprober.py rename : python/requests/requests/packages/chardet/mbcssm.py => third_party/python/requests/requests/packages/chardet/mbcssm.py rename : python/requests/requests/packages/chardet/sbcharsetprober.py => third_party/python/requests/requests/packages/chardet/sbcharsetprober.py rename : python/requests/requests/packages/chardet/sbcsgroupprober.py => third_party/python/requests/requests/packages/chardet/sbcsgroupprober.py rename : python/requests/requests/packages/chardet/sjisprober.py => third_party/python/requests/requests/packages/chardet/sjisprober.py rename : python/requests/requests/packages/chardet/universaldetector.py => third_party/python/requests/requests/packages/chardet/universaldetector.py rename : python/requests/requests/packages/chardet/utf8prober.py => third_party/python/requests/requests/packages/chardet/utf8prober.py rename : python/requests/requests/packages/urllib3/__init__.py => third_party/python/requests/requests/packages/urllib3/__init__.py rename : python/requests/requests/packages/urllib3/_collections.py => third_party/python/requests/requests/packages/urllib3/_collections.py rename : python/requests/requests/packages/urllib3/connection.py => third_party/python/requests/requests/packages/urllib3/connection.py rename : python/requests/requests/packages/urllib3/connectionpool.py => third_party/python/requests/requests/packages/urllib3/connectionpool.py rename : python/requests/requests/packages/urllib3/contrib/__init__.py => third_party/python/requests/requests/packages/urllib3/contrib/__init__.py rename : python/requests/requests/packages/urllib3/contrib/appengine.py => third_party/python/requests/requests/packages/urllib3/contrib/appengine.py rename : python/requests/requests/packages/urllib3/contrib/ntlmpool.py => third_party/python/requests/requests/packages/urllib3/contrib/ntlmpool.py rename : python/requests/requests/packages/urllib3/contrib/pyopenssl.py => third_party/python/requests/requests/packages/urllib3/contrib/pyopenssl.py rename : python/requests/requests/packages/urllib3/exceptions.py => third_party/python/requests/requests/packages/urllib3/exceptions.py rename : python/requests/requests/packages/urllib3/fields.py => third_party/python/requests/requests/packages/urllib3/fields.py rename : python/requests/requests/packages/urllib3/filepost.py => third_party/python/requests/requests/packages/urllib3/filepost.py rename : python/requests/requests/packages/urllib3/packages/__init__.py => third_party/python/requests/requests/packages/urllib3/packages/__init__.py rename : python/requests/requests/packages/urllib3/packages/ordered_dict.py => third_party/python/requests/requests/packages/urllib3/packages/ordered_dict.py rename : python/requests/requests/packages/urllib3/packages/six.py => third_party/python/requests/requests/packages/urllib3/packages/six.py rename : python/requests/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py => third_party/python/requests/requests/packages/urllib3/packages/ssl_match_hostname/__init__.py rename : python/requests/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py => third_party/python/requests/requests/packages/urllib3/packages/ssl_match_hostname/_implementation.py rename : python/requests/requests/packages/urllib3/poolmanager.py => third_party/python/requests/requests/packages/urllib3/poolmanager.py rename : python/requests/requests/packages/urllib3/request.py => third_party/python/requests/requests/packages/urllib3/request.py rename : python/requests/requests/packages/urllib3/response.py => third_party/python/requests/requests/packages/urllib3/response.py rename : python/requests/requests/packages/urllib3/util/__init__.py => third_party/python/requests/requests/packages/urllib3/util/__init__.py rename : python/requests/requests/packages/urllib3/util/connection.py => third_party/python/requests/requests/packages/urllib3/util/connection.py rename : python/requests/requests/packages/urllib3/util/request.py => third_party/python/requests/requests/packages/urllib3/util/request.py rename : python/requests/requests/packages/urllib3/util/response.py => third_party/python/requests/requests/packages/urllib3/util/response.py rename : python/requests/requests/packages/urllib3/util/retry.py => third_party/python/requests/requests/packages/urllib3/util/retry.py rename : python/requests/requests/packages/urllib3/util/ssl_.py => third_party/python/requests/requests/packages/urllib3/util/ssl_.py rename : python/requests/requests/packages/urllib3/util/timeout.py => third_party/python/requests/requests/packages/urllib3/util/timeout.py rename : python/requests/requests/packages/urllib3/util/url.py => third_party/python/requests/requests/packages/urllib3/util/url.py rename : python/requests/requests/sessions.py => third_party/python/requests/requests/sessions.py rename : python/requests/requests/status_codes.py => third_party/python/requests/requests/status_codes.py rename : python/requests/requests/structures.py => third_party/python/requests/requests/structures.py rename : python/requests/requests/utils.py => third_party/python/requests/requests/utils.py rename : python/requests/requirements.txt => third_party/python/requests/requirements.txt rename : python/requests/setup.cfg => third_party/python/requests/setup.cfg rename : python/requests/setup.py => third_party/python/requests/setup.py rename : python/requests/test_requests.py => third_party/python/requests/test_requests.py rename : python/rsa/LICENSE => third_party/python/rsa/LICENSE rename : python/rsa/MANIFEST.in => third_party/python/rsa/MANIFEST.in rename : python/rsa/PKG-INFO => third_party/python/rsa/PKG-INFO rename : python/rsa/README.rst => third_party/python/rsa/README.rst rename : python/rsa/create_timing_table.py => third_party/python/rsa/create_timing_table.py rename : python/rsa/playstuff.py => third_party/python/rsa/playstuff.py rename : python/rsa/rsa.egg-info/PKG-INFO => third_party/python/rsa/rsa.egg-info/PKG-INFO rename : python/rsa/rsa.egg-info/SOURCES.txt => third_party/python/rsa/rsa.egg-info/SOURCES.txt rename : python/rsa/rsa.egg-info/dependency_links.txt => third_party/python/rsa/rsa.egg-info/dependency_links.txt rename : python/rsa/rsa.egg-info/entry_points.txt => third_party/python/rsa/rsa.egg-info/entry_points.txt rename : python/rsa/rsa.egg-info/requires.txt => third_party/python/rsa/rsa.egg-info/requires.txt rename : python/rsa/rsa.egg-info/top_level.txt => third_party/python/rsa/rsa.egg-info/top_level.txt rename : python/rsa/rsa/__init__.py => third_party/python/rsa/rsa/__init__.py rename : python/rsa/rsa/_compat.py => third_party/python/rsa/rsa/_compat.py rename : python/rsa/rsa/_version133.py => third_party/python/rsa/rsa/_version133.py rename : python/rsa/rsa/_version200.py => third_party/python/rsa/rsa/_version200.py rename : python/rsa/rsa/asn1.py => third_party/python/rsa/rsa/asn1.py rename : python/rsa/rsa/bigfile.py => third_party/python/rsa/rsa/bigfile.py rename : python/rsa/rsa/cli.py => third_party/python/rsa/rsa/cli.py rename : python/rsa/rsa/common.py => third_party/python/rsa/rsa/common.py rename : python/rsa/rsa/core.py => third_party/python/rsa/rsa/core.py rename : python/rsa/rsa/key.py => third_party/python/rsa/rsa/key.py rename : python/rsa/rsa/parallel.py => third_party/python/rsa/rsa/parallel.py rename : python/rsa/rsa/pem.py => third_party/python/rsa/rsa/pem.py rename : python/rsa/rsa/pkcs1.py => third_party/python/rsa/rsa/pkcs1.py rename : python/rsa/rsa/prime.py => third_party/python/rsa/rsa/prime.py rename : python/rsa/rsa/randnum.py => third_party/python/rsa/rsa/randnum.py rename : python/rsa/rsa/transform.py => third_party/python/rsa/rsa/transform.py rename : python/rsa/rsa/util.py => third_party/python/rsa/rsa/util.py rename : python/rsa/rsa/varblock.py => third_party/python/rsa/rsa/varblock.py rename : python/rsa/run_tests.py => third_party/python/rsa/run_tests.py rename : python/rsa/setup.cfg => third_party/python/rsa/setup.cfg rename : python/rsa/setup.py => third_party/python/rsa/setup.py rename : python/rsa/tests/__init__.py => third_party/python/rsa/tests/__init__.py rename : python/rsa/tests/constants.py => third_party/python/rsa/tests/constants.py rename : python/rsa/tests/py2kconstants.py => third_party/python/rsa/tests/py2kconstants.py rename : python/rsa/tests/py3kconstants.py => third_party/python/rsa/tests/py3kconstants.py rename : python/rsa/tests/test_bigfile.py => third_party/python/rsa/tests/test_bigfile.py rename : python/rsa/tests/test_common.py => third_party/python/rsa/tests/test_common.py rename : python/rsa/tests/test_compat.py => third_party/python/rsa/tests/test_compat.py rename : python/rsa/tests/test_integers.py => third_party/python/rsa/tests/test_integers.py rename : python/rsa/tests/test_load_save_keys.py => third_party/python/rsa/tests/test_load_save_keys.py rename : python/rsa/tests/test_pem.py => third_party/python/rsa/tests/test_pem.py rename : python/rsa/tests/test_pkcs1.py => third_party/python/rsa/tests/test_pkcs1.py rename : python/rsa/tests/test_strings.py => third_party/python/rsa/tests/test_strings.py rename : python/rsa/tests/test_transform.py => third_party/python/rsa/tests/test_transform.py rename : python/rsa/tests/test_varblock.py => third_party/python/rsa/tests/test_varblock.py rename : python/slugid/.gitignore => third_party/python/slugid/.gitignore rename : python/slugid/.travis.yml => third_party/python/slugid/.travis.yml rename : python/slugid/LICENSE => third_party/python/slugid/LICENSE rename : python/slugid/README.rst => third_party/python/slugid/README.rst rename : python/slugid/requirements.txt => third_party/python/slugid/requirements.txt rename : python/slugid/setup.py => third_party/python/slugid/setup.py rename : python/slugid/slugid/__init__.py => third_party/python/slugid/slugid/__init__.py rename : python/slugid/slugid/slugid.py => third_party/python/slugid/slugid/slugid.py rename : python/slugid/test.py => third_party/python/slugid/test.py rename : python/slugid/tox.ini => third_party/python/slugid/tox.ini rename : python/virtualenv/AUTHORS.txt => third_party/python/virtualenv/AUTHORS.txt rename : python/virtualenv/LICENSE.txt => third_party/python/virtualenv/LICENSE.txt rename : python/virtualenv/MANIFEST.in => third_party/python/virtualenv/MANIFEST.in rename : python/virtualenv/PKG-INFO => third_party/python/virtualenv/PKG-INFO rename : python/virtualenv/README.rst => third_party/python/virtualenv/README.rst rename : python/virtualenv/bin/rebuild-script.py => third_party/python/virtualenv/bin/rebuild-script.py rename : python/virtualenv/docs/Makefile => third_party/python/virtualenv/docs/Makefile rename : python/virtualenv/docs/changes.rst => third_party/python/virtualenv/docs/changes.rst rename : python/virtualenv/docs/conf.py => third_party/python/virtualenv/docs/conf.py rename : python/virtualenv/docs/development.rst => third_party/python/virtualenv/docs/development.rst rename : python/virtualenv/docs/index.rst => third_party/python/virtualenv/docs/index.rst rename : python/virtualenv/docs/installation.rst => third_party/python/virtualenv/docs/installation.rst rename : python/virtualenv/docs/make.bat => third_party/python/virtualenv/docs/make.bat rename : python/virtualenv/docs/reference.rst => third_party/python/virtualenv/docs/reference.rst rename : python/virtualenv/docs/userguide.rst => third_party/python/virtualenv/docs/userguide.rst rename : python/virtualenv/scripts/virtualenv => third_party/python/virtualenv/scripts/virtualenv rename : python/virtualenv/setup.cfg => third_party/python/virtualenv/setup.cfg rename : python/virtualenv/setup.py => third_party/python/virtualenv/setup.py rename : python/virtualenv/site.py => third_party/python/virtualenv/site.py rename : python/virtualenv/tests/__init__.py => third_party/python/virtualenv/tests/__init__.py rename : python/virtualenv/tests/test_activate.sh => third_party/python/virtualenv/tests/test_activate.sh rename : python/virtualenv/tests/test_activate_output.expected => third_party/python/virtualenv/tests/test_activate_output.expected rename : python/virtualenv/tests/test_cmdline.py => third_party/python/virtualenv/tests/test_cmdline.py rename : python/virtualenv/tests/test_virtualenv.py => third_party/python/virtualenv/tests/test_virtualenv.py rename : python/virtualenv/virtualenv.py => third_party/python/virtualenv/virtualenv.py rename : python/virtualenv/virtualenv_embedded/activate.bat => third_party/python/virtualenv/virtualenv_embedded/activate.bat rename : python/virtualenv/virtualenv_embedded/activate.csh => third_party/python/virtualenv/virtualenv_embedded/activate.csh rename : python/virtualenv/virtualenv_embedded/activate.fish => third_party/python/virtualenv/virtualenv_embedded/activate.fish rename : python/virtualenv/virtualenv_embedded/activate.ps1 => third_party/python/virtualenv/virtualenv_embedded/activate.ps1 rename : python/virtualenv/virtualenv_embedded/activate.sh => third_party/python/virtualenv/virtualenv_embedded/activate.sh rename : python/virtualenv/virtualenv_embedded/activate_this.py => third_party/python/virtualenv/virtualenv_embedded/activate_this.py rename : python/virtualenv/virtualenv_embedded/deactivate.bat => third_party/python/virtualenv/virtualenv_embedded/deactivate.bat rename : python/virtualenv/virtualenv_embedded/distutils-init.py => third_party/python/virtualenv/virtualenv_embedded/distutils-init.py rename : python/virtualenv/virtualenv_embedded/distutils.cfg => third_party/python/virtualenv/virtualenv_embedded/distutils.cfg rename : python/virtualenv/virtualenv_embedded/python-config => third_party/python/virtualenv/virtualenv_embedded/python-config rename : python/virtualenv/virtualenv_embedded/site.py => third_party/python/virtualenv/virtualenv_embedded/site.py rename : python/virtualenv/virtualenv_support/__init__.py => third_party/python/virtualenv/virtualenv_support/__init__.py rename : python/virtualenv/virtualenv_support/argparse-1.4.0-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/argparse-1.4.0-py2.py3-none-any.whl rename : python/virtualenv/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl rename : python/virtualenv/virtualenv_support/setuptools-25.2.0-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/setuptools-25.2.0-py2.py3-none-any.whl rename : python/virtualenv/virtualenv_support/wheel-0.29.0-py2.py3-none-any.whl => third_party/python/virtualenv/virtualenv_support/wheel-0.29.0-py2.py3-none-any.whl rename : python/voluptuous/COPYING => third_party/python/voluptuous/COPYING rename : python/voluptuous/MANIFEST.in => third_party/python/voluptuous/MANIFEST.in rename : python/voluptuous/PKG-INFO => third_party/python/voluptuous/PKG-INFO rename : python/voluptuous/README.md => third_party/python/voluptuous/README.md rename : python/voluptuous/README.rst => third_party/python/voluptuous/README.rst rename : python/voluptuous/setup.cfg => third_party/python/voluptuous/setup.cfg rename : python/voluptuous/setup.py => third_party/python/voluptuous/setup.py rename : python/voluptuous/tests.md => third_party/python/voluptuous/tests.md rename : python/voluptuous/voluptuous.py => third_party/python/voluptuous/voluptuous.py rename : python/which/LICENSE.txt => third_party/python/which/LICENSE.txt rename : python/which/MANIFEST.in => third_party/python/which/MANIFEST.in rename : python/which/Makefile.win => third_party/python/which/Makefile.win rename : python/which/PKG-INFO => third_party/python/which/PKG-INFO rename : python/which/README.txt => third_party/python/which/README.txt rename : python/which/TODO.txt => third_party/python/which/TODO.txt rename : python/which/build.py => third_party/python/which/build.py rename : python/which/launcher.cpp => third_party/python/which/launcher.cpp rename : python/which/logo.jpg => third_party/python/which/logo.jpg rename : python/which/setup.py => third_party/python/which/setup.py rename : python/which/test/test_which.py => third_party/python/which/test/test_which.py rename : python/which/test/testsupport.py => third_party/python/which/test/testsupport.py rename : python/which/which.py => third_party/python/which/which.py extra : rebase_source : fc38848c444c36b0d38a0c33aa5be74d5037d57d
875 lines
No EOL
79 KiB
HTML
875 lines
No EOL
79 KiB
HTML
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
|
|
<title>The Mock Class — Mock 1.0.0 documentation</title>
|
|
|
|
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
|
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
|
|
|
<script type="text/javascript">
|
|
var DOCUMENTATION_OPTIONS = {
|
|
URL_ROOT: '',
|
|
VERSION: '1.0.0',
|
|
COLLAPSE_INDEX: false,
|
|
FILE_SUFFIX: '.html',
|
|
HAS_SOURCE: true
|
|
};
|
|
</script>
|
|
<script type="text/javascript" src="_static/jquery.js"></script>
|
|
<script type="text/javascript" src="_static/underscore.js"></script>
|
|
<script type="text/javascript" src="_static/doctools.js"></script>
|
|
<link rel="top" title="Mock 1.0.0 documentation" href="index.html" />
|
|
<link rel="next" title="Patch Decorators" href="patch.html" />
|
|
<link rel="prev" title="Mock - Mocking and Testing Library" href="index.html" />
|
|
</head>
|
|
<body>
|
|
<div class="related">
|
|
<h3>Navigation</h3>
|
|
<ul>
|
|
<li class="right" style="margin-right: 10px">
|
|
<a href="genindex.html" title="General Index"
|
|
accesskey="I">index</a></li>
|
|
<li class="right" >
|
|
<a href="patch.html" title="Patch Decorators"
|
|
accesskey="N">next</a> |</li>
|
|
<li class="right" >
|
|
<a href="index.html" title="Mock - Mocking and Testing Library"
|
|
accesskey="P">previous</a> |</li>
|
|
<li><a href="index.html">Mock 1.0.0 documentation</a> »</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="document">
|
|
<div class="documentwrapper">
|
|
<div class="bodywrapper">
|
|
<div class="body">
|
|
|
|
<div class="section" id="the-mock-class">
|
|
<h1>The Mock Class<a class="headerlink" href="#the-mock-class" title="Permalink to this headline">¶</a></h1>
|
|
<p><cite>Mock</cite> is a flexible mock object intended to replace the use of stubs and
|
|
test doubles throughout your code. Mocks are callable and create attributes as
|
|
new mocks when you access them <a class="footnote-reference" href="#id3" id="id1">[1]</a>. Accessing the same attribute will always
|
|
return the same mock. Mocks record how you use them, allowing you to make
|
|
assertions about what your code has done to them.</p>
|
|
<p><a class="reference internal" href="magicmock.html#mock.MagicMock" title="mock.MagicMock"><tt class="xref py py-class docutils literal"><span class="pre">MagicMock</span></tt></a> is a subclass of <cite>Mock</cite> with all the magic methods
|
|
pre-created and ready to use. There are also non-callable variants, useful
|
|
when you are mocking out objects that aren’t callable:
|
|
<a class="reference internal" href="#mock.NonCallableMock" title="mock.NonCallableMock"><tt class="xref py py-class docutils literal"><span class="pre">NonCallableMock</span></tt></a> and <a class="reference internal" href="magicmock.html#mock.NonCallableMagicMock" title="mock.NonCallableMagicMock"><tt class="xref py py-class docutils literal"><span class="pre">NonCallableMagicMock</span></tt></a></p>
|
|
<p>The <a class="reference internal" href="patch.html#mock.patch" title="mock.patch"><tt class="xref py py-func docutils literal"><span class="pre">patch()</span></tt></a> decorators makes it easy to temporarily replace classes
|
|
in a particular module with a <cite>Mock</cite> object. By default <cite>patch</cite> will create
|
|
a <cite>MagicMock</cite> for you. You can specify an alternative class of <cite>Mock</cite> using
|
|
the <cite>new_callable</cite> argument to <cite>patch</cite>.</p>
|
|
<span class="target" id="index-0"></span><span class="target" id="index-1"></span><span class="target" id="index-2"></span><span class="target" id="index-3"></span><span class="target" id="index-4"></span><dl class="class">
|
|
<dt id="mock.Mock">
|
|
<em class="property">class </em><tt class="descname">Mock</tt><big>(</big><em>spec=None</em>, <em>side_effect=None</em>, <em>return_value=DEFAULT</em>, <em>wraps=None</em>, <em>name=None</em>, <em>spec_set=None</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mock.Mock" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Create a new <cite>Mock</cite> object. <cite>Mock</cite> takes several optional arguments
|
|
that specify the behaviour of the Mock object:</p>
|
|
<ul>
|
|
<li><p class="first"><cite>spec</cite>: This can be either a list of strings or an existing object (a
|
|
class or instance) that acts as the specification for the mock object. If
|
|
you pass in an object then a list of strings is formed by calling dir on
|
|
the object (excluding unsupported magic attributes and methods).
|
|
Accessing any attribute not in this list will raise an <cite>AttributeError</cite>.</p>
|
|
<p>If <cite>spec</cite> is an object (rather than a list of strings) then
|
|
<a class="reference internal" href="#mock.Mock.__class__" title="mock.Mock.__class__"><tt class="xref py py-attr docutils literal"><span class="pre">__class__</span></tt></a> returns the class of the spec object. This allows mocks
|
|
to pass <cite>isinstance</cite> tests.</p>
|
|
</li>
|
|
<li><p class="first"><cite>spec_set</cite>: A stricter variant of <cite>spec</cite>. If used, attempting to <em>set</em>
|
|
or get an attribute on the mock that isn’t on the object passed as
|
|
<cite>spec_set</cite> will raise an <cite>AttributeError</cite>.</p>
|
|
</li>
|
|
<li><p class="first"><cite>side_effect</cite>: A function to be called whenever the Mock is called. See
|
|
the <a class="reference internal" href="#mock.Mock.side_effect" title="mock.Mock.side_effect"><tt class="xref py py-attr docutils literal"><span class="pre">side_effect</span></tt></a> attribute. Useful for raising exceptions or
|
|
dynamically changing return values. The function is called with the same
|
|
arguments as the mock, and unless it returns <a class="reference internal" href="sentinel.html#mock.DEFAULT" title="mock.DEFAULT"><tt class="xref py py-data docutils literal"><span class="pre">DEFAULT</span></tt></a>, the return
|
|
value of this function is used as the return value.</p>
|
|
<p>Alternatively <cite>side_effect</cite> can be an exception class or instance. In
|
|
this case the exception will be raised when the mock is called.</p>
|
|
<p>If <cite>side_effect</cite> is an iterable then each call to the mock will return
|
|
the next value from the iterable. If any of the members of the iterable
|
|
are exceptions they will be raised instead of returned.</p>
|
|
<p>A <cite>side_effect</cite> can be cleared by setting it to <cite>None</cite>.</p>
|
|
</li>
|
|
<li><p class="first"><cite>return_value</cite>: The value returned when the mock is called. By default
|
|
this is a new Mock (created on first access). See the
|
|
<a class="reference internal" href="#mock.Mock.return_value" title="mock.Mock.return_value"><tt class="xref py py-attr docutils literal"><span class="pre">return_value</span></tt></a> attribute.</p>
|
|
</li>
|
|
<li><p class="first"><cite>wraps</cite>: Item for the mock object to wrap. If <cite>wraps</cite> is not None then
|
|
calling the Mock will pass the call through to the wrapped object
|
|
(returning the real result and ignoring <cite>return_value</cite>). Attribute access
|
|
on the mock will return a Mock object that wraps the corresponding
|
|
attribute of the wrapped object (so attempting to access an attribute
|
|
that doesn’t exist will raise an <cite>AttributeError</cite>).</p>
|
|
<p>If the mock has an explicit <cite>return_value</cite> set then calls are not passed
|
|
to the wrapped object and the <cite>return_value</cite> is returned instead.</p>
|
|
</li>
|
|
<li><p class="first"><cite>name</cite>: If the mock has a name then it will be used in the repr of the
|
|
mock. This can be useful for debugging. The name is propagated to child
|
|
mocks.</p>
|
|
</li>
|
|
</ul>
|
|
<p>Mocks can also be called with arbitrary keyword arguments. These will be
|
|
used to set attributes on the mock after it is created. See the
|
|
<a class="reference internal" href="#mock.Mock.configure_mock" title="mock.Mock.configure_mock"><tt class="xref py py-meth docutils literal"><span class="pre">configure_mock()</span></tt></a> method for details.</p>
|
|
<dl class="method">
|
|
<dt id="mock.Mock.assert_called_with">
|
|
<tt class="descname">assert_called_with</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mock.Mock.assert_called_with" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>This method is a convenient way of asserting that calls are made in a
|
|
particular way:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">method</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">test</span><span class="o">=</span><span class="s">'wow'</span><span class="p">)</span>
|
|
<span class="go"><Mock name='mock.method()' id='...'></span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">method</span><span class="o">.</span><span class="n">assert_called_with</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">test</span><span class="o">=</span><span class="s">'wow'</span><span class="p">)</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="method">
|
|
<dt id="mock.Mock.assert_called_once_with">
|
|
<tt class="descname">assert_called_once_with</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mock.Mock.assert_called_once_with" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Assert that the mock was called exactly once and with the specified
|
|
arguments.</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="s">'foo'</span><span class="p">,</span> <span class="n">bar</span><span class="o">=</span><span class="s">'baz'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">assert_called_once_with</span><span class="p">(</span><span class="s">'foo'</span><span class="p">,</span> <span class="n">bar</span><span class="o">=</span><span class="s">'baz'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="s">'foo'</span><span class="p">,</span> <span class="n">bar</span><span class="o">=</span><span class="s">'baz'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">assert_called_once_with</span><span class="p">(</span><span class="s">'foo'</span><span class="p">,</span> <span class="n">bar</span><span class="o">=</span><span class="s">'baz'</span><span class="p">)</span>
|
|
<span class="gt">Traceback (most recent call last):</span>
|
|
<span class="c">...</span>
|
|
<span class="gr">AssertionError</span>: <span class="n">Expected to be called once. Called 2 times.</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="method">
|
|
<dt id="mock.Mock.assert_any_call">
|
|
<tt class="descname">assert_any_call</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mock.Mock.assert_any_call" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>assert the mock has been called with the specified arguments.</p>
|
|
<p>The assert passes if the mock has <em>ever</em> been called, unlike
|
|
<a class="reference internal" href="#mock.Mock.assert_called_with" title="mock.Mock.assert_called_with"><tt class="xref py py-meth docutils literal"><span class="pre">assert_called_with()</span></tt></a> and <a class="reference internal" href="#mock.Mock.assert_called_once_with" title="mock.Mock.assert_called_once_with"><tt class="xref py py-meth docutils literal"><span class="pre">assert_called_once_with()</span></tt></a> that
|
|
only pass if the call is the most recent one.</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">arg</span><span class="o">=</span><span class="s">'thing'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="s">'some'</span><span class="p">,</span> <span class="s">'thing'</span><span class="p">,</span> <span class="s">'else'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">assert_any_call</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">arg</span><span class="o">=</span><span class="s">'thing'</span><span class="p">)</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="method">
|
|
<dt id="mock.Mock.assert_has_calls">
|
|
<tt class="descname">assert_has_calls</tt><big>(</big><em>calls</em>, <em>any_order=False</em><big>)</big><a class="headerlink" href="#mock.Mock.assert_has_calls" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>assert the mock has been called with the specified calls.
|
|
The <cite>mock_calls</cite> list is checked for the calls.</p>
|
|
<p>If <cite>any_order</cite> is False (the default) then the calls must be
|
|
sequential. There can be extra calls before or after the
|
|
specified calls.</p>
|
|
<p>If <cite>any_order</cite> is True then the calls can be in any order, but
|
|
they must all appear in <a class="reference internal" href="#mock.Mock.mock_calls" title="mock.Mock.mock_calls"><tt class="xref py py-attr docutils literal"><span class="pre">mock_calls</span></tt></a>.</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">calls</span> <span class="o">=</span> <span class="p">[</span><span class="n">call</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="n">call</span><span class="p">(</span><span class="mi">3</span><span class="p">)]</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">assert_has_calls</span><span class="p">(</span><span class="n">calls</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">calls</span> <span class="o">=</span> <span class="p">[</span><span class="n">call</span><span class="p">(</span><span class="mi">4</span><span class="p">),</span> <span class="n">call</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span> <span class="n">call</span><span class="p">(</span><span class="mi">3</span><span class="p">)]</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">assert_has_calls</span><span class="p">(</span><span class="n">calls</span><span class="p">,</span> <span class="n">any_order</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="method">
|
|
<dt id="mock.Mock.reset_mock">
|
|
<tt class="descname">reset_mock</tt><big>(</big><big>)</big><a class="headerlink" href="#mock.Mock.reset_mock" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>The reset_mock method resets all the call attributes on a mock object:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="s">'hello'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">called</span>
|
|
<span class="go">True</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">reset_mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">called</span>
|
|
<span class="go">False</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>This can be useful where you want to make a series of assertions that
|
|
reuse the same object. Note that <cite>reset_mock</cite> <em>doesn’t</em> clear the
|
|
return value, <a class="reference internal" href="#mock.Mock.side_effect" title="mock.Mock.side_effect"><tt class="xref py py-attr docutils literal"><span class="pre">side_effect</span></tt></a> or any child attributes you have
|
|
set using normal assignment. Child mocks and the return value mock
|
|
(if any) are reset as well.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="method">
|
|
<dt id="mock.Mock.mock_add_spec">
|
|
<tt class="descname">mock_add_spec</tt><big>(</big><em>spec</em>, <em>spec_set=False</em><big>)</big><a class="headerlink" href="#mock.Mock.mock_add_spec" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Add a spec to a mock. <cite>spec</cite> can either be an object or a
|
|
list of strings. Only attributes on the <cite>spec</cite> can be fetched as
|
|
attributes from the mock.</p>
|
|
<p>If <cite>spec_set</cite> is <cite>True</cite> then only attributes on the spec can be set.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="method">
|
|
<dt id="mock.Mock.attach_mock">
|
|
<tt class="descname">attach_mock</tt><big>(</big><em>mock</em>, <em>attribute</em><big>)</big><a class="headerlink" href="#mock.Mock.attach_mock" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Attach a mock as an attribute of this one, replacing its name and
|
|
parent. Calls to the attached mock will be recorded in the
|
|
<a class="reference internal" href="#mock.Mock.method_calls" title="mock.Mock.method_calls"><tt class="xref py py-attr docutils literal"><span class="pre">method_calls</span></tt></a> and <a class="reference internal" href="#mock.Mock.mock_calls" title="mock.Mock.mock_calls"><tt class="xref py py-attr docutils literal"><span class="pre">mock_calls</span></tt></a> attributes of this one.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="method">
|
|
<dt id="mock.Mock.configure_mock">
|
|
<tt class="descname">configure_mock</tt><big>(</big><em>**kwargs</em><big>)</big><a class="headerlink" href="#mock.Mock.configure_mock" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Set attributes on the mock through keyword arguments.</p>
|
|
<p>Attributes plus return values and side effects can be set on child
|
|
mocks using standard dot notation and unpacking a dictionary in the
|
|
method call:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">attrs</span> <span class="o">=</span> <span class="p">{</span><span class="s">'method.return_value'</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s">'other.side_effect'</span><span class="p">:</span> <span class="ne">KeyError</span><span class="p">}</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">configure_mock</span><span class="p">(</span><span class="o">**</span><span class="n">attrs</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">method</span><span class="p">()</span>
|
|
<span class="go">3</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">other</span><span class="p">()</span>
|
|
<span class="gt">Traceback (most recent call last):</span>
|
|
<span class="c">...</span>
|
|
<span class="gr">KeyError</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>The same thing can be achieved in the constructor call to mocks:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">attrs</span> <span class="o">=</span> <span class="p">{</span><span class="s">'method.return_value'</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s">'other.side_effect'</span><span class="p">:</span> <span class="ne">KeyError</span><span class="p">}</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">some_attribute</span><span class="o">=</span><span class="s">'eggs'</span><span class="p">,</span> <span class="o">**</span><span class="n">attrs</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">some_attribute</span>
|
|
<span class="go">'eggs'</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">method</span><span class="p">()</span>
|
|
<span class="go">3</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">other</span><span class="p">()</span>
|
|
<span class="gt">Traceback (most recent call last):</span>
|
|
<span class="c">...</span>
|
|
<span class="gr">KeyError</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><cite>configure_mock</cite> exists to make it easier to do configuration
|
|
after the mock has been created.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="method">
|
|
<dt id="mock.Mock.__dir__">
|
|
<tt class="descname">__dir__</tt><big>(</big><big>)</big><a class="headerlink" href="#mock.Mock.__dir__" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p><cite>Mock</cite> objects limit the results of <cite>dir(some_mock)</cite> to useful results.
|
|
For mocks with a <cite>spec</cite> this includes all the permitted attributes
|
|
for the mock.</p>
|
|
<p>See <a class="reference internal" href="helpers.html#mock.FILTER_DIR" title="mock.FILTER_DIR"><tt class="xref py py-data docutils literal"><span class="pre">FILTER_DIR</span></tt></a> for what this filtering does, and how to
|
|
switch it off.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="method">
|
|
<dt id="mock.Mock._get_child_mock">
|
|
<tt class="descname">_get_child_mock</tt><big>(</big><em>**kw</em><big>)</big><a class="headerlink" href="#mock.Mock._get_child_mock" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Create the child mocks for attributes and return value.
|
|
By default child mocks will be the same type as the parent.
|
|
Subclasses of Mock may want to override this to customize the way
|
|
child mocks are made.</p>
|
|
<p>For non-callable mocks the callable variant will be used (rather than
|
|
any custom subclass).</p>
|
|
</dd></dl>
|
|
|
|
<dl class="attribute">
|
|
<dt id="mock.Mock.called">
|
|
<tt class="descname">called</tt><a class="headerlink" href="#mock.Mock.called" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A boolean representing whether or not the mock object has been called:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">called</span>
|
|
<span class="go">False</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">called</span>
|
|
<span class="go">True</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="attribute">
|
|
<dt id="mock.Mock.call_count">
|
|
<tt class="descname">call_count</tt><a class="headerlink" href="#mock.Mock.call_count" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>An integer telling you how many times the mock object has been called:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">call_count</span>
|
|
<span class="go">0</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">call_count</span>
|
|
<span class="go">2</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="attribute">
|
|
<dt id="mock.Mock.return_value">
|
|
<tt class="descname">return_value</tt><a class="headerlink" href="#mock.Mock.return_value" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Set this to configure the value returned by calling the mock:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">return_value</span> <span class="o">=</span> <span class="s">'fish'</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">()</span>
|
|
<span class="go">'fish'</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>The default return value is a mock object and you can configure it in
|
|
the normal way:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">return_value</span><span class="o">.</span><span class="n">attribute</span> <span class="o">=</span> <span class="n">sentinel</span><span class="o">.</span><span class="n">Attribute</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">return_value</span><span class="p">()</span>
|
|
<span class="go"><Mock name='mock()()' id='...'></span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">return_value</span><span class="o">.</span><span class="n">assert_called_with</span><span class="p">()</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><cite>return_value</cite> can also be set in the constructor:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">return_value</span>
|
|
<span class="go">3</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">()</span>
|
|
<span class="go">3</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="attribute">
|
|
<dt id="mock.Mock.side_effect">
|
|
<tt class="descname">side_effect</tt><a class="headerlink" href="#mock.Mock.side_effect" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>This can either be a function to be called when the mock is called,
|
|
or an exception (class or instance) to be raised.</p>
|
|
<p>If you pass in a function it will be called with same arguments as the
|
|
mock and unless the function returns the <a class="reference internal" href="sentinel.html#mock.DEFAULT" title="mock.DEFAULT"><tt class="xref py py-data docutils literal"><span class="pre">DEFAULT</span></tt></a> singleton the
|
|
call to the mock will then return whatever the function returns. If the
|
|
function returns <a class="reference internal" href="sentinel.html#mock.DEFAULT" title="mock.DEFAULT"><tt class="xref py py-data docutils literal"><span class="pre">DEFAULT</span></tt></a> then the mock will return its normal
|
|
value (from the <a class="reference internal" href="#mock.Mock.return_value" title="mock.Mock.return_value"><tt class="xref py py-attr docutils literal"><span class="pre">return_value</span></tt></a>.</p>
|
|
<p>An example of a mock that raises an exception (to test exception
|
|
handling of an API):</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">side_effect</span> <span class="o">=</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">'Boom!'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">()</span>
|
|
<span class="gt">Traceback (most recent call last):</span>
|
|
<span class="c">...</span>
|
|
<span class="gr">Exception</span>: <span class="n">Boom!</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>Using <cite>side_effect</cite> to return a sequence of values:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">side_effect</span> <span class="o">=</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">]</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(),</span> <span class="n">mock</span><span class="p">(),</span> <span class="n">mock</span><span class="p">()</span>
|
|
<span class="go">(3, 2, 1)</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>The <cite>side_effect</cite> function is called with the same arguments as the
|
|
mock (so it is wise for it to take arbitrary args and keyword
|
|
arguments) and whatever it returns is used as the return value for
|
|
the call. The exception is if <cite>side_effect</cite> returns <a class="reference internal" href="sentinel.html#mock.DEFAULT" title="mock.DEFAULT"><tt class="xref py py-data docutils literal"><span class="pre">DEFAULT</span></tt></a>,
|
|
in which case the normal <a class="reference internal" href="#mock.Mock.return_value" title="mock.Mock.return_value"><tt class="xref py py-attr docutils literal"><span class="pre">return_value</span></tt></a> is used.</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="k">def</span> <span class="nf">side_effect</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="gp">... </span> <span class="k">return</span> <span class="n">DEFAULT</span>
|
|
<span class="gp">...</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">side_effect</span> <span class="o">=</span> <span class="n">side_effect</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">()</span>
|
|
<span class="go">3</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><cite>side_effect</cite> can be set in the constructor. Here’s an example that
|
|
adds one to the value the mock is called with and returns it:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">side_effect</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">value</span><span class="p">:</span> <span class="n">value</span> <span class="o">+</span> <span class="mi">1</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">side_effect</span><span class="o">=</span><span class="n">side_effect</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
|
|
<span class="go">4</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="o">-</span><span class="mi">8</span><span class="p">)</span>
|
|
<span class="go">-7</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>Setting <cite>side_effect</cite> to <cite>None</cite> clears it:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">mock</span> <span class="kn">import</span> <span class="n">Mock</span>
|
|
<span class="gp">>>> </span><span class="n">m</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">side_effect</span><span class="o">=</span><span class="ne">KeyError</span><span class="p">,</span> <span class="n">return_value</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="gt">Traceback (most recent call last):</span>
|
|
<span class="c">...</span>
|
|
<span class="gr">KeyError</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">side_effect</span> <span class="o">=</span> <span class="bp">None</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="go">3</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<dl class="attribute">
|
|
<dt id="mock.Mock.call_args">
|
|
<tt class="descname">call_args</tt><a class="headerlink" href="#mock.Mock.call_args" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>This is either <cite>None</cite> (if the mock hasn’t been called), or the
|
|
arguments that the mock was last called with. This will be in the
|
|
form of a tuple: the first member is any ordered arguments the mock
|
|
was called with (or an empty tuple) and the second member is any
|
|
keyword arguments (or an empty dictionary).</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="k">print</span> <span class="n">mock</span><span class="o">.</span><span class="n">call_args</span>
|
|
<span class="go">None</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">call_args</span>
|
|
<span class="go">call()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">call_args</span> <span class="o">==</span> <span class="p">()</span>
|
|
<span class="go">True</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">call_args</span>
|
|
<span class="go">call(3, 4)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">call_args</span> <span class="o">==</span> <span class="p">((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">),)</span>
|
|
<span class="go">True</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s">'fish'</span><span class="p">,</span> <span class="nb">next</span><span class="o">=</span><span class="s">'w00t!'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">call_args</span>
|
|
<span class="go">call(3, 4, 5, key='fish', next='w00t!')</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><cite>call_args</cite>, along with members of the lists <a class="reference internal" href="#mock.Mock.call_args_list" title="mock.Mock.call_args_list"><tt class="xref py py-attr docutils literal"><span class="pre">call_args_list</span></tt></a>,
|
|
<a class="reference internal" href="#mock.Mock.method_calls" title="mock.Mock.method_calls"><tt class="xref py py-attr docutils literal"><span class="pre">method_calls</span></tt></a> and <a class="reference internal" href="#mock.Mock.mock_calls" title="mock.Mock.mock_calls"><tt class="xref py py-attr docutils literal"><span class="pre">mock_calls</span></tt></a> are <a class="reference internal" href="helpers.html#mock.call" title="mock.call"><tt class="xref py py-data docutils literal"><span class="pre">call</span></tt></a> objects.
|
|
These are tuples, so they can be unpacked to get at the individual
|
|
arguments and make more complex assertions. See
|
|
<a class="reference internal" href="helpers.html#calls-as-tuples"><em>calls as tuples</em></a>.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="attribute">
|
|
<dt id="mock.Mock.call_args_list">
|
|
<tt class="descname">call_args_list</tt><a class="headerlink" href="#mock.Mock.call_args_list" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>This is a list of all the calls made to the mock object in sequence
|
|
(so the length of the list is the number of times it has been
|
|
called). Before any calls have been made it is an empty list. The
|
|
<a class="reference internal" href="helpers.html#mock.call" title="mock.call"><tt class="xref py py-data docutils literal"><span class="pre">call</span></tt></a> object can be used for conveniently constructing lists of
|
|
calls to compare with <cite>call_args_list</cite>.</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="p">(</span><span class="n">key</span><span class="o">=</span><span class="s">'fish'</span><span class="p">,</span> <span class="nb">next</span><span class="o">=</span><span class="s">'w00t!'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">call_args_list</span>
|
|
<span class="go">[call(), call(3, 4), call(key='fish', next='w00t!')]</span>
|
|
<span class="gp">>>> </span><span class="n">expected</span> <span class="o">=</span> <span class="p">[(),</span> <span class="p">((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">),),</span> <span class="p">({</span><span class="s">'key'</span><span class="p">:</span> <span class="s">'fish'</span><span class="p">,</span> <span class="s">'next'</span><span class="p">:</span> <span class="s">'w00t!'</span><span class="p">},)]</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">call_args_list</span> <span class="o">==</span> <span class="n">expected</span>
|
|
<span class="go">True</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>Members of <cite>call_args_list</cite> are <a class="reference internal" href="helpers.html#mock.call" title="mock.call"><tt class="xref py py-data docutils literal"><span class="pre">call</span></tt></a> objects. These can be
|
|
unpacked as tuples to get at the individual arguments. See
|
|
<a class="reference internal" href="helpers.html#calls-as-tuples"><em>calls as tuples</em></a>.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="attribute">
|
|
<dt id="mock.Mock.method_calls">
|
|
<tt class="descname">method_calls</tt><a class="headerlink" href="#mock.Mock.method_calls" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>As well as tracking calls to themselves, mocks also track calls to
|
|
methods and attributes, and <em>their</em> methods and attributes:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">method</span><span class="p">()</span>
|
|
<span class="go"><Mock name='mock.method()' id='...'></span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">property</span><span class="o">.</span><span class="n">method</span><span class="o">.</span><span class="n">attribute</span><span class="p">()</span>
|
|
<span class="go"><Mock name='mock.property.method.attribute()' id='...'></span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">method_calls</span>
|
|
<span class="go">[call.method(), call.property.method.attribute()]</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>Members of <cite>method_calls</cite> are <a class="reference internal" href="helpers.html#mock.call" title="mock.call"><tt class="xref py py-data docutils literal"><span class="pre">call</span></tt></a> objects. These can be
|
|
unpacked as tuples to get at the individual arguments. See
|
|
<a class="reference internal" href="helpers.html#calls-as-tuples"><em>calls as tuples</em></a>.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="attribute">
|
|
<dt id="mock.Mock.mock_calls">
|
|
<tt class="descname">mock_calls</tt><a class="headerlink" href="#mock.Mock.mock_calls" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p><cite>mock_calls</cite> records <em>all</em> calls to the mock object, its methods, magic
|
|
methods <em>and</em> return value mocks.</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">result</span> <span class="o">=</span> <span class="n">mock</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">first</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
|
|
<span class="go"><MagicMock name='mock.first()' id='...'></span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">second</span><span class="p">()</span>
|
|
<span class="go"><MagicMock name='mock.second()' id='...'></span>
|
|
<span class="gp">>>> </span><span class="nb">int</span><span class="p">(</span><span class="n">mock</span><span class="p">)</span>
|
|
<span class="go">1</span>
|
|
<span class="gp">>>> </span><span class="n">result</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
<span class="go"><MagicMock name='mock()()' id='...'></span>
|
|
<span class="gp">>>> </span><span class="n">expected</span> <span class="o">=</span> <span class="p">[</span><span class="n">call</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="n">call</span><span class="o">.</span><span class="n">first</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="mi">3</span><span class="p">),</span> <span class="n">call</span><span class="o">.</span><span class="n">second</span><span class="p">(),</span>
|
|
<span class="gp">... </span><span class="n">call</span><span class="o">.</span><span class="n">__int__</span><span class="p">(),</span> <span class="n">call</span><span class="p">()(</span><span class="mi">1</span><span class="p">)]</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">mock_calls</span> <span class="o">==</span> <span class="n">expected</span>
|
|
<span class="go">True</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>Members of <cite>mock_calls</cite> are <a class="reference internal" href="helpers.html#mock.call" title="mock.call"><tt class="xref py py-data docutils literal"><span class="pre">call</span></tt></a> objects. These can be
|
|
unpacked as tuples to get at the individual arguments. See
|
|
<a class="reference internal" href="helpers.html#calls-as-tuples"><em>calls as tuples</em></a>.</p>
|
|
</dd></dl>
|
|
|
|
<dl class="attribute">
|
|
<dt id="mock.Mock.__class__">
|
|
<tt class="descname">__class__</tt><a class="headerlink" href="#mock.Mock.__class__" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>Normally the <cite>__class__</cite> attribute of an object will return its type.
|
|
For a mock object with a <cite>spec</cite> <cite>__class__</cite> returns the spec class
|
|
instead. This allows mock objects to pass <cite>isinstance</cite> tests for the
|
|
object they are replacing / masquerading as:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">spec</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="nb">isinstance</span><span class="p">(</span><span class="n">mock</span><span class="p">,</span> <span class="nb">int</span><span class="p">)</span>
|
|
<span class="go">True</span>
|
|
</pre></div>
|
|
</div>
|
|
<p><cite>__class__</cite> is assignable to, this allows a mock to pass an
|
|
<cite>isinstance</cite> check without forcing you to use a spec:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">__class__</span> <span class="o">=</span> <span class="nb">dict</span>
|
|
<span class="gp">>>> </span><span class="nb">isinstance</span><span class="p">(</span><span class="n">mock</span><span class="p">,</span> <span class="nb">dict</span><span class="p">)</span>
|
|
<span class="go">True</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
</dd></dl>
|
|
|
|
<dl class="class">
|
|
<dt id="mock.NonCallableMock">
|
|
<em class="property">class </em><tt class="descname">NonCallableMock</tt><big>(</big><em>spec=None</em>, <em>wraps=None</em>, <em>name=None</em>, <em>spec_set=None</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mock.NonCallableMock" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A non-callable version of <cite>Mock</cite>. The constructor parameters have the same
|
|
meaning of <cite>Mock</cite>, with the exception of <cite>return_value</cite> and <cite>side_effect</cite>
|
|
which have no meaning on a non-callable mock.</p>
|
|
</dd></dl>
|
|
|
|
<p>Mock objects that use a class or an instance as a <cite>spec</cite> or <cite>spec_set</cite> are able
|
|
to pass <cite>isintance</cite> tests:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">spec</span><span class="o">=</span><span class="n">SomeClass</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="nb">isinstance</span><span class="p">(</span><span class="n">mock</span><span class="p">,</span> <span class="n">SomeClass</span><span class="p">)</span>
|
|
<span class="go">True</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">spec_set</span><span class="o">=</span><span class="n">SomeClass</span><span class="p">())</span>
|
|
<span class="gp">>>> </span><span class="nb">isinstance</span><span class="p">(</span><span class="n">mock</span><span class="p">,</span> <span class="n">SomeClass</span><span class="p">)</span>
|
|
<span class="go">True</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>The <cite>Mock</cite> classes have support for mocking magic methods. See <a class="reference internal" href="magicmock.html#magic-methods"><em>magic
|
|
methods</em></a> for the full details.</p>
|
|
<p>The mock classes and the <a class="reference internal" href="patch.html#mock.patch" title="mock.patch"><tt class="xref py py-func docutils literal"><span class="pre">patch()</span></tt></a> decorators all take arbitrary keyword
|
|
arguments for configuration. For the <cite>patch</cite> decorators the keywords are
|
|
passed to the constructor of the mock being created. The keyword arguments
|
|
are for configuring attributes of the mock:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">m</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">(</span><span class="n">attribute</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">other</span><span class="o">=</span><span class="s">'fish'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">attribute</span>
|
|
<span class="go">3</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">other</span>
|
|
<span class="go">'fish'</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>The return value and side effect of child mocks can be set in the same way,
|
|
using dotted notation. As you can’t use dotted names directly in a call you
|
|
have to create a dictionary and unpack it using <cite>**</cite>:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">attrs</span> <span class="o">=</span> <span class="p">{</span><span class="s">'method.return_value'</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s">'other.side_effect'</span><span class="p">:</span> <span class="ne">KeyError</span><span class="p">}</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">Mock</span><span class="p">(</span><span class="n">some_attribute</span><span class="o">=</span><span class="s">'eggs'</span><span class="p">,</span> <span class="o">**</span><span class="n">attrs</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">some_attribute</span>
|
|
<span class="go">'eggs'</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">method</span><span class="p">()</span>
|
|
<span class="go">3</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">other</span><span class="p">()</span>
|
|
<span class="gt">Traceback (most recent call last):</span>
|
|
<span class="c">...</span>
|
|
<span class="gr">KeyError</span>
|
|
</pre></div>
|
|
</div>
|
|
<dl class="class">
|
|
<dt id="mock.PropertyMock">
|
|
<em class="property">class </em><tt class="descname">PropertyMock</tt><big>(</big><em>*args</em>, <em>**kwargs</em><big>)</big><a class="headerlink" href="#mock.PropertyMock" title="Permalink to this definition">¶</a></dt>
|
|
<dd><p>A mock intended to be used as a property, or other descriptor, on a class.
|
|
<cite>PropertyMock</cite> provides <cite>__get__</cite> and <cite>__set__</cite> methods so you can specify
|
|
a return value when it is fetched.</p>
|
|
<p>Fetching a <cite>PropertyMock</cite> instance from an object calls the mock, with
|
|
no args. Setting it calls the mock with the value being set.</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="k">class</span> <span class="nc">Foo</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="gp">... </span> <span class="nd">@property</span>
|
|
<span class="gp">... </span> <span class="k">def</span> <span class="nf">foo</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="gp">... </span> <span class="k">return</span> <span class="s">'something'</span>
|
|
<span class="gp">... </span> <span class="nd">@foo.setter</span>
|
|
<span class="gp">... </span> <span class="k">def</span> <span class="nf">foo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
|
|
<span class="gp">... </span> <span class="k">pass</span>
|
|
<span class="gp">...</span>
|
|
<span class="gp">>>> </span><span class="k">with</span> <span class="n">patch</span><span class="p">(</span><span class="s">'__main__.Foo.foo'</span><span class="p">,</span> <span class="n">new_callable</span><span class="o">=</span><span class="n">PropertyMock</span><span class="p">)</span> <span class="k">as</span> <span class="n">mock_foo</span><span class="p">:</span>
|
|
<span class="gp">... </span> <span class="n">mock_foo</span><span class="o">.</span><span class="n">return_value</span> <span class="o">=</span> <span class="s">'mockity-mock'</span>
|
|
<span class="gp">... </span> <span class="n">this_foo</span> <span class="o">=</span> <span class="n">Foo</span><span class="p">()</span>
|
|
<span class="gp">... </span> <span class="k">print</span> <span class="n">this_foo</span><span class="o">.</span><span class="n">foo</span>
|
|
<span class="gp">... </span> <span class="n">this_foo</span><span class="o">.</span><span class="n">foo</span> <span class="o">=</span> <span class="mi">6</span>
|
|
<span class="gp">...</span>
|
|
<span class="go">mockity-mock</span>
|
|
<span class="gp">>>> </span><span class="n">mock_foo</span><span class="o">.</span><span class="n">mock_calls</span>
|
|
<span class="go">[call(), call(6)]</span>
|
|
</pre></div>
|
|
</div>
|
|
</dd></dl>
|
|
|
|
<p>Because of the way mock attributes are stored you can’t directly attach a
|
|
<cite>PropertyMock</cite> to a mock object. Instead you can attach it to the mock type
|
|
object:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">m</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">p</span> <span class="o">=</span> <span class="n">PropertyMock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="nb">type</span><span class="p">(</span><span class="n">m</span><span class="p">)</span><span class="o">.</span><span class="n">foo</span> <span class="o">=</span> <span class="n">p</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">foo</span>
|
|
<span class="go">3</span>
|
|
<span class="gp">>>> </span><span class="n">p</span><span class="o">.</span><span class="n">assert_called_once_with</span><span class="p">()</span>
|
|
</pre></div>
|
|
</div>
|
|
<span class="target" id="index-5"></span></div>
|
|
<div class="section" id="calling">
|
|
<span id="index-6"></span><h1>Calling<a class="headerlink" href="#calling" title="Permalink to this headline">¶</a></h1>
|
|
<p>Mock objects are callable. The call will return the value set as the
|
|
<a class="reference internal" href="#mock.Mock.return_value" title="mock.Mock.return_value"><tt class="xref py py-attr docutils literal"><span class="pre">return_value</span></tt></a> attribute. The default return value is a new Mock
|
|
object; it is created the first time the return value is accessed (either
|
|
explicitly or by calling the Mock) - but it is stored and the same one
|
|
returned each time.</p>
|
|
<p>Calls made to the object will be recorded in the attributes
|
|
like <a class="reference internal" href="#mock.Mock.call_args" title="mock.Mock.call_args"><tt class="xref py py-attr docutils literal"><span class="pre">call_args</span></tt></a> and <a class="reference internal" href="#mock.Mock.call_args_list" title="mock.Mock.call_args_list"><tt class="xref py py-attr docutils literal"><span class="pre">call_args_list</span></tt></a>.</p>
|
|
<p>If <a class="reference internal" href="#mock.Mock.side_effect" title="mock.Mock.side_effect"><tt class="xref py py-attr docutils literal"><span class="pre">side_effect</span></tt></a> is set then it will be called after the call has
|
|
been recorded, so if <cite>side_effect</cite> raises an exception the call is still
|
|
recorded.</p>
|
|
<p>The simplest way to make a mock raise an exception when called is to make
|
|
<a class="reference internal" href="#mock.Mock.side_effect" title="mock.Mock.side_effect"><tt class="xref py py-attr docutils literal"><span class="pre">side_effect</span></tt></a> an exception class or instance:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">m</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">(</span><span class="n">side_effect</span><span class="o">=</span><span class="ne">IndexError</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
|
|
<span class="gt">Traceback (most recent call last):</span>
|
|
<span class="c">...</span>
|
|
<span class="gr">IndexError</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">mock_calls</span>
|
|
<span class="go">[call(1, 2, 3)]</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">side_effect</span> <span class="o">=</span> <span class="ne">KeyError</span><span class="p">(</span><span class="s">'Bang!'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">(</span><span class="s">'two'</span><span class="p">,</span> <span class="s">'three'</span><span class="p">,</span> <span class="s">'four'</span><span class="p">)</span>
|
|
<span class="gt">Traceback (most recent call last):</span>
|
|
<span class="c">...</span>
|
|
<span class="gr">KeyError</span>: <span class="n">'Bang!'</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">mock_calls</span>
|
|
<span class="go">[call(1, 2, 3), call('two', 'three', 'four')]</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>If <cite>side_effect</cite> is a function then whatever that function returns is what
|
|
calls to the mock return. The <cite>side_effect</cite> function is called with the
|
|
same arguments as the mock. This allows you to vary the return value of the
|
|
call dynamically, based on the input:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="k">def</span> <span class="nf">side_effect</span><span class="p">(</span><span class="n">value</span><span class="p">):</span>
|
|
<span class="gp">... </span> <span class="k">return</span> <span class="n">value</span> <span class="o">+</span> <span class="mi">1</span>
|
|
<span class="gp">...</span>
|
|
<span class="gp">>>> </span><span class="n">m</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">(</span><span class="n">side_effect</span><span class="o">=</span><span class="n">side_effect</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
<span class="go">2</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
|
|
<span class="go">3</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">mock_calls</span>
|
|
<span class="go">[call(1), call(2)]</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>If you want the mock to still return the default return value (a new mock), or
|
|
any set return value, then there are two ways of doing this. Either return
|
|
<cite>mock.return_value</cite> from inside <cite>side_effect</cite>, or return <a class="reference internal" href="sentinel.html#mock.DEFAULT" title="mock.DEFAULT"><tt class="xref py py-data docutils literal"><span class="pre">DEFAULT</span></tt></a>:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">m</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="k">def</span> <span class="nf">side_effect</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="gp">... </span> <span class="k">return</span> <span class="n">m</span><span class="o">.</span><span class="n">return_value</span>
|
|
<span class="gp">...</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">side_effect</span> <span class="o">=</span> <span class="n">side_effect</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">return_value</span> <span class="o">=</span> <span class="mi">3</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="go">3</span>
|
|
<span class="gp">>>> </span><span class="k">def</span> <span class="nf">side_effect</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="gp">... </span> <span class="k">return</span> <span class="n">DEFAULT</span>
|
|
<span class="gp">...</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">side_effect</span> <span class="o">=</span> <span class="n">side_effect</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="go">3</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>To remove a <cite>side_effect</cite>, and return to the default behaviour, set the
|
|
<cite>side_effect</cite> to <cite>None</cite>:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">m</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="mi">6</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="k">def</span> <span class="nf">side_effect</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="gp">... </span> <span class="k">return</span> <span class="mi">3</span>
|
|
<span class="gp">...</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">side_effect</span> <span class="o">=</span> <span class="n">side_effect</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="go">3</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="o">.</span><span class="n">side_effect</span> <span class="o">=</span> <span class="bp">None</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="go">6</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>The <cite>side_effect</cite> can also be any iterable object. Repeated calls to the mock
|
|
will return values from the iterable (until the iterable is exhausted and
|
|
a <cite>StopIteration</cite> is raised):</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">m</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">(</span><span class="n">side_effect</span><span class="o">=</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="go">1</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="go">2</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="go">3</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="gt">Traceback (most recent call last):</span>
|
|
<span class="c">...</span>
|
|
<span class="gr">StopIteration</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>If any members of the iterable are exceptions they will be raised instead of
|
|
returned:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">iterable</span> <span class="o">=</span> <span class="p">(</span><span class="mi">33</span><span class="p">,</span> <span class="ne">ValueError</span><span class="p">,</span> <span class="mi">66</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">m</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">(</span><span class="n">side_effect</span><span class="o">=</span><span class="n">iterable</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="go">33</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="gt">Traceback (most recent call last):</span>
|
|
<span class="c">...</span>
|
|
<span class="gr">ValueError</span>
|
|
<span class="gp">>>> </span><span class="n">m</span><span class="p">()</span>
|
|
<span class="go">66</span>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="deleting-attributes">
|
|
<span id="id2"></span><h1>Deleting Attributes<a class="headerlink" href="#deleting-attributes" title="Permalink to this headline">¶</a></h1>
|
|
<p>Mock objects create attributes on demand. This allows them to pretend to be
|
|
objects of any type.</p>
|
|
<p>You may want a mock object to return <cite>False</cite> to a <cite>hasattr</cite> call, or raise an
|
|
<cite>AttributeError</cite> when an attribute is fetched. You can do this by providing
|
|
an object as a <cite>spec</cite> for a mock, but that isn’t always convenient.</p>
|
|
<p>You “block” attributes by deleting them. Once deleted, accessing an attribute
|
|
will raise an <cite>AttributeError</cite>.</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="nb">hasattr</span><span class="p">(</span><span class="n">mock</span><span class="p">,</span> <span class="s">'m'</span><span class="p">)</span>
|
|
<span class="go">True</span>
|
|
<span class="gp">>>> </span><span class="k">del</span> <span class="n">mock</span><span class="o">.</span><span class="n">m</span>
|
|
<span class="gp">>>> </span><span class="nb">hasattr</span><span class="p">(</span><span class="n">mock</span><span class="p">,</span> <span class="s">'m'</span><span class="p">)</span>
|
|
<span class="go">False</span>
|
|
<span class="gp">>>> </span><span class="k">del</span> <span class="n">mock</span><span class="o">.</span><span class="n">f</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">f</span>
|
|
<span class="gt">Traceback (most recent call last):</span>
|
|
<span class="o">...</span>
|
|
<span class="gr">AttributeError</span>: <span class="n">f</span>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="attaching-mocks-as-attributes">
|
|
<h1>Attaching Mocks as Attributes<a class="headerlink" href="#attaching-mocks-as-attributes" title="Permalink to this headline">¶</a></h1>
|
|
<p>When you attach a mock as an attribute of another mock (or as the return
|
|
value) it becomes a “child” of that mock. Calls to the child are recorded in
|
|
the <a class="reference internal" href="#mock.Mock.method_calls" title="mock.Mock.method_calls"><tt class="xref py py-attr docutils literal"><span class="pre">method_calls</span></tt></a> and <a class="reference internal" href="#mock.Mock.mock_calls" title="mock.Mock.mock_calls"><tt class="xref py py-attr docutils literal"><span class="pre">mock_calls</span></tt></a> attributes of the
|
|
parent. This is useful for configuring child mocks and then attaching them to
|
|
the parent, or for attaching mocks to a parent that records all calls to the
|
|
children and allows you to make assertions about the order of calls between
|
|
mocks:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">parent</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">child1</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">child2</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">(</span><span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">parent</span><span class="o">.</span><span class="n">child1</span> <span class="o">=</span> <span class="n">child1</span>
|
|
<span class="gp">>>> </span><span class="n">parent</span><span class="o">.</span><span class="n">child2</span> <span class="o">=</span> <span class="n">child2</span>
|
|
<span class="gp">>>> </span><span class="n">child1</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">child2</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">parent</span><span class="o">.</span><span class="n">mock_calls</span>
|
|
<span class="go">[call.child1(1), call.child2(2)]</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>The exception to this is if the mock has a name. This allows you to prevent
|
|
the “parenting” if for some reason you don’t want it to happen.</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">mock</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">not_a_child</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s">'not-a-child'</span><span class="p">)</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">attribute</span> <span class="o">=</span> <span class="n">not_a_child</span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">attribute</span><span class="p">()</span>
|
|
<span class="go"><MagicMock name='not-a-child()' id='...'></span>
|
|
<span class="gp">>>> </span><span class="n">mock</span><span class="o">.</span><span class="n">mock_calls</span>
|
|
<span class="go">[]</span>
|
|
</pre></div>
|
|
</div>
|
|
<p>Mocks created for you by <a class="reference internal" href="patch.html#mock.patch" title="mock.patch"><tt class="xref py py-func docutils literal"><span class="pre">patch()</span></tt></a> are automatically given names. To
|
|
attach mocks that have names to a parent you use the <a class="reference internal" href="#mock.Mock.attach_mock" title="mock.Mock.attach_mock"><tt class="xref py py-meth docutils literal"><span class="pre">attach_mock()</span></tt></a>
|
|
method:</p>
|
|
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="n">thing1</span> <span class="o">=</span> <span class="nb">object</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">thing2</span> <span class="o">=</span> <span class="nb">object</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="n">parent</span> <span class="o">=</span> <span class="n">MagicMock</span><span class="p">()</span>
|
|
<span class="gp">>>> </span><span class="k">with</span> <span class="n">patch</span><span class="p">(</span><span class="s">'__main__.thing1'</span><span class="p">,</span> <span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span> <span class="k">as</span> <span class="n">child1</span><span class="p">:</span>
|
|
<span class="gp">... </span> <span class="k">with</span> <span class="n">patch</span><span class="p">(</span><span class="s">'__main__.thing2'</span><span class="p">,</span> <span class="n">return_value</span><span class="o">=</span><span class="bp">None</span><span class="p">)</span> <span class="k">as</span> <span class="n">child2</span><span class="p">:</span>
|
|
<span class="gp">... </span> <span class="n">parent</span><span class="o">.</span><span class="n">attach_mock</span><span class="p">(</span><span class="n">child1</span><span class="p">,</span> <span class="s">'child1'</span><span class="p">)</span>
|
|
<span class="gp">... </span> <span class="n">parent</span><span class="o">.</span><span class="n">attach_mock</span><span class="p">(</span><span class="n">child2</span><span class="p">,</span> <span class="s">'child2'</span><span class="p">)</span>
|
|
<span class="gp">... </span> <span class="n">child1</span><span class="p">(</span><span class="s">'one'</span><span class="p">)</span>
|
|
<span class="gp">... </span> <span class="n">child2</span><span class="p">(</span><span class="s">'two'</span><span class="p">)</span>
|
|
<span class="gp">...</span>
|
|
<span class="gp">>>> </span><span class="n">parent</span><span class="o">.</span><span class="n">mock_calls</span>
|
|
<span class="go">[call.child1('one'), call.child2('two')]</span>
|
|
</pre></div>
|
|
</div>
|
|
<hr class="docutils" />
|
|
<table class="docutils footnote" frame="void" id="id3" rules="none">
|
|
<colgroup><col class="label" /><col /></colgroup>
|
|
<tbody valign="top">
|
|
<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>The only exceptions are magic methods and attributes (those that have
|
|
leading and trailing double underscores). Mock doesn’t create these but
|
|
instead of raises an <tt class="docutils literal"><span class="pre">AttributeError</span></tt>. This is because the interpreter
|
|
will often implicitly request these methods, and gets <em>very</em> confused to
|
|
get a new Mock object when it expects a magic method. If you need magic
|
|
method support see <a class="reference internal" href="magicmock.html#magic-methods"><em>magic methods</em></a>.</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sphinxsidebar">
|
|
<div class="sphinxsidebarwrapper">
|
|
<h3><a href="index.html">Table Of Contents</a></h3>
|
|
<ul>
|
|
<li><a class="reference internal" href="#">The Mock Class</a></li>
|
|
<li><a class="reference internal" href="#calling">Calling</a></li>
|
|
<li><a class="reference internal" href="#deleting-attributes">Deleting Attributes</a></li>
|
|
<li><a class="reference internal" href="#attaching-mocks-as-attributes">Attaching Mocks as Attributes</a></li>
|
|
</ul>
|
|
|
|
<h4>Previous topic</h4>
|
|
<p class="topless"><a href="index.html"
|
|
title="previous chapter">Mock - Mocking and Testing Library</a></p>
|
|
<h4>Next topic</h4>
|
|
<p class="topless"><a href="patch.html"
|
|
title="next chapter">Patch Decorators</a></p>
|
|
<h3>This Page</h3>
|
|
<ul class="this-page-menu">
|
|
<li><a href="_sources/mock.txt"
|
|
rel="nofollow">Show Source</a></li>
|
|
</ul>
|
|
<div id="searchbox" style="display: none">
|
|
<h3>Quick search</h3>
|
|
<form class="search" action="search.html" method="get">
|
|
<input type="text" name="q" />
|
|
<input type="submit" value="Go" />
|
|
<input type="hidden" name="check_keywords" value="yes" />
|
|
<input type="hidden" name="area" value="default" />
|
|
</form>
|
|
<p class="searchtip" style="font-size: 90%">
|
|
Enter search terms or a module, class or function name.
|
|
</p>
|
|
</div>
|
|
<script type="text/javascript">$('#searchbox').show(0);</script>
|
|
</div>
|
|
</div>
|
|
<div class="clearer"></div>
|
|
</div>
|
|
<div class="related">
|
|
<h3>Navigation</h3>
|
|
<ul>
|
|
<li class="right" style="margin-right: 10px">
|
|
<a href="genindex.html" title="General Index"
|
|
>index</a></li>
|
|
<li class="right" >
|
|
<a href="patch.html" title="Patch Decorators"
|
|
>next</a> |</li>
|
|
<li class="right" >
|
|
<a href="index.html" title="Mock - Mocking and Testing Library"
|
|
>previous</a> |</li>
|
|
<li><a href="index.html">Mock 1.0.0 documentation</a> »</li>
|
|
</ul>
|
|
</div>
|
|
<div class="footer">
|
|
© Copyright 2007-2012, Michael Foord & the mock team.
|
|
Last updated on Oct 07, 2012.
|
|
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
|
|
</div>
|
|
</body>
|
|
</html> |