Jacob Walls
56f9579105
Fixed #32655 -- Deprecated extra_tests argument for DiscoverRunner.build_suite()/run_tests().
2021-07-16 20:46:41 +02:00
pochangl
f6d3557aa1
Fixed #32929 -- Fixed handling query strings in AsyncRequestFactory.
2021-07-15 13:09:29 +02:00
Chris Jerdonek
5848b3a1d7
Fixed #32914 -- Prevented test --shuffle from skipping test methods.
...
"test --shuffle" skipped test methods when test classes were mixed.
This changes runner.py's reorder_tests() to group by TestCase class.
Regression in 90ba716bf0
.
2021-07-12 06:36:12 +02:00
Chris Jerdonek
f5dccbafb9
Refs #24522 -- Fixed code comment about seeds in Shuffler.__init__().
2021-07-09 08:20:16 +02:00
Chris Jerdonek
90ba716bf0
Fixed #24522 -- Added a --shuffle option to DiscoverRunner.
2021-07-08 07:29:04 +02:00
Mateo Radman
2231429991
Refs #32508 -- Raised ImproperlyConfigured/TypeError instead of using "assert".
2021-07-05 13:31:03 +02:00
Chris Jerdonek
8bca838f4a
Refs #32655 -- Improved error if iter_test_cases() is passed a string.
2021-06-29 20:41:40 +02:00
tomhamiltonstubber
1e5aa8e1c7
Fixed #32790 -- Ensured test Client handles redirects to domain indexes without a specified trailing slash.
2021-06-23 12:32:29 +02:00
Chris Jerdonek
de4f620183
Fixed #32609 -- Updated runtests.py to support directory path test labels.
...
For example, with this change, the following now works from the tests
directory:
$ ./runtests.py view_tests/tests/
2021-06-10 20:19:30 +02:00
Ceesjan Luiten
cb6c19749d
Refs #27734 -- Prevented creation of more parallel workers than TestCases.
...
The parallel test runner uses multiple workers to distribute the
workload. These workers are assigned a worker ID using a globally
incremented variable, which determines what test database to connect
to. When the worker ID surpasses the test database IDs Django will
crash.
This reduce likelihood of crashing parallel tests because
ParallelTestSuite will no longer create more workers than TestCases.
It won't eliminate the problem completely though because there are
other circumstances in which new workers can be created which can then
be assigned an "illegal" worker ID.
2021-06-10 07:32:15 +02:00
Mariusz Felisiak
faba5b702a
Refs #32355 -- Used addClassCleanup() in SimpleTestCase and SerializeMixin.
2021-06-08 11:35:05 +02:00
Adam Johnson
2e4711c611
Made SerializeMixin check lockfile attr at import time.
2021-06-04 12:29:09 +02:00
Mariusz Felisiak
62e8f369c3
Fixed #32808 -- Prevented DiscoverRunner.build_suite() from mutating test loader patterns.
...
Thanks Chris Jerdonek for the report and reviews.
2021-06-03 08:59:37 +02:00
Chris Jerdonek
1b4d1675b2
Refs #32641 -- Made DiscoverRunner's "Found X tests" message work for finding one test.
...
This also removes passing level to log() as logging.INFO is the default.
2021-06-02 12:53:09 +02:00
Daniyal
a0410ffe8f
Refs #32552 -- Added DiscoverRunner.log() to allow customization.
...
Thanks Carlton Gibson, Chris Jerdonek, and David Smith for reviews.
2021-06-01 13:31:44 +02:00
girishsontakke
a815a6a315
Fixed #32641 -- Made DiscoverRunner print the number of found tests.
...
Thanks Chris Jerdonek for reviews.
2021-04-15 11:42:46 +02:00
Chris Jerdonek
823a9e6bac
Fixed #32416 -- Made ThreadedWSGIServer close connections after each thread.
...
ThreadedWSGIServer is used by LiveServerTestCase.
2021-04-12 10:23:56 +02:00
Chris Jerdonek
71a936f9d8
Refs #32416 -- Added LiveServerTestCase._make_connections_override() hook.
2021-04-12 08:54:03 +02:00
Chris Jerdonek
a89e975caf
Fixed #32532 -- Made DiscoverRunner raise RuntimeError when a test label is a file path.
2021-04-02 12:54:08 +02:00
Chris Jerdonek
0af81b22b5
Refs #32532 -- Replaced is_discoverable() with try_importing().
2021-04-02 12:54:08 +02:00
Chris Jerdonek
038940cf55
Fixed #29127 -- Prevented DiscoverRunner from hiding tagged test with syntax errors.
...
This mades _FailedTest objects always match tags in DiscoverRunner.
2021-03-30 10:26:20 +02:00
Chris Jerdonek
61d5e57353
Simplified and optimized test_match_tags().
...
This simplifies and optimizes runner.py's test_match_tags() because it
(1) uses isdisjoint() instead of intersection(), which involves
constructing a new set, (2) eliminates a set operation when tags is
falsey, (3) eliminates the need for a matched_tags variable, and (4)
uses fewer not's, which should make it easier to parse and understand.
2021-03-29 09:21:20 +02:00
Chris Jerdonek
dcb06c2c68
Fixed #32591 -- Made DiscoverRunner order _FailedTest objects first.
...
Failures detected when loading tests are ordered before all of the
above for quicker feedback. This includes things like test modules that
couldn't be found or that couldn't be loaded due to syntax errors.
2021-03-26 12:18:27 +01:00
Chris Jerdonek
f5a2244217
Fixed typo in DiscoverRunner --reverse help text.
2021-03-24 13:39:06 +01:00
Chris Jerdonek
235d23cf99
Refs #32532 -- Added DiscoverRunner.load_tests_for_label().
2021-03-24 13:03:53 +01:00
Baptiste Mispelon
41e6b2a3c5
Fixed #32556 -- Fixed handling empty string as non-boolean attributes value by assertHTMLEqual().
2021-03-19 20:41:57 +01:00
Baptiste Mispelon
98abf80cde
Refs #32556 -- Added django.test.html.normalize_attributes().
2021-03-19 20:41:53 +01:00
Hasan Ramezani
9bf5e9418f
Fixed #32556 -- Fixed assertHTMLEqual() to handle empty string as boolean attributes value.
2021-03-18 16:30:15 +01:00
Adam Johnson
f6713cda89
Fixed #31370 -- Added support for parallel tests with --buffer.
2021-03-18 15:30:47 +01:00
Adam Johnson
e3bca22e7e
Refs #31370 -- Made RemoteTestResult subclass unittest.TestResult.
2021-03-18 15:30:47 +01:00
Hasan Ramezani
ceb4b9ee68
Fixed #32547 -- Corrected notes about validation in HTML assertions docs.
2021-03-18 10:21:49 +01:00
Adam Johnson
45814af619
Fixed #32560 -- Fixed test runner with --pdb and --buffer on fail/error.
2021-03-17 20:56:09 +01:00
Chris Jerdonek
7bdd09d016
Fixed #32540 -- Optimized DiscoverRunner.build_suite() by calling find_top_level() only if is_discoverable() is true.
2021-03-15 10:15:21 +01:00
Chris Jerdonek
d5a214c7c4
Refs #32540 -- Added django.test.runner.find_top_level().
2021-03-15 10:15:21 +01:00
Chris Jerdonek
551b0f94bf
Reduced nesting inside DiscoverRunner.build_suite().
2021-03-12 08:06:29 +01:00
Chris Jerdonek
d828beb68f
Fixed #32529 -- Delayed creating a test suite in build_suite().
2021-03-11 10:02:06 +01:00
Chris Jerdonek
d8a4bcffdb
Refs #32489 -- Doc'd and tested iter_test_cases() support for an iterable of tests.
2021-03-11 09:23:33 +01:00
Claude Paroz
bc43ae7c13
Refs #31235 -- Improved assertQuerysetEqual() warning message with stacklevel=2.
2021-03-10 16:09:05 +01:00
Chris Jerdonek
77e0a35a10
Fixed #32516 -- Fixed reorder_suite() with duplicates and reverse=True.
2021-03-09 13:30:51 +01:00
Chris Jerdonek
465fdffda0
Refs #32489 -- Simplified filter_tests_by_tags().
2021-03-08 09:54:01 +01:00
Chris Jerdonek
8ff75a3d9e
Refs #32489 -- Simplified partition_suite_by_case().
2021-03-08 09:53:31 +01:00
Chris Jerdonek
cc12894017
Refs #32489 -- Removed unneeded partition_suite_by_type().
2021-03-08 09:53:31 +01:00
Chris Jerdonek
22c9af0eae
Fixed #32489 -- Added iter_test_cases() to iterate over a TestSuite.
...
This also makes partition_suite_by_type(), partition_suite_by_case(),
filter_tests_by_tags(), and DiscoverRunner._get_databases() to use
iter_test_cases().
2021-03-05 13:04:07 +01:00
Chris Jerdonek
b190419278
Simplified for loop in reorder_suite().
2021-03-05 07:28:37 +01:00
Jacob Walls
7d68fa4ed3
Fixed typo assertNotContains() docstring.
2021-03-04 20:54:06 +01:00
François Freitag
7ca7f4495b
Refs #21429 -- Added SimpleTestCase.assertNoLogs() on Python < 3.10.
2021-03-02 20:35:33 +01:00
Jacob Walls
64a0d1ef6e
Fixed typo in assertQuerysetEqual() exception message.
2021-02-26 21:12:11 +01:00
Simon Charette
3089018e95
Fixed #32446 -- Deprecated SERIALIZE test database setting.
...
Whether or not the state of a test database should be serialized can be
inferred from the set of databases allowed to be access from discovered
TestCase/TransactionTestCase enabling the serialized_rollback feature
which makes this setting unnecessary.
This should make a significant test suite bootstraping time difference
on large projects that didn't explicitly disable test database
serialization.
2021-02-24 20:31:11 +01:00
Mariusz Felisiak
c8837322e8
Refs #31811 -- Restored **kwargs to django.test.utils.setup_databases().
...
Accidentally removed in 61a0ba43cf
.
2021-02-24 12:57:13 +01:00
Marc Gibbons
d6572ee4b0
Fixed #32470 -- Fixed ResolverMatch instance on test clients when request.urlconf is set.
2021-02-23 09:54:49 +01:00
Nick Pope
0e4e35722a
Fixed #32469 -- Made assertQuerysetEqual() respect maxDiff when ordered=False.
2021-02-22 09:27:46 +01:00
Harm Geerts
06e5f7ae16
Fixed #29052 -- Made test database creation preserve alias order and prefer the "default" database.
...
This fixes flushing test databases when two aliases point to the same
database.
Use a list() to store the test database aliases so the order remains
stable by following the order of the connections. Also, always use the
"default" database alias as the first alias to accommodate `migrate`.
Previously `migrate` could be executed on a secondary alias which
caused truncating the "default" database.
2021-02-16 10:25:34 +01:00
Chris Jerdonek
600ff26a85
Fixed #32417 -- Removed unneeded hasattr() check in LiveServerTestCase._tearDownClassInternal().
2021-02-15 10:25:11 +01:00
Chris Jerdonek
694deff82f
Fixed #32437 -- Fixed cleaning up ALLOWED_HOSTS in LiveServerTestCase on setUpClass() failure.
2021-02-12 09:39:48 +01:00
Chris Jerdonek
91c243f80f
Refs #32416 -- Added LiveServerThread.server_class to ease subclassing.
2021-02-12 08:17:46 +01:00
Mariusz Felisiak
ec0ff40631
Fixed #32355 -- Dropped support for Python 3.6 and 3.7
2021-02-10 10:20:54 +01:00
Florian Apolloner
98e05ccde4
Fixed #32233 -- Cleaned-up duplicate connection functionality.
2020-12-08 08:55:44 +01:00
Adam Johnson
b9fd09d21b
Fixed #32227 -- Prevented crash when setUpTestData() errors with --debug-sql.
...
Thanks Mariusz Felisiak for the report.
2020-11-28 12:22:59 +01:00
Ian Foote
3828879eee
Fixed #32220 -- Added durable argument to transaction.atomic().
2020-11-27 21:43:15 +01:00
Hasan Ramezani
3f7b327562
Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly.
...
This also replaces assertQuerysetEqual() to
assertSequenceEqual()/assertCountEqual() where appropriate.
Co-authored-by: Peter Inglesby <peter.inglesby@gmail.com>
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2020-11-06 09:24:50 +01:00
Carlton Gibson
ebb08d1942
Fixed #32159 -- Ensured AsyncRequestFactory correctly sets headers.
2020-11-04 11:07:15 +01:00
Patrick Arminio
542b4b3ab4
Fixed #32162 -- Fixed setting Content-Length header in AsyncRequestFactory.
2020-11-03 10:12:40 +01:00
Martin Thoma
302caa40e4
Made small readability improvements.
2020-10-28 20:20:20 +01:00
Carlton Gibson
e17ee44688
Fixed #32128 -- Added asgiref 3.3 compatibility.
...
Thread sensitive parameter is True by default from asgiref v3.3.0.
Added an explicit thread_sensitive=False to previously implicit uses.
2020-10-27 11:24:07 +01:00
Jacob Walls
e26a7a8ef4
Fixed #27906 -- Fixed test tools counting of HTML matches for subsets of elements.
...
Previously examples such as '<a/><b/>' would not match in '<a/><b/><c/>'.
2020-09-24 12:52:41 +02:00
François Freitag
57dadfac3c
Fixed #31944 -- Used addCleanup() to register TestContextDecorator cleanups.
...
Cleanups from addCleanup() are scheduled to happen in reverse order to
the order they are added (LIFO). Ensures each cleanup is executed from
the innermost to the outermost.
2020-09-07 08:07:26 +02:00
Jon Dufresne
0b8871ab67
Fixed #31979 -- Made django.test.utils.setup_databases()'s time_keeper argument optional.
2020-09-03 09:48:40 +02:00
Mads Jensen
3a6fa1d962
Added missing items to django.test.client.__all__ and django.test.utils.__all__.
2020-08-14 11:48:04 +02:00
Mads Jensen
3718bc5c8d
Removed unnecessary urlsplit() call from SimpleTestCase.assertRedirects().
2020-08-14 11:48:04 +02:00
Ahmad A. Hussein
61a0ba43cf
Refs #31811 -- Added optional timing outputs to the test runner.
2020-08-13 17:17:15 +02:00
David Smith
e74b3d724e
Bumped minimum isort version to 5.1.0.
...
Fixed inner imports per isort 5.
isort 5.0.0 to 5.1.0 was unstable.
2020-07-30 10:58:59 +02:00
Adam Johnson
e906ff6fca
Fixed #30457 -- Added TestCase.captureOnCommitCallbacks().
2020-07-13 11:56:46 +02:00
ovkulkarni
b7a438c7e2
Fixed #31509 -- Made DiscoverRunner enable faulthandler by default.
2020-07-10 18:55:50 +02:00
Ahmad A. Hussein
7c947f0f5a
Fixed #31494 -- Preserved query strings when following HTTP 307/308 redirects in test client.
2020-05-27 10:36:52 +02:00
Simon Charette
3cf80d3fcf
Fixed #31395 -- Made setUpTestData enforce in-memory data isolation.
...
Since it's introduction in Django 1.8 setUpTestData has been suffering
from a documented but confusing caveat due to its sharing of attributes
assigned during its execution with all test instances.
By keeping track of class attributes assigned during the setUpTestData
phase its possible to ensure only deep copies are provided to test
instances on attribute retreival and prevent manual setUp gymnastic to
work around the previous lack of in-memory data isolation.
Thanks Adam Johnson for the extensive review.
2020-05-15 20:22:52 +02:00
Jon Dufresne
d6aff369ad
Refs #30116 -- Simplified regex match group access with Match.__getitem__().
...
The method has been available since Python 3.6. The shorter syntax is
also marginally faster.
2020-05-11 12:01:28 +02:00
Andrew Godwin
fc0fa72ff4
Fixed #31224 -- Added support for asynchronous views and middleware.
...
This implements support for asynchronous views, asynchronous tests,
asynchronous middleware, and an asynchronous test client.
2020-03-18 19:59:12 +01:00
Andrew Godwin
17009e9105
Refs #31224 -- Added autoconversion of test async methods.
2020-03-05 14:29:21 +01:00
Jon Dufresne
769cee5252
Fixed #31327 -- Deprecated providing_args argument for Signal.
2020-03-05 09:38:52 +01:00
yura
54b7af7eb4
Fixed #31250 -- Ignored processing instructions in assertXMLEqual()/assertXMLNotEqual().
2020-02-13 11:03:54 +01:00
Simon Charette
430e796980
Refs #31055 -- Made DiscoverRunner skip running system checks on unused test databases.
2020-02-07 11:01:31 +01:00
Jon Dufresne
9cc743d0c8
Closed caches in clear_cache_handlers() signal handler.
...
This also fixes ResourceWarnings about unclosed sockets emitted in
cache.tests.
2020-02-07 08:03:25 +01:00
Baptiste Mispelon
9e565386d3
Fixed #27430 -- Added -b/--buffer option to DiscoverRunner.
2019-12-09 13:47:12 +01:00
Jon Dufresne
2540c5f08c
Removed unnecessary dict.get() call in favor of direct indexing.
...
The 'TEST' key is always set to a dictionary in ConnectionHandler.
2019-12-04 11:34:06 +01:00
Jon Dufresne
aa12cf07c9
Removed unnecessary numeric indexes in format strings.
2019-11-19 08:29:47 +01:00
Hasan Ramezani
e3d0b4d550
Fixed #30899 -- Lazily compiled import time regular expressions.
2019-10-29 09:22:26 +01:00
André Ericson
3120490912
Fixed #30876 -- Moved classproperty() decorator to the django.utils.functional.
2019-10-21 09:57:39 +02:00
Pavel Savchenko
1711c509fa
Fixed #27391 -- Implemented SimpleTestCase.debug().
...
debug() should bubbled up exceptions if occurring in test, but behave
the same as run() when no exceptions occurred.
2019-10-18 12:22:51 +02:00
Patrick Jenkins
46e74a5256
Fixed #28337 -- Preserved extra headers of requests made with django.test.Client in assertRedirects().
...
Co-Authored-By: Hasan Ramezani <hasan.r67@gmail.com>
2019-10-18 08:42:51 +02:00
Mariusz Felisiak
b61ea56789
Refs #28478 -- Removed support for TestCase's allow_database_queries and multi_db per deprecation timeline.
2019-09-10 12:01:00 +02:00
Mariusz Felisiak
3d716467a9
Refs #29817 -- Removed settings.FILE_CHARSET per deprecation timeline.
2019-09-10 12:01:00 +02:00
swatantra
73ac9e3f04
Fixed #30677 -- Improved error message for urlencode() and Client when None is passed as data.
2019-08-11 20:15:23 +02:00
Andrew Godwin
052388aba4
Fixed #30676 -- Added --pdb option to test runner.
2019-08-07 08:16:31 +02:00
Andrew Godwin
a415ce70be
Fixed #30451 -- Added ASGI handler and coroutine-safety.
...
This adds an ASGI handler, asgi.py file for the default project layout,
a few async utilities and adds async-safety to many parts of Django.
2019-06-20 12:29:43 +02:00
Min ho Kim
6e8303d49b
Fixed typos in FakePayload docstring and SimplifiedURLTests test name.
2019-06-17 12:38:04 +02:00
Jon Dufresne
d6ea4898c4
Fixed #30550 -- Fixed decoding of non-UTF-8 bytes objects in response.json().
2019-06-07 06:40:15 +02:00
Caio Ariede
753b67c58d
Fixed #30497 -- Ignored document type in assertXMLEqual()/assertXMLNotEqual().
2019-05-24 07:29:42 +02:00
Johannes Hoppe
8d010f3986
Fixed #30220 -- Added support for headless mode in selenium tests.
2019-05-17 08:14:54 +02:00
Jon Dufresne
7c3732a1b4
Fixed #30470 -- Added assertHTMLEqual() support for all self closing tags.
...
Support for the following tags was added: area, embed, param, track, and
wbr.
The full list of self closing tags is documented at:
https://html.spec.whatwg.org/#void-elements
2019-05-10 12:04:07 +02:00
Jon Dufresne
b7a33ee4f0
Fixed #30468 -- Fixed assertHTMLEqual() to handle all ASCII whitespace in a class attribute.
2019-05-09 17:18:18 +02:00