| 
									
										
										
										
											2009-07-19 21:01:52 +00:00
										 |  |  | """
 | 
					
						
							|  |  |  | Python unit testing framework, based on Erich Gamma's JUnit and Kent Beck's | 
					
						
							| 
									
										
										
										
											2016-01-15 09:53:51 -08:00
										 |  |  | Smalltalk testing framework (used with permission). | 
					
						
							| 
									
										
										
										
											2009-07-19 21:01:52 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-09 10:34:24 +01:00
										 |  |  |     class IntegerArithmeticTestCase(unittest.TestCase): | 
					
						
							| 
									
										
										
										
											2016-09-28 17:28:41 +03:00
										 |  |  |         def testAdd(self):  # test method names begin with 'test' | 
					
						
							| 
									
										
										
										
											2009-07-19 21:01:52 +00:00
										 |  |  |             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 | 
					
						
							| 
									
										
										
										
											2024-11-12 15:59:19 +02:00
										 |  |  | Copyright (c) 2003 Python Software Foundation | 
					
						
							| 
									
										
										
										
											2009-07-19 21:01:52 +00:00
										 |  |  | 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. | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-29 12:33:59 +03:00
										 |  |  | __all__ = ['TestResult', 'TestCase', 'IsolatedAsyncioTestCase', 'TestSuite', | 
					
						
							| 
									
										
										
										
											2009-07-19 21:01:52 +00:00
										 |  |  |            'TextTestRunner', 'TestLoader', 'FunctionTestCase', 'main', | 
					
						
							|  |  |  |            'defaultTestLoader', 'SkipTest', 'skip', 'skipIf', 'skipUnless', | 
					
						
							| 
									
										
										
										
											2010-03-27 13:25:41 +00:00
										 |  |  |            'expectedFailure', 'TextTestResult', 'installHandler', | 
					
						
							| 
									
										
										
										
											2018-11-08 18:34:33 -08:00
										 |  |  |            'registerResult', 'removeResult', 'removeHandler', | 
					
						
							| 
									
										
										
										
											2022-05-08 17:49:09 +03:00
										 |  |  |            'addModuleCleanup', 'doModuleCleanups', 'enterModuleContext'] | 
					
						
							| 
									
										
										
										
											2009-07-19 21:01:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-22 02:53:52 +00:00
										 |  |  | __unittest = True | 
					
						
							| 
									
										
										
										
											2009-07-19 21:01:52 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | from .result import TestResult | 
					
						
							| 
									
										
										
										
											2018-11-08 18:34:33 -08:00
										 |  |  | from .case import (addModuleCleanup, TestCase, FunctionTestCase, SkipTest, skip, | 
					
						
							| 
									
										
										
										
											2022-05-08 17:49:09 +03:00
										 |  |  |                    skipIf, skipUnless, expectedFailure, doModuleCleanups, | 
					
						
							|  |  |  |                    enterModuleContext) | 
					
						
							| 
									
										
										
										
											2024-06-13 16:14:50 +02:00
										 |  |  | from .suite import BaseTestSuite, TestSuite  # noqa: F401 | 
					
						
							| 
									
										
										
										
											2021-09-15 20:33:31 +02:00
										 |  |  | from .loader import TestLoader, defaultTestLoader | 
					
						
							| 
									
										
										
										
											2024-06-13 16:14:50 +02:00
										 |  |  | from .main import TestProgram, main  # noqa: F401 | 
					
						
							| 
									
										
										
										
											2010-02-10 15:51:42 +00:00
										 |  |  | from .runner import TextTestRunner, TextTestResult | 
					
						
							| 
									
										
										
										
											2010-04-25 19:53:49 +00:00
										 |  |  | from .signals import installHandler, registerResult, removeResult, removeHandler | 
					
						
							| 
									
										
										
										
											2020-04-25 10:04:10 +03:00
										 |  |  | # IsolatedAsyncioTestCase will be imported lazily. | 
					
						
							| 
									
										
										
										
											2010-02-10 15:51:42 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-15 20:33:31 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-04-25 10:04:10 +03:00
										 |  |  | # 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}") |