Commit Graph

859 Commits

Author SHA1 Message Date
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