12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- """
- Python unit testing framework, based on Erich Gamma's JUnit and Kent Beck's
- Smalltalk testing framework (used with permission).
- This module contains the core framework classes that form the basis of
- specific test cases and suites (TestCase, TestSuite etc.), and also a
- text-based utility class for running the tests and reporting the results
- (TextTestRunner).
- Simple usage:
- import unittest
- class IntegerArithmeticTestCase(unittest.TestCase):
- def testAdd(self): # test method names begin with 'test'
- self.assertEqual((1 + 2), 3)
- self.assertEqual(0 + 1, 1)
- def testMultiply(self):
- self.assertEqual((0 * 10), 0)
- self.assertEqual((5 * 8), 40)
- if __name__ == '__main__':
- unittest.main()
- Further information is available in the bundled documentation, and from
- http://docs.python.org/library/unittest.html
- Copyright (c) 1999-2003 Steve Purcell
- Copyright (c) 2003-2010 Python Software Foundation
- This module is free software, and you may redistribute it and/or modify
- it under the same terms as Python itself, so long as this copyright message
- and disclaimer are retained in their original form.
- IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
- SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF
- THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
- DAMAGE.
- THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS,
- AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
- SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- """
- __all__ = ['TestResult', 'TestCase', 'IsolatedAsyncioTestCase', 'TestSuite',
- 'TextTestRunner', 'TestLoader', 'FunctionTestCase', 'main',
- 'defaultTestLoader', 'SkipTest', 'skip', 'skipIf', 'skipUnless',
- 'expectedFailure', 'TextTestResult', 'installHandler',
- 'registerResult', 'removeResult', 'removeHandler',
- 'addModuleCleanup', 'doModuleCleanups', 'enterModuleContext']
- # Expose obsolete functions for backwards compatibility
- # bpo-5846: Deprecated in Python 3.11, scheduled for removal in Python 3.13.
- __all__.extend(['getTestCaseNames', 'makeSuite', 'findTestCases'])
- __unittest = True
- from .result import TestResult
- from .case import (addModuleCleanup, TestCase, FunctionTestCase, SkipTest, skip,
- skipIf, skipUnless, expectedFailure, doModuleCleanups,
- enterModuleContext)
- from .suite import BaseTestSuite, TestSuite
- from .loader import TestLoader, defaultTestLoader
- from .main import TestProgram, main
- from .runner import TextTestRunner, TextTestResult
- from .signals import installHandler, registerResult, removeResult, removeHandler
- # IsolatedAsyncioTestCase will be imported lazily.
- from .loader import makeSuite, getTestCaseNames, findTestCases
- # Lazy import of IsolatedAsyncioTestCase from .async_case
- # It imports asyncio, which is relatively heavy, but most tests
- # do not need it.
- def __dir__():
- return globals().keys() | {'IsolatedAsyncioTestCase'}
- def __getattr__(name):
- if name == 'IsolatedAsyncioTestCase':
- global IsolatedAsyncioTestCase
- from .async_case import IsolatedAsyncioTestCase
- return IsolatedAsyncioTestCase
- raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|