summaryrefslogtreecommitdiffstats
path: root/Lib/unittest
Commit message (Collapse)AuthorAgeFilesLines
* gh-96021: Explicitly tear down the IsolatedAsyncioTestCase loop in tests ↵Miss Islington (bot)2022-08-281-2/+7
| | | | | | | | | | | | (GH-96135) (GH-96235) Tests for IsolatedAsyncioTestCase.debug() rely on the runner be closed in __del__. It makes tests depending on the GC an unreliable on other implementations. It is better to tear down the loop explicitly even if currently there is no a public API for this. (cherry picked from commit 4de06e3cc0a58d73934f9a2759ad9cd2f6b031b0) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* gh-84753: Make inspect.iscoroutinefunction() work with AsyncMock (GH-94050) ↵Miss Islington (bot)2022-06-301-0/+4
| | | | | | | | | | | | | | (GH-94461) The inspect version was not working with unittest.mock.AsyncMock. The fix introduces special-casing of AsyncMock in `inspect.iscoroutinefunction` equivalent to the one performed in `asyncio.iscoroutinefunction`. Co-authored-by: Łukasz Langa <lukasz@langa.pl> (cherry picked from commit 4261b6bffc0b8bb5c6d4d80578a81b7520f4aefc) Co-authored-by: Mehdi ABAAKOUK <sileht@sileht.net>
* [3.10] gh-91676 gh-91260 unittest.IsolatedAsyncioTestCase no longer leaks ↵Gregory P. Smith2022-04-191-0/+2
| | | | | | | its executor (GH-91680) For things like test_asyncio.test_thread this was causing frequent "environment modified by test" errors as the executor threads had not always stopped running after the test was over.
* bpo-46421: Fix unittest filename evaluation when called as a module (GH-30654)Miss Islington (bot)2022-03-181-1/+1
| | | | | (cherry picked from commit a0db11b10fca0fee6bb2b8d6277e266bad8c0fdb) Co-authored-by: Bader Zaidan <bader@zaidan.pw>
* bpo-24959: fix unittest.assertRaises bug where traceback entries are dropped ↵Miss Islington (bot)2022-03-082-14/+94
| | | | | | | from chained exceptions (GH-23688) (cherry picked from commit 88b7d86a73da9388aa65c96401c2984c8c16f8db) Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
* bpo-41403: Improve error message for invalid mock target (GH-30833) (GH-30834)Irit Katriel2022-01-232-5/+10
| | | (cherry picked from commit f7955a82e36d4c32ebdd7b7707cdf0e6ffa7a418)
* [3.10] bpo-46425: Fix direct invocation of multiple test modules (GH-30666) ↵Nikita Sobolev2022-01-201-1/+1
| | | | (GH-30699)
* [3.10] bpo-46129: Rewrite asyncio.locks tests with IsolatedAsyncioTestCase ↵Andrew Svetlov2021-12-191-1/+0
| | | | | | | | (GH-30198) (GH-30202) Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>. (cherry picked from commit 9c06fd89514a9a2865e2adcc472095f6949cecb2) Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
* bpo-46111: Fix unittest tests in optimized mode (GH-30163)Miss Islington (bot)2021-12-173-3/+6
| | | | | (cherry picked from commit 95a922b3bb3af247ec141d73fcdfbf68bb1d32a5) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* [3.10] bpo-13236: Flush the output stream more often in unittest (GH-29864) ↵Serhiy Storchaka2021-12-103-4/+42
| | | | | | | | (GH-29929) It can prevent some losses when output to buffered stream.. (cherry picked from commit f42a06ba279c916fb67289e47f9bc60dc5dee4ee) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* ensure deprecation warning from assertDictContainsSubset points at actual ↵Anthony Sottile2021-11-162-1/+6
| | | | test code (#26497)
* [3.10] Fix typos in the Lib directory (GH-28775) (GH-28804)Christian Clauss2021-10-072-2/+2
| | | | | | | | Fix typos in the Lib directory as identified by codespell. Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>. (cherry picked from commit 745c9d9dfc1ad6fdfdf1d07420c6273ff67fa5be) Co-authored-by: Christian Clauss <cclauss@me.com>
* [3.10] bpo-45238: Fix unittest.IsolatedAsyncioTestCase.debug() (GH-28449) ↵Łukasz Langa2021-09-223-61/+174
| | | | | | | | | | (GH-28521) It runs now asynchronous methods and callbacks. If it fails, doCleanups() can be called for cleaning up. (cherry picked from commit ecb6922ff2d56476a6cfb0941ae55aca5e7fae3d) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-36674: Honour the skipping decorators in TestCase.debug() (GH-28446)Miss Islington (bot)2021-09-182-1/+75
| | | | | | | | | | | unittest.TestCase.debug() raises now a SkipTest if the class or the test method are decorated with the skipping decorator. Previously it only raised a SkipTest if the test method was decorated with other decorator in addition to the skipping decorator, or if SkipTest was explicitly raised in the test or setup methods. (cherry picked from commit dea59cf88adf5d20812edda330e085a4695baba4) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-45156: Fixes inifite loop on unittest.mock.seal() (GH-28300) (GH-28326)Miss Islington (bot)2021-09-142-6/+68
| | | | | | | | | Fixes infinite loop on unittest.mock.seal() of mocks created by unittest.create_autospec(). Co-authored-by: Dong-hee Na <donghee.na92@gmail.com> (cherry picked from commit 7f60c9e1c6e22cc0e846a872c318570926cd3094) Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
* [3.10] bpo-25130: Add calls of gc.collect() in tests to support PyPy ↵Serhiy Storchaka2021-09-082-1/+5
| | | | | | | (GH-28005) (GH-28027) (cherry picked from commit 2a8127cafe1d196f858a3ecabf5f1df3eebf9a12) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-45102: unittest: add tests for skipping and errors in cleanup (GH-28166)Miss Islington (bot)2021-09-051-0/+138
| | | | | (cherry picked from commit 28264269de9ff88d9ee7110fc56ac2d2db275bec) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-43913: Fix bugs in cleaning up classes and modules in unittest. (GH-28006)Miss Islington (bot)2021-08-303-70/+711
| | | | | | | | | | | | | | | | | * Functions registered with addModuleCleanup() were not called unless the user defines tearDownModule() in their test module. * Functions registered with addClassCleanup() were not called if tearDownClass is set to None. * Buffering in TestResult did not work with functions registered with addClassCleanup() and addModuleCleanup(). * Errors in functions registered with addClassCleanup() and addModuleCleanup() were not handled correctly in buffered and debug modes. * Errors in setUpModule() and functions registered with addModuleCleanup() were reported in wrong order. * And several lesser bugs. (cherry picked from commit 08d9e597c8ef5a2b26375ac954fdf224f5d82c3c) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-41620: TestCase.run() now always return a TestResult instance (GH-28030)Miss Islington (bot)2021-08-302-24/+31
| | | | | | | | | Previously it returned None if the test class or method was decorated with a skipping decorator. Co-authored-by: Iman Tabrizian <iman.tabrizian@gmail.com> (cherry picked from commit 7e246a3a7b43762480ee4fe0cfb859e8e997a8c8) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-44955: Always call stopTestRun() for implicitly created TestResult ↵Miss Islington (bot)2021-08-222-53/+99
| | | | | | | | | | | objects (GH-27831) Method stopTestRun() is now always called in pair with method startTestRun() for TestResult objects implicitly created in TestCase.run(). Previously it was not called for test methods and classes decorated with a skipping decorator. (cherry picked from commit a9640d75531d6cbbfd254b65435f238c26bf5cd9) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* bpo-44911: Fixed IsolatedAsyncioTestCase from throwing an exception on ↵Miss Islington (bot)2021-08-162-1/+21
| | | | | | | leaked tasks (GH-27765) (cherry picked from commit 2cb1a6806c0cefab0c3a40fdd428a89a4392570e) Co-authored-by: Bar Harel <bar.harel@biocatch.com>
* bpo-43478: Restrict use of Mock objects as specs (GH-25326)Matthew Suozzo2021-04-103-8/+64
| | | | * Restrict using Mock objects as specs as this is always a test bug where the resulting mock is misleadingly useless. * Skip a broken test that exposes a bug elsewhere in mock (noted in the original issue).
* bpo-42934: use TracebackException(compact=True) in unittest.TestResult ↵Irit Katriel2021-01-151-1/+2
| | | | (GH-24221)
* bpo-41877: Check for misspelled speccing arguments (GH-23737)vabr-g2020-12-142-8/+83
| | | | | | | | | | | | patch, patch.object and create_autospec silently ignore misspelled arguments such as autospect, auto_spec and set_spec. This can lead to tests failing to check what they are supposed to check. This change adds a check causing a RuntimeError if the above functions get any of the above misspellings as arguments. It also adds a new argument, "unsafe", which can be set to True to disable this check. Also add "!r" to format specifiers in added error messages.
* bpo-41877: Improve docs for assert misspellings check in mock (GH-23729)vabr-g2020-12-102-3/+4
| | | | | | | | | This is a follow-up to https://github.com/python/cpython/commit/4662fa9bfe4a849fe87bfb321d8ef0956c89a772. That original commit expanded guards against misspelling assertions on mocks. This follow-up updates the documentation and improves the error message by pointing out the potential cause and solution. Automerge-Triggered-By: GH:gpshead
* bpo-42532: Check if NonCallableMock's spec_arg is not None instead of call ↵idanw2062020-12-062-1/+11
| | | | | | its __bool__ function (GH23613) Check if NonCallableMock's spec_arg is not None instead of call its __bool__ function
* bpo-41877 Check for asert, aseert, assrt in mocks (GH-23165)vabr-g2020-11-052-3/+12
| | | | | | | | | | | Currently, a Mock object which is not unsafe will raise an AttributeError if an attribute with the prefix assert or assret is accessed on it. This protects against misspellings of real assert method calls, which lead to tests passing silently even if the tested code does not satisfy the intended assertion. Recently a check was done in a large code base (Google) and three more frequent ways of misspelling assert were found causing harm: asert, aseert, assrt. These are now added to the existing check.
* bpo-41943: Fix bug where assertLogs doesn't correctly filter messages… ↵Irit Katriel2020-11-022-0/+13
| | | | | | | | | (GH-22565) … by level @vsajip , @pitrou Automerge-Triggered-By: GH:vsajip
* bpo-39101: Fixes BaseException hang in IsolatedAsyncioTestCase. (GH-22654)Lisa Roach2020-10-262-2/+29
|
* bpo-40275: Use new test.support helper submodules in tests (GH-21449)Hai Shi2020-08-032-5/+6
|
* bpo-39385: Add an assertNoLogs context manager to unittest.TestCase (GH-18067)Kit Choi2020-07-013-8/+107
| | | Co-authored-by: Rémi Lapeyre <remi.lapeyre@henki.fr>
* bpo-29620: iterate over a copy of sys.modules (GH-4800)kernc2020-06-112-1/+16
| | | | | | | unittest.TestCase.assertWarns no longer raises a RuntimeException when accessing a module's ``__warningregistry__`` causes importation of a new module, or when a new module is imported in another thread. Patch by Kernc.
* bpo-40462: fix variable and function names (GH-19832)Furkan Önder2020-05-011-2/+0
| | | Automerge-Triggered-By: @vstinner
* bpo-39966: Revert "bpo-25597: Ensure wraps' return value is used for magic ↵Karthikeyan Singaravelan2020-04-282-12/+10
| | | | | | | methods in MagicMock" (GH-19734) * Revert "bpo-25597: Ensure wraps' return value is used for magic methods in MagicMock (#16029)" This reverts commit 72b1004657e60c900e4cd031b2635b587f4b280e.
* bpo-40275: Avoid importing logging in test.support (GH-19601)Serhiy Storchaka2020-04-252-68/+71
| | | | | Import logging lazily in assertLogs() in unittest. Move TestHandler from test.support to logging_helper.
* bpo-40275: Avoid importing asyncio in test.support (GH-19600)Serhiy Storchaka2020-04-251-1/+16
| | | | | * Import asyncio lazily in unittest (only when IsolatedAsyncioTestCase is used). * Import asyncio.events lazily in test.support.
* bpo-40126: Fix reverting multiple patches in unittest.mock. (GH-19351)Serhiy Storchaka2020-04-112-49/+27
| | | | | Patcher's __exit__() is now never called if its __enter__() is failed. Returning true from __exit__() silences now the exception.
* bpo-39481: PEP 585 for a variety of modules (GH-19423)Batuhan Taşkaya2020-04-101-0/+2
| | | | | | | | | | - concurrent.futures - ctypes - http.cookies - multiprocessing - queue - tempfile - unittest.case - urllib.parse
* bpo-39915: Ensure await_args_list is updated according to the order in which ↵Karthikeyan Singaravelan2020-03-112-1/+12
| | | | | coroutines were awaited (GH-18924) Create call objects with awaited arguments instead of using call_args which has only last call value.
* bpo-39450 Stripped whitespace before parsing the docstring in ↵Steve Cirelli2020-02-032-1/+10
| | | | TestCase.shortDescription (GH-18175)
* Get mock coverage back to 100% (GH-18228)Chris Withers2020-01-294-54/+35
| | | | | | | | | | | | | | | | * use the `: pass` and `: yield` patterns for code that isn't expected to ever be executed. * The _Call items passed to _AnyComparer are only ever of length two, so assert instead of if/else * fix typo * Fix bug, where stop-without-start patching dict blows up with `TypeError: 'NoneType' object is not iterable`, highlighted by lack of coverage of an except branch. * The fix for bpo-37972 means _Call.count and _Call.index are no longer needed. * add coverage for calling next() on a mock_open with readline.return_value set. * __aiter__ is defined on the Mock so the one on _AsyncIterator is never called.
* bpo-39485: fix corner-case in method-detection of mock (GH-18252)Carl Friedrich Bolz-Tereick2020-01-291-5/+1
| | | | | | | | | | | | | | Replace check for whether something is a method in the mock module. The previous version fails on PyPy, because there no method wrappers exist (everything looks like a regular Python-defined function). Thus the isinstance(getattr(result, '__get__', None), MethodWrapperTypes) check returns True for any descriptor, not just methods. This condition could also return erroneously True in CPython for C-defined descriptors. Instead to decide whether something is a method, just check directly whether it's a function defined on the class. This passes all tests on CPython and fixes the bug on PyPy.
* Clarify and fix assertions that mocks have not been awaited (GH-18196)Chris Withers2020-01-272-27/+30
| | | | | - The gc.collect is needed for other implementations, such as pypy - Using context managers over multiple lines will only catch the warning from the first line in the context! - remove a skip for a test that no longer fails on pypy
* Use relative imports in mock and its tests to help backporting (GH-18197)Chris Withers2020-01-273-79/+82
| | | | | | | | * asyncio.run only available in 3.8+ * iscoroutinefunction has important bungfixes in 3.8 * IsolatedAsyncioTestCase only available in 3.8+
* bpo-25597: Ensure wraps' return value is used for magic methods in MagicMock ↵Karthikeyan Singaravelan2020-01-272-0/+53
| | | | (#16029)
* bpo-38932: Mock fully resets child objects on reset_mock(). (GH-17409)Vegard Stikbakke2020-01-252-2/+14
|
* bpo-37955: correct mock.patch docs with respect to the returned type (GH-15521)Paulo Henrique Silva2020-01-251-1/+2
|
* bpo-39082: Allow AsyncMock to correctly patch static/class methods (GH-18116)Matthew Kokotovich2020-01-252-0/+25
|
* bpo-38473: Handle autospecced functions and methods used with attach_mock ↵Karthikeyan Singaravelan2020-01-242-0/+33
| | | | (GH-16784)
* Fix `mock.patch.dict` to be stopped with `mock.patch.stopall` (#17606)Mario Corchero2020-01-242-2/+67
| | | | | As the function was not registering in the active patches, the mocks started by `mock.patch.dict` were not being stopped when `mock.patch.stopall` was being called.