516 lines
36 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta property="og:title" content="Development Tools" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://docs.python.org/3/library/development.html" />
<meta property="og:site_name" content="Python documentation" />
<meta property="og:description" content="The modules described in this chapter help you write software. For example, the pydoc module takes a module and generates documentation based on the modules contents. The doctest and unittest modu..." />
<meta property="og:image" content="https://docs.python.org/3/_static/og-image.png" />
<meta property="og:image:alt" content="Python documentation" />
<meta name="description" content="The modules described in this chapter help you write software. For example, the pydoc module takes a module and generates documentation based on the modules contents. The doctest and unittest modu..." />
<meta property="og:image:width" content="200">
<meta property="og:image:height" content="200">
<meta name="theme-color" content="#3776ab">
<title>Development Tools &#8212; Python 3.13.3 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=23252803" />
<link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=5349f25f" />
<script src="../_static/documentation_options.js?v=5d57ca2d"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/sidebar.js"></script>
<link rel="search" type="application/opensearchdescription+xml"
title="Search within Python 3.13.3 documentation"
href="../_static/opensearch.xml"/>
<link rel="author" title="About these documents" href="../about.html" />
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="copyright" title="Copyright" href="../copyright.html" />
<link rel="next" title="typing — Support for type hints" href="typing.html" />
<link rel="prev" title="IDLE — Python editor and shell" href="idle.html" />
<link rel="canonical" href="https://docs.python.org/3/library/development.html">
<style>
@media only screen {
table.full-width-table {
width: 100%;
}
}
</style>
<link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">
<link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
<script type="text/javascript" src="../_static/copybutton.js"></script>
<script type="text/javascript" src="../_static/menu.js"></script>
<script type="text/javascript" src="../_static/search-focus.js"></script>
<script type="text/javascript" src="../_static/themetoggle.js"></script>
<script type="text/javascript" src="../_static/rtd_switcher.js"></script>
<meta name="readthedocs-addons-api-version" content="1">
</head>
<body>
<div class="mobile-nav">
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
<nav class="nav-content" role="navigation">
<label for="menuToggler" class="toggler__label">
<span></span>
</label>
<span class="nav-items-wrapper">
<a href="https://www.python.org/" class="nav-logo">
<img src="../_static/py.svg" alt="Python logo"/>
</a>
<span class="version_switcher_placeholder"></span>
<form role="search" class="search" action="../search.html" method="get">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
<path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
</svg>
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" />
<input type="submit" value="Go"/>
</form>
</span>
</nav>
<div class="menu-wrapper">
<nav class="menu" role="navigation" aria-label="main navigation">
<div class="language_switcher_placeholder"></div>
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="idle.html"
title="previous chapter">IDLE — Python editor and shell</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="typing.html"
title="next chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code> — Support for type hints</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">Report a Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/main/Doc/library/development.rst"
rel="nofollow">Show Source
</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
<div class="related" role="navigation" aria-label="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="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="typing.html" title="typing — Support for type hints"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="idle.html" title="IDLE — Python editor and shell"
accesskey="P">previous</a> |</li>
<li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.13.3 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" accesskey="U">The Python Standard Library</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Development Tools</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" />
<input type="submit" value="Go" />
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="development-tools">
<span id="development"></span><h1>Development Tools<a class="headerlink" href="#development-tools" title="Link to this heading"></a></h1>
<p>The modules described in this chapter help you write software. For example, the
<a class="reference internal" href="pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a> module takes a module and generates documentation based on the
modules contents. The <a class="reference internal" href="doctest.html#module-doctest" title="doctest: Test pieces of code within docstrings."><code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code></a> and <a class="reference internal" href="unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> modules contains
frameworks for writing unit tests that automatically exercise code and verify
that the expected output is produced.</p>
<p>The list of modules described in this chapter is:</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="typing.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code> — Support for type hints</a><ul>
<li class="toctree-l2"><a class="reference internal" href="typing.html#specification-for-the-python-type-system">Specification for the Python Type System</a></li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#type-aliases">Type aliases</a></li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#newtype">NewType</a></li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#annotating-callable-objects">Annotating callable objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#generics">Generics</a></li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#annotating-tuples">Annotating tuples</a></li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#the-type-of-class-objects">The type of class objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#annotating-generators-and-coroutines">Annotating generators and coroutines</a></li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#user-defined-generic-types">User-defined generic types</a></li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#the-any-type">The <code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code> type</a></li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#nominal-vs-structural-subtyping">Nominal vs structural subtyping</a></li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#module-contents">Module contents</a><ul>
<li class="toctree-l3"><a class="reference internal" href="typing.html#special-typing-primitives">Special typing primitives</a><ul>
<li class="toctree-l4"><a class="reference internal" href="typing.html#special-types">Special types</a></li>
<li class="toctree-l4"><a class="reference internal" href="typing.html#special-forms">Special forms</a></li>
<li class="toctree-l4"><a class="reference internal" href="typing.html#building-generic-types-and-type-aliases">Building generic types and type aliases</a></li>
<li class="toctree-l4"><a class="reference internal" href="typing.html#other-special-directives">Other special directives</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="typing.html#protocols">Protocols</a></li>
<li class="toctree-l3"><a class="reference internal" href="typing.html#abcs-for-working-with-io">ABCs for working with IO</a></li>
<li class="toctree-l3"><a class="reference internal" href="typing.html#functions-and-decorators">Functions and decorators</a></li>
<li class="toctree-l3"><a class="reference internal" href="typing.html#introspection-helpers">Introspection helpers</a></li>
<li class="toctree-l3"><a class="reference internal" href="typing.html#constant">Constant</a></li>
<li class="toctree-l3"><a class="reference internal" href="typing.html#deprecated-aliases">Deprecated aliases</a><ul>
<li class="toctree-l4"><a class="reference internal" href="typing.html#aliases-to-built-in-types">Aliases to built-in types</a></li>
<li class="toctree-l4"><a class="reference internal" href="typing.html#aliases-to-types-in-collections">Aliases to types in <code class="xref py py-mod docutils literal notranslate"><span class="pre">collections</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="typing.html#aliases-to-other-concrete-types">Aliases to other concrete types</a></li>
<li class="toctree-l4"><a class="reference internal" href="typing.html#aliases-to-container-abcs-in-collections-abc">Aliases to container ABCs in <code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="typing.html#aliases-to-asynchronous-abcs-in-collections-abc">Aliases to asynchronous ABCs in <code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="typing.html#aliases-to-other-abcs-in-collections-abc">Aliases to other ABCs in <code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="typing.html#aliases-to-contextlib-abcs">Aliases to <code class="xref py py-mod docutils literal notranslate"><span class="pre">contextlib</span></code> ABCs</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="typing.html#deprecation-timeline-of-major-features">Deprecation Timeline of Major Features</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="pydoc.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code> — Documentation generator and online help system</a></li>
<li class="toctree-l1"><a class="reference internal" href="devmode.html">Python Development Mode</a><ul>
<li class="toctree-l2"><a class="reference internal" href="devmode.html#effects-of-the-python-development-mode">Effects of the Python Development Mode</a></li>
<li class="toctree-l2"><a class="reference internal" href="devmode.html#resourcewarning-example">ResourceWarning Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="devmode.html#bad-file-descriptor-error-example">Bad file descriptor error example</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="doctest.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code> — Test interactive Python examples</a><ul>
<li class="toctree-l2"><a class="reference internal" href="doctest.html#simple-usage-checking-examples-in-docstrings">Simple Usage: Checking Examples in Docstrings</a></li>
<li class="toctree-l2"><a class="reference internal" href="doctest.html#simple-usage-checking-examples-in-a-text-file">Simple Usage: Checking Examples in a Text File</a></li>
<li class="toctree-l2"><a class="reference internal" href="doctest.html#command-line-usage">Command-line Usage</a></li>
<li class="toctree-l2"><a class="reference internal" href="doctest.html#how-it-works">How It Works</a><ul>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#which-docstrings-are-examined">Which Docstrings Are Examined?</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#how-are-docstring-examples-recognized">How are Docstring Examples Recognized?</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#what-s-the-execution-context">Whats the Execution Context?</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#what-about-exceptions">What About Exceptions?</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#option-flags">Option Flags</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#directives">Directives</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#warnings">Warnings</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="doctest.html#basic-api">Basic API</a></li>
<li class="toctree-l2"><a class="reference internal" href="doctest.html#unittest-api">Unittest API</a></li>
<li class="toctree-l2"><a class="reference internal" href="doctest.html#advanced-api">Advanced API</a><ul>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#doctest-objects">DocTest Objects</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#example-objects">Example Objects</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#doctestfinder-objects">DocTestFinder objects</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#doctestparser-objects">DocTestParser objects</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#testresults-objects">TestResults objects</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#doctestrunner-objects">DocTestRunner objects</a></li>
<li class="toctree-l3"><a class="reference internal" href="doctest.html#outputchecker-objects">OutputChecker objects</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="doctest.html#debugging">Debugging</a></li>
<li class="toctree-l2"><a class="reference internal" href="doctest.html#soapbox">Soapbox</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="unittest.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code> — Unit testing framework</a><ul>
<li class="toctree-l2"><a class="reference internal" href="unittest.html#basic-example">Basic example</a></li>
<li class="toctree-l2"><a class="reference internal" href="unittest.html#command-line-interface">Command-Line Interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="unittest.html#command-line-options">Command-line options</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="unittest.html#test-discovery">Test Discovery</a></li>
<li class="toctree-l2"><a class="reference internal" href="unittest.html#organizing-test-code">Organizing test code</a></li>
<li class="toctree-l2"><a class="reference internal" href="unittest.html#re-using-old-test-code">Re-using old test code</a></li>
<li class="toctree-l2"><a class="reference internal" href="unittest.html#skipping-tests-and-expected-failures">Skipping tests and expected failures</a></li>
<li class="toctree-l2"><a class="reference internal" href="unittest.html#distinguishing-test-iterations-using-subtests">Distinguishing test iterations using subtests</a></li>
<li class="toctree-l2"><a class="reference internal" href="unittest.html#classes-and-functions">Classes and functions</a><ul>
<li class="toctree-l3"><a class="reference internal" href="unittest.html#test-cases">Test cases</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.html#grouping-tests">Grouping tests</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.html#loading-and-running-tests">Loading and running tests</a><ul>
<li class="toctree-l4"><a class="reference internal" href="unittest.html#load-tests-protocol">load_tests Protocol</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="unittest.html#class-and-module-fixtures">Class and Module Fixtures</a><ul>
<li class="toctree-l3"><a class="reference internal" href="unittest.html#setupclass-and-teardownclass">setUpClass and tearDownClass</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.html#setupmodule-and-teardownmodule">setUpModule and tearDownModule</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="unittest.html#signal-handling">Signal Handling</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="unittest.mock.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest.mock</span></code> — mock object library</a><ul>
<li class="toctree-l2"><a class="reference internal" href="unittest.mock.html#quick-guide">Quick Guide</a></li>
<li class="toctree-l2"><a class="reference internal" href="unittest.mock.html#the-mock-class">The Mock Class</a><ul>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#calling">Calling</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#deleting-attributes">Deleting Attributes</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#mock-names-and-the-name-attribute">Mock names and the name attribute</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#attaching-mocks-as-attributes">Attaching Mocks as Attributes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="unittest.mock.html#the-patchers">The patchers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#patch">patch</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#patch-object">patch.object</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#patch-dict">patch.dict</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#patch-multiple">patch.multiple</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#patch-methods-start-and-stop">patch methods: start and stop</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#patch-builtins">patch builtins</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#test-prefix">TEST_PREFIX</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#nesting-patch-decorators">Nesting Patch Decorators</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#where-to-patch">Where to patch</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#patching-descriptors-and-proxy-objects">Patching Descriptors and Proxy Objects</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="unittest.mock.html#magicmock-and-magic-method-support">MagicMock and magic method support</a><ul>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#mocking-magic-methods">Mocking Magic Methods</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#magic-mock">Magic Mock</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="unittest.mock.html#helpers">Helpers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#sentinel">sentinel</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#default">DEFAULT</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#call">call</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#create-autospec">create_autospec</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#any">ANY</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#filter-dir">FILTER_DIR</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#mock-open">mock_open</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#autospeccing">Autospeccing</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock.html#sealing-mocks">Sealing mocks</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="unittest.mock.html#order-of-precedence-of-side-effect-return-value-and-wraps">Order of precedence of <code class="xref py py-attr docutils literal notranslate"><span class="pre">side_effect</span></code>, <code class="xref py py-attr docutils literal notranslate"><span class="pre">return_value</span></code> and <em>wraps</em></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="unittest.mock-examples.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest.mock</span></code> — getting started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="unittest.mock-examples.html#using-mock">Using Mock</a><ul>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#mock-patching-methods">Mock Patching Methods</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#mock-for-method-calls-on-an-object">Mock for Method Calls on an Object</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#mocking-classes">Mocking Classes</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#naming-your-mocks">Naming your mocks</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#tracking-all-calls">Tracking all Calls</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#setting-return-values-and-attributes">Setting Return Values and Attributes</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#raising-exceptions-with-mocks">Raising exceptions with mocks</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#side-effect-functions-and-iterables">Side effect functions and iterables</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#mocking-asynchronous-iterators">Mocking asynchronous iterators</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#mocking-asynchronous-context-manager">Mocking asynchronous context manager</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#creating-a-mock-from-an-existing-object">Creating a Mock from an Existing Object</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#using-side-effect-to-return-per-file-content">Using side_effect to return per file content</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="unittest.mock-examples.html#patch-decorators">Patch Decorators</a></li>
<li class="toctree-l2"><a class="reference internal" href="unittest.mock-examples.html#further-examples">Further Examples</a><ul>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#mocking-chained-calls">Mocking chained calls</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#partial-mocking">Partial mocking</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#mocking-a-generator-method">Mocking a Generator Method</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#applying-the-same-patch-to-every-test-method">Applying the same patch to every test method</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#mocking-unbound-methods">Mocking Unbound Methods</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#checking-multiple-calls-with-mock">Checking multiple calls with mock</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#coping-with-mutable-arguments">Coping with mutable arguments</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#nesting-patches">Nesting Patches</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#mocking-a-dictionary-with-magicmock">Mocking a dictionary with MagicMock</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#mock-subclasses-and-their-attributes">Mock subclasses and their attributes</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#mocking-imports-with-patch-dict">Mocking imports with patch.dict</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#tracking-order-of-calls-and-less-verbose-call-assertions">Tracking order of calls and less verbose call assertions</a></li>
<li class="toctree-l3"><a class="reference internal" href="unittest.mock-examples.html#more-complex-argument-matching">More complex argument matching</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="test.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test</span></code> — Regression tests package for Python</a><ul>
<li class="toctree-l2"><a class="reference internal" href="test.html#writing-unit-tests-for-the-test-package">Writing Unit Tests for the <code class="xref py py-mod docutils literal notranslate"><span class="pre">test</span></code> package</a></li>
<li class="toctree-l2"><a class="reference internal" href="test.html#module-test.regrtest">Running tests using the command-line interface</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="test.html#module-test.support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support</span></code> — Utilities for the Python test suite</a></li>
<li class="toctree-l1"><a class="reference internal" href="test.html#module-test.support.socket_helper"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support.socket_helper</span></code> — Utilities for socket tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="test.html#module-test.support.script_helper"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support.script_helper</span></code> — Utilities for the Python execution tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="test.html#module-test.support.bytecode_helper"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support.bytecode_helper</span></code> — Support tools for testing correct bytecode generation</a></li>
<li class="toctree-l1"><a class="reference internal" href="test.html#module-test.support.threading_helper"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support.threading_helper</span></code> — Utilities for threading tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="test.html#module-test.support.os_helper"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support.os_helper</span></code> — Utilities for os tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="test.html#module-test.support.import_helper"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support.import_helper</span></code> — Utilities for import tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="test.html#module-test.support.warnings_helper"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support.warnings_helper</span></code> — Utilities for warnings tests</a></li>
</ul>
</div>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="idle.html"
title="previous chapter">IDLE — Python editor and shell</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="typing.html"
title="next chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code> — Support for type hints</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">Report a Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/main/Doc/library/development.rst"
rel="nofollow">Show Source
</a>
</li>
</ul>
</div>
</div>
<div id="sidebarbutton" title="Collapse sidebar">
<span>«</span>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="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="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="typing.html" title="typing — Support for type hints"
>next</a> |</li>
<li class="right" >
<a href="idle.html" title="IDLE — Python editor and shell"
>previous</a> |</li>
<li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.13.3 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Development Tools</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" />
<input type="submit" value="Go" />
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="footer">
&copy;
<a href="../copyright.html">
Copyright
</a>
2001-2025, Python Software Foundation.
<br />
This page is licensed under the Python Software Foundation License Version 2.
<br />
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
<br />
See <a href="/license.html">History and License</a> for more information.<br />
<br />
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br />
<br />
Last updated on Apr 08, 2025 (14:33 UTC).
<a href="/bugs.html">Found a bug</a>?
<br />
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>