Commit Graph

21401 Commits

Author SHA1 Message Date
Aymeric Augustin b1a29541e5 Merge pull request #4761 from aaugustin/parallelize-tests-attempt-1
Fixed #20461 -- Allowed running tests in parallel.
2015-09-10 16:12:36 +02:00
Aymeric Augustin a32206b365 Documented that the parallel test runner doesn't work on Windows. 2015-09-10 15:41:26 +02:00
Aymeric Augustin 710b4a7032 Avoided running more test processes than necessary.
This reduces the time spent cloning databases.

Thanks Tim for the suggestion.
2015-09-10 14:37:51 +02:00
Aymeric Augustin 33c7c2a557 Enabled parallel testing by default in runtests.py. 2015-09-10 13:34:05 +02:00
Aymeric Augustin 39bb66baad Made it easier to customize the parallel test runner.
Subclass private APIs is marginally better than monkey-patching them,
even if it doesn't make a big difference in practice.
2015-09-09 23:03:52 +02:00
Aymeric Augustin 05cea7fdbb Changed database connection duplication technique.
This new technique is more straightforward and compatible with test
parallelization, where the effective database connection settings no
longer match settings.DATABASES.
2015-09-09 23:03:51 +02:00
Aymeric Augustin e8b49d4cc4 Propagated database clone settings to new connections. 2015-09-09 23:03:51 +02:00
Aymeric Augustin 0bd58e0efb Test parallelization isn't implemented on Oracle. 2015-09-09 23:03:51 +02:00
Aymeric Augustin 073ea9e852 Acknoweldeged a limitation of the parallel test runner.
Notably it will fail to report a Model.DoesNotExist exceptions because
the class itself isn't pickleable. (Django has specific code to make its
instances pickleable.)
2015-09-09 23:03:44 +02:00
Aymeric Augustin b799a50c8e Serialized some tests that interact with the filesystem.
Considering the APIs exercised by these test cases, it's hard to make
them independent.
2015-09-09 23:01:17 +02:00
Aymeric Augustin ba81386487 Introduced a mixin for serializing tests. 2015-09-09 23:01:17 +02:00
Aymeric Augustin bf2c969eb7 Prevented staticfiles test from colliding when run in parallel.
This requires that each test never alters files in static directories
collected by other tests. The alternative is to add a temporary
directory to STATICFILES_DIRS or a new app to INSTALLED_APPS.
2015-09-09 23:01:17 +02:00
Aymeric Augustin 326bc0955b Allowed a port range for the liveserver by default.
This is required for running tests in parallel.
2015-09-09 23:01:16 +02:00
Aymeric Augustin e39dd61808 Adjusted tests that were messing with database connections too heavily.
The previous implementation would result in tests hitting the wrong
database when running tests in parallel on multiple databases.
2015-09-09 23:01:16 +02:00
Aymeric Augustin 442baabd0b Supported running admin_script testcases concurrently. 2015-09-09 23:01:16 +02:00
Aymeric Augustin d6be404e56 Changed strategy for removing TMPDIR in runtests.py.
Previously, a traceback would be displayed on exit because:
- using some multiprocessing features creates a temporary directory
- this directory would be inside TMPDIR
- multiprocessing would attempt to remove it when a particular object
  was deallocated, after runtests.py had already removed it along with
  everything else in TMPDIR.
2015-09-09 23:01:15 +02:00
Aymeric Augustin 0586c061f0 Cloned databases for running tests in parallel. 2015-09-09 23:01:15 +02:00
Aymeric Augustin cd9fcd4e80 Implemented a parallel test runner. 2015-09-09 23:01:10 +02:00
Daniel Hahler acb833081d Fixed #25372 -- Fixed autocompletion for options of non-argparse commands. 2015-09-09 14:51:41 -04:00
Tim Graham eaa3c88345 Refs #22258 -- Fixed an unclosed temporary file in fixtures test.
This prevented the temporary directory from being removed
on Windows.
2015-09-09 14:35:51 -04:00
Bibhas 4283a03843 Fixed #25371 -- Added reverse_sql and reverse_code examples to docs. 2015-09-09 14:20:47 -04:00
Moritz Sichert dae81c6ec6 Refs #25300 -- Fixed reference to TextInput in a test. 2015-09-09 09:28:48 -04:00
Ola Sitarska f2f8972def Fixed #25135 -- Deprecated the contrib.admin allow_tags attribute.
Thanks Jaap Roes for the idea and initial patch.
2015-09-08 19:13:43 -04:00
Raphael Michel 1bbca7961c Fixed #25350 -- Added alias --no-input for --noinput to management commands. 2015-09-08 08:41:03 -04:00
Alex Hill 25c157e4cc Refs #24215 -- Improved error message for unhandled lazy model operations. 2015-09-07 20:31:58 -04:00
Ryan Hiebert 617eff41ac Fixed #24857 -- Added "python -m django" entry point. 2015-09-07 19:54:32 -04:00
Nick Pope 1743efbe62 Fixed typos in django/db/models/query.py docstrings. 2015-09-07 15:47:02 -04:00
Tim Graham 862de0b254 Fixed #25356 -- Removed default_app_config from startapp template.
Also discouraged its use outside the intended use case.
2015-09-07 15:23:11 -04:00
Zan Anderle 29d52583e7 Removed 'Test that' prefix from admindocs tests. 2015-09-07 15:07:47 -04:00
Zan Anderle f3dc173240 Fixed #24917 -- Made admindocs display model methods that take arguments. 2015-09-07 15:07:39 -04:00
Keryn Knight 3c5862ccb0 Fixed #24706 -- Made ModelForm._post_clean() handle a ValidationError raised when constructing the model instance.
Thanks Loïc Bistuer for review and advice.
2015-09-07 14:36:39 -04:00
elky 8e84d9c844 Fixed #25365 -- Fixed visual issues in filter_vertical widget introduced by SVG icons commit. 2015-09-07 14:31:32 -04:00
Jakub Gocławski a7901c2e09 Refs #25328 -- Refactored LiveServerTestCase to make it extensible. 2015-09-07 08:48:17 -04:00
elky b929d2d09d Fixed #25200 -- Updated tutorial screenshots for new admin theme. 2015-09-07 08:36:55 -04:00
elky e23e7b2ffe Fixed #11544 -- Removed !important rules in contrib.admin styles. 2015-09-07 08:26:33 -04:00
Alasdair Nicol 19f98946f2 Fixed #25358 -- Improved variable name for question in tutorial. 2015-09-07 08:13:34 -04:00
Aymeric Augustin 49eee84245 Simplified deduplication of test databases.
Use the same code path for:

- a database that has the same settings as another database
  (as defined by test_db_signature)
- a database this is defined as a mirror of another database

There's no conceptual difference between these two cases.

Thanks Shai for the suggestion.
2015-09-06 10:02:47 +02:00
Aymeric Augustin e8bfc1c747 Stopped returning mirrors from setup_databases.
The return value of setup_databases is only used as an argument for
teardown_databases which doesn't need mirrors.
2015-09-06 09:28:16 +02:00
Aymeric Augustin 79c3f226dd Fixed #25357 -- Database deduplication on Oracle.
In order to reuse another database, Django must use set_as_test_mirror.
2015-09-06 09:18:02 +02:00
Aymeric Augustin 5ace1887f2 Split setup_databases.
It contained two sections separated by comments. It makes more sense to
put each section in its own function.
2015-09-06 09:16:27 +02:00
Aymeric Augustin c4bdf52005 Moved an import to the toplevel. 2015-09-05 22:24:46 +02:00
Aymeric Augustin 6d1110f2f0 Updated references to the TEST_* database settings.
They were removed in Django 1.9.

I could leave the reference to TEST_DEPENDENCIES in the 1.2.4 release
notes because the link points to the right location and the name was
accurate at the time.
2015-09-05 19:21:22 +02:00
Tim Graham d06014db53 Removed some discussion of deprecated {% url %} behavior. 2015-09-05 11:55:58 -04:00
Tim Graham 5528e7da1a Refs #24235 -- Removed unused is_usable attribute from base template Loader. 2015-09-05 10:58:23 -04:00
Maarten fe58d96e50 Fixed #25355 -- Made two tweaks to docs/topics/db/aggregation.txt. 2015-09-05 10:19:38 -04:00
Joshua Kehn e687794f6b Cleaned up docstrings in csrf_tests/tests.py. 2015-09-05 09:20:57 -04:00
Joshua Kehn ab26b65b2f Fixed #25334 -- Provided a way to allow cross-origin unsafe requests over HTTPS.
Added the CSRF_TRUSTED_ORIGINS setting which contains a list of other
domains that are included during the CSRF Referer header verification
for secure (HTTPS) requests.
2015-09-05 09:19:57 -04:00
David Sanders 48c420d992 Added default value for default kwargs for QueryDict. 2015-09-05 08:20:41 -04:00
Tim Graham 2dc9ec5616 Fixed #24525 -- Fixed AssertionError in some complex queries.
Thanks Anssi Kääriäinen for providing the solution.
2015-09-05 07:51:17 -04:00
Alexandre Pocquet e7b7f94678 Fixed #25297 -- Allowed makemessages to work with {% trans %} tags that use template filters. 2015-09-04 15:09:09 -04:00