django/tests
Simon Charette f6405c0b8e Fixed #31965 -- Adjusted multi-table fast-deletion on MySQL/MariaDB.
The optimization introduced in 7acef095d7 did not properly handle
deletion involving filters against aggregate annotations.

It initially was surfaced by a MariaDB test failure but misattributed
to an undocumented change in behavior that resulted in the systemic
generation of poorly performing database queries in 5b83bae031.

Thanks Anton Plotkin for the report.

Refs #23576.
2020-08-31 08:11:28 +02:00
..
absolute_url_overrides
admin_autodiscover Used assertRaisesMessage() in various tests. 2020-02-07 12:46:23 +01:00
admin_changelist Fixed #25513 -- Extracted admin pagination to Paginator.get_elided_page_range(). 2020-08-06 12:38:56 +02:00
admin_checks Fixed #31616 -- Added hint about middleware ordering for SessionMiddleware admin check. 2020-05-25 21:14:32 +02:00
admin_custom_urls Updated test URL patterns to use path() and re_path(). 2018-12-31 10:47:32 -05:00
admin_default_site
admin_docs Refs #30400 -- Improved typography in admin_doc/missing_docutils.html. 2020-05-23 12:02:10 +02:00
admin_filters Fixed #28991 -- Added EmptyFieldListFilter class in admin.filters. 2020-01-03 07:58:04 +01:00
admin_inlines Fixed #31524 -- Removed minified static assets from the admin. 2020-05-14 16:07:56 +02:00
admin_ordering Made reused RequestFactory instances class attributes. 2018-11-27 09:49:02 -05:00
admin_registration Fixed #27360 -- Added app or ModelAdmin details for AreadyRegistered exceptions. 2019-03-25 17:34:53 -04:00
admin_scripts Reverted "Refs #23919 -- Removed obsolete __init__.py files in management command directories." 2020-06-01 10:55:41 +02:00
admin_utils Added test for django.contrib.admin.utils.help_text_for_field(). 2020-06-25 11:23:26 +02:00
admin_views Fixed #31865 -- Adjusted admin nav sidebar template to reduce debug logging. 2020-08-11 11:42:15 +02:00
admin_widgets Fixed CVE-2020-13596 -- Fixed potential XSS in admin ForeignKeyRawIdWidget. 2020-06-03 09:23:00 +02:00
aggregation Fixed #31888 -- Avoided module-level MySQL queries in tests. 2020-08-17 09:31:16 +02:00
aggregation_regress Refs #30446 -- Removed unnecessary Value(..., output_field) in docs and tests. 2020-07-15 10:58:38 +02:00
annotations Fixed #31888 -- Avoided module-level MySQL queries in tests. 2020-08-17 09:31:16 +02:00
app_loading
apps Refs #31180 -- Fixed unreachable assertions in apps tests. 2020-08-11 10:31:09 +02:00
asgi Fixed #31594 -- Added ASGIStaticFilesHandler.get_response_async(). 2020-06-08 12:52:26 +02:00
async Refs #31224 -- Added autoconversion of test async methods. 2020-03-05 14:29:21 +01:00
auth_tests Fixed #31878 -- Made createsuperuser respect --database option in default usernames. 2020-08-14 11:08:20 +02:00
backends Fixed #31956 -- Fixed crash of ordering by JSONField with a custom decoder on PostgreSQL. 2020-08-28 19:09:46 +02:00
base
bash_completion Reverted "Refs #23919 -- Removed obsolete __init__.py files in management command directories." 2020-06-01 10:55:41 +02:00
basic Fixed #27719 -- Added QuerySet.alias() to allow creating reusable aliases. 2020-07-31 13:19:33 +02:00
builtin_server Refs #29069 -- Added test for calling request_finished signal by static file responses. 2020-04-20 06:17:57 +02:00
bulk_create Fixed #17653 -- Allowed using zero as AutoFields value on MySQL if NO_AUTO_VALUE_ON_ZERO SQL mode is enabled. 2020-07-20 09:48:31 +02:00
cache Added tests for cache middlewares constructors. 2020-08-28 10:00:39 +02:00
check_framework Combined MySQL backend server info queries. 2020-06-22 09:58:46 +02:00
conditional_processing Updated test URL patterns to use path() and re_path(). 2018-12-31 10:47:32 -05:00
constraints Fixed #31815 -- Fixed schema value encoding on PostgreSQL. 2020-07-27 06:39:02 +02:00
contenttypes_tests Refs #31395 -- Relied on setUpTestData() test data isolation in various tests. 2020-05-15 20:22:56 +02:00
context_processors Refs #28478 -- Deprecated TestCase's allow_database_queries and multi_db in favor of databases. 2019-01-10 19:11:21 -05:00
csrf_tests Refs #30116 -- Simplified regex match group access with Match.__getitem__(). 2020-05-11 12:01:28 +02:00
custom_columns Followed style guide for model attribute ordering. 2018-12-27 19:34:14 -05:00
custom_lookups Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
custom_managers Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
custom_methods
custom_migration_operations
custom_pk Refs #30573 -- Rephrased "Of Course" and "Obvious(ly)" in documentation and comments. 2020-05-04 12:10:47 +02:00
datatypes Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
dates Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
datetimes Refs #29724 -- Added is_dst parameter to QuerySet.datetimes(). 2020-03-20 12:55:33 +01:00
db_functions Fixed #21181 -- Added Collate database function. 2020-08-11 22:21:08 +02:00
db_typecasts
db_utils Simplified imports from django.db and django.contrib.gis.db. 2020-02-04 13:20:06 +01:00
dbshell Fixed #31491 -- Allowed 'password' option in DATABASES['OPTIONS'] on MySQL. 2020-06-12 12:07:43 +02:00
decorators Refs #26601 -- Deprecated passing None as get_response arg to middleware classes. 2020-02-18 20:03:44 +01:00
defer Fixed #30988 -- Deprecated the InvalidQuery exception. 2019-11-18 14:06:51 +01:00
defer_regress Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
delete Fixed #31965 -- Adjusted multi-table fast-deletion on MySQL/MariaDB. 2020-08-31 08:11:28 +02:00
delete_regress Switched setUp() to setUpTestData() where possible in Django's tests. 2018-11-27 09:35:17 -05:00
deprecation Refs #31928 -- Added various middlewares tests for detecting when get_response is coroutine. 2020-08-28 12:33:29 +02:00
dispatch Fixed #31327 -- Deprecated providing_args argument for Signal. 2020-03-05 09:38:52 +01:00
distinct_on_fields Switched setUp() to setUpTestData() where possible in Django's tests. 2018-11-27 09:35:17 -05:00
empty
empty_models Added assertions for an empty stdout to CoreCommandsNoOutputTests. 2020-04-20 11:32:03 +02:00
expressions Fixed #31919 -- Resolved output_field of IntegerField subclasses combinations. 2020-08-31 06:42:40 +02:00
expressions_case Refs #30446 -- Removed unnecessary Value(..., output_field) in docs and tests. 2020-07-15 10:58:38 +02:00
expressions_window Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
extra_regress Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
field_deconstruction Fixed #23916 -- Allowed makemigrations to handle related model name case changes. 2020-03-25 10:39:34 +01:00
field_defaults
field_subclassing Fixed #30657 -- Allowed customizing Field's descriptors with a descriptor_class attribute. 2019-07-25 08:15:20 +02:00
file_storage Refs #28184 -- Added test for FileField storage default. 2020-04-08 11:26:17 +02:00
file_uploads Fixed #28132 -- Made MultiPartParser ignore filenames with trailing slash. 2020-06-11 08:46:59 +02:00
files Refs #29983 -- Added test for FILE_UPLOAD_TEMP_DIR pathlib support. 2019-11-06 08:20:23 +01:00
filtered_relation Fixed #29789 -- Added support for nested relations to FilteredRelation. 2020-07-09 20:24:00 +02:00
fixtures Fixed #31552 -- Added support for LZMA and XZ fixtures to loaddata. 2020-05-15 11:30:28 +02:00
fixtures_model_package Fixed fixtures loading isolation in tests. 2020-05-15 09:14:05 +02:00
fixtures_regress Enforced uniqueness of natural keys used in tests. 2020-04-07 10:54:19 +02:00
flatpages_tests Fixed #22261 -- Fixed resolving namespaced URLs for flatpages. 2020-01-28 13:14:23 +01:00
force_insert_update
foreign_object Fixed typos in docs and a test comment. 2020-02-19 07:08:23 +01:00
forms_tests Fixed #31806 -- Made validators include the value in ValidationErrors. 2020-07-27 13:03:26 +02:00
from_db_value Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
generic_inline_admin Changed `'%s' % value` pattern to `str(value)`. 2020-05-04 08:27:18 +02:00
generic_relations Refs #9061 -- Allowed GenericInlineFormSet to disable deleting extra forms. 2020-08-18 09:37:15 +02:00
generic_relations_regress Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
generic_views Fixed #31877 -- Reverted "Fixed #19878 -- Deprecated TemplateView passing URL kwargs into context." 2020-08-24 11:37:59 +02:00
get_earliest_or_latest Refs #11557 -- Removed the field_name keyword argument to QuerySet.earliest() and latest(). 2019-01-17 10:52:19 -05:00
get_object_or_404 Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
get_or_create Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
gis_tests Bumped minimum isort version to 5.1.0. 2020-07-30 10:58:59 +02:00
handlers Capitalized Unicode in docs, strings, and comments. 2020-04-20 12:10:33 +02:00
httpwrappers Capitalized Unicode in docs, strings, and comments. 2020-04-20 12:10:33 +02:00
humanize_tests Fixed #31363 -- Added support for negative integers to intword template filter. 2020-03-16 08:44:43 +01:00
i18n Fixed #31180 -- Configured applications automatically. 2020-07-21 10:35:12 +02:00
import_error_package
indexes Fixed #30913 -- Added support for covering indexes on PostgreSQL 11+. 2020-06-04 12:26:22 +02:00
inline_formsets
inspectdb Fixed #31736 -- Fixed InspectDBTransactionalTests.test_foreign_data_wrapper crash on Windows. 2020-06-23 20:26:43 +02:00
introspection Refs #31630 -- Added CharField and IntegerField to DatabaseFeatures.introspected_field_types. 2020-06-04 08:46:06 +02:00
invalid_models_tests Fixed #31530 -- Added system checks for invalid model field names in CheckConstraint.check and UniqueConstraint.condition. 2020-07-06 09:16:57 +02:00
known_related_objects
logging_tests Fixed tests isolation in logging_tests. 2020-05-08 10:49:34 +02:00
lookup Fixed #31918 -- Allowed QuerySet.in_bulk() to fetch on a single distinct field. 2020-08-26 09:43:39 +02:00
m2m_and_m2o Followed style guide for model attribute ordering. 2018-12-27 19:34:14 -05:00
m2m_intermediary Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
m2m_multiple
m2m_recursive Fixed #30421 -- Allowed symmetrical intermediate table for self-referential ManyToManyField. 2019-06-21 15:03:17 +02:00
m2m_regress Refs #26022 -- Used context manager version of assertRaisesMessage in tests. 2019-04-29 08:05:07 +02:00
m2m_signals Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
m2m_through Fixed #31752 -- Fixed intermittent test_order_by_relational_field_through_model failure. 2020-06-30 13:08:23 +02:00
m2m_through_regress Changed `'%s' % value` pattern to `str(value)`. 2020-05-04 08:27:18 +02:00
m2o_recursive Adjusted code style of a few test data setup methods. 2018-11-27 09:48:22 -05:00
mail Used mock.Mock() in SMTPBackendTests. 2020-08-07 20:31:47 +02:00
managers_regress Fixed #31223 -- Added __class_getitem__() to Manager and QuerySet. 2020-04-15 11:26:11 +02:00
many_to_many Refs #31395 -- Relied on setUpTestData() test data isolation in various tests. 2020-05-15 20:22:56 +02:00
many_to_one Refs #31395 -- Relied on setUpTestData() test data isolation in various tests. 2020-05-15 20:22:56 +02:00
many_to_one_null Refs #31395 -- Relied on setUpTestData() test data isolation in various tests. 2020-05-15 20:22:56 +02:00
max_lengths Fixed #30295 -- Fixed max_lengths.tests.MaxLengthORMTests when run in isolation. 2019-03-28 10:18:30 +01:00
messages_tests Fixed #31842 -- Added DEFAULT_HASHING_ALGORITHM transitional setting. 2020-08-04 09:35:24 +02:00
middleware Refs #26601 -- Deprecated passing None as get_response arg to middleware classes. 2020-02-18 20:03:44 +01:00
middleware_exceptions Refs #31040 -- Used 402 HTTP status in middleware_exceptions tests. 2020-03-31 12:09:17 +02:00
migrate_signals Disabled management commands output with verbosity 0 in various tests. 2020-05-13 09:12:43 +02:00
migration_test_data_persistence
migrations Fixed #31954 -- Fixed migration optimization for MTI model creation with parent model with mixed case app label. 2020-08-28 13:35:13 +02:00
migrations2
model_enums Fixed #31154 -- Added support for using enumeration types in templates. 2020-01-10 07:52:06 +01:00
model_fields Fixed #31956 -- Fixed crash of ordering by JSONField with a custom decoder on PostgreSQL. 2020-08-28 19:09:46 +02:00
model_forms Bumped minimum isort version to 5.1.0. 2020-07-30 10:58:59 +02:00
model_formsets Fixed #9061 -- Allowed FormSets to disable deleting extra forms. 2020-06-24 09:26:25 +02:00
model_formsets_regress Used 4 space hanging indent for dictionaries. 2019-01-02 18:18:19 -05:00
model_indexes Refs #28077 -- Added opclasses to Index.__repr__(). 2020-06-17 10:32:43 +02:00
model_inheritance Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
model_inheritance_regress Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
model_meta Fixed #26977 -- Made abstract models raise TypeError when instantiating. 2020-08-05 06:37:04 +02:00
model_options Fixed #30023 -- Prevented SQLite schema alterations while foreign key checks are enabled. 2018-12-15 18:51:59 -05:00
model_package
model_regress Fixed #31863 -- Prevented mutating model state by copies of model instances. 2020-08-12 12:43:42 +02:00
modeladmin Refs #31395 -- Relied on setUpTestData() test data isolation in various tests. 2020-05-15 20:22:56 +02:00
multiple_database Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
mutually_referential
nested_foreign_keys Switched setUp() to setUpTestData() where possible in Django's tests. 2018-11-27 09:35:17 -05:00
no_models
null_fk Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
null_fk_ordering Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
null_queries Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
one_to_one Refs #31395 -- Relied on setUpTestData() test data isolation in various tests. 2020-05-15 20:22:56 +02:00
or_lookups Switched setUp() to setUpTestData() where possible in Django's tests. 2018-11-27 09:35:17 -05:00
order_with_respect_to Fixed #13296 -- Fixed ordering by Options.order_with_respect_to after deleting objects. 2019-09-23 11:20:37 +02:00
ordering Fixed #30446 -- Resolved Value.output_field for stdlib types. 2020-07-15 10:58:29 +02:00
pagination Fixed #25513 -- Extracted admin pagination to Paginator.get_elided_page_range(). 2020-08-06 12:38:56 +02:00
postgres_tests Fixed #31902 -- Fixed crash of ExclusionConstraint on expressions with params. 2020-08-19 06:43:54 +02:00
prefetch_related Refs #31395 -- Relied on setUpTestData() test data isolation in various tests. 2020-05-15 20:22:56 +02:00
project_template Fixed #31232 -- Changed default SECURE_REFERRER_POLICY to 'same-origin'. 2020-02-05 14:39:01 +01:00
properties Adjusted code style of a few test data setup methods. 2018-11-27 09:48:22 -05:00
proxy_model_inheritance Removed obsolete TODO in proxy_model_inheritance test. 2018-08-16 09:20:31 -04:00
proxy_models Updated test URL patterns to use path() and re_path(). 2018-12-31 10:47:32 -05:00
queries Refs #30897 -- Added test for WAL option to Queryset.explain() on PostgreSQL 13+. 2020-08-24 11:47:38 +02:00
queryset_pickle Refs #30727 -- Added tests for Subquery with queryset in kwargs pickle without evaluating it. 2020-05-19 22:44:57 +02:00
raw_query Fixed #30988 -- Deprecated the InvalidQuery exception. 2019-11-18 14:06:51 +01:00
redirects_tests Updated test URL patterns to use path() and re_path(). 2018-12-31 10:47:32 -05:00
requests Fixed #30997 -- Deprecated HttpRequest.is_ajax(). 2020-01-27 08:54:32 +01:00
requirements Bumped asgiref requirement to >= 3.2.10. 2020-07-17 21:15:21 +02:00
reserved_names
resolve_url Removed unnecessary tuple wrapping of single format string argument. 2020-04-27 08:30:16 +02:00
responses Fixed #31790 -- Fixed setting SameSite and Secure cookies flags in HttpResponse.delete_cookie(). 2020-07-16 08:16:58 +02:00
reverse_lookup Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
save_delete_hooks
schema Fixed #24533 -- Dropped PostgreSQL sequence and Oracle identity when migrating away from AutoField. 2020-08-24 14:32:07 +02:00
select_for_update Fixed #31866 -- Fixed locking proxy models in QuerySet.select_for_update(of=()). 2020-08-11 11:55:10 +02:00
select_related Refs #30573 -- Rephrased "Of Course" and "Obvious(ly)" in documentation and comments. 2020-05-04 12:10:47 +02:00
select_related_onetoone Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
select_related_regress Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
serializers Fixed #31888 -- Avoided module-level MySQL queries in tests. 2020-08-17 09:31:16 +02:00
servers Replaced unnecessary str()/bytes() calls with literals. 2019-11-18 15:30:10 +01:00
sessions_tests Fixed #31895 -- Fixed crash when decoding invalid session data. 2020-08-19 12:06:00 +02:00
settings_tests Fixed #29324 -- Made SECRET_KEY validation lazy (on first access). 2020-07-29 09:06:54 +02:00
shell
shortcuts Refs #25978 -- Removed shortcuts.render_to_response() per deprecation timeline. 2019-01-17 10:50:25 -05:00
signals Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
signed_cookies_tests
signing Fixed #31842 -- Added DEFAULT_HASHING_ALGORITHM transitional setting. 2020-08-04 09:35:24 +02:00
sitemaps_tests Fixed #27395 -- Added sitemap 'alternates' generation. 2020-07-29 11:48:29 +02:00
sites_framework Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
sites_tests Fixed #31802 -- Added system check for non-integer SITE_ID. 2020-07-24 10:41:55 +02:00
staticfiles_tests Fixed #31594 -- Added ASGIStaticFilesHandler.get_response_async(). 2020-06-08 12:52:26 +02:00
str
string_lookup Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
swappable_models Disabled management commands output with verbosity 0 in various tests. 2020-05-13 09:12:43 +02:00
syndication_tests Fixed #31822 -- Added support for comments URL per feed item. 2020-07-30 07:36:27 +02:00
template_backends Refs #30116 -- Simplified regex match group access with Match.__getitem__(). 2020-05-11 12:01:28 +02:00
template_loader
template_tests Made test_once a keyword argument in template_tests.utils.setup(). 2020-05-21 08:09:19 +02:00
templates Fixed #31080 -- Removed redundant type="text/javascript" attribute from <script> tags. 2019-12-11 09:49:54 +01:00
test_client Fixed #31494 -- Preserved query strings when following HTTP 307/308 redirects in test client. 2020-05-27 10:36:52 +02:00
test_client_regress Refs #30116 -- Simplified regex match group access with Match.__getitem__(). 2020-05-11 12:01:28 +02:00
test_exceptions Fixed #28507 -- Made ValidationError.__eq__() ignore messages and params ordering. 2020-07-29 12:04:13 +02:00
test_runner Refs #31811 -- Added optional timing outputs to the test runner. 2020-08-13 17:17:15 +02:00
test_runner_apps Fixed #27430 -- Added -b/--buffer option to DiscoverRunner. 2019-12-09 13:47:12 +01:00
test_utils Fixed #30457 -- Added TestCase.captureOnCommitCallbacks(). 2020-07-13 11:56:46 +02:00
timezones Refs #30573 -- Rephrased "Of Course" and "Obvious(ly)" in documentation and comments. 2020-05-04 12:10:47 +02:00
transaction_hooks Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
transactions Fixed #30116 -- Dropped support for Python 3.5. 2019-01-30 10:19:48 -05:00
unmanaged_models Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
update Fixed #31573 -- Made QuerySet.update() respect ordering on MariaDB/MySQL. 2020-07-08 11:43:50 +02:00
update_only_fields Fixed #31382 -- Made Model.save(update_fields=...) raise ValueError on non-concrete fields. 2020-08-12 21:13:55 +02:00
urlpatterns Fixed #31534 -- Deprecated django.conf.urls.url(). 2020-05-05 07:34:34 +02:00
urlpatterns_reverse Removed unused param_dict return from URLResolver.resolve_error_handler(). 2020-06-22 21:28:56 +02:00
user_commands Reverted "Refs #23919 -- Removed obsolete __init__.py files in management command directories." 2020-06-01 10:55:41 +02:00
utils_tests Completed test coverage for colorize(). 2020-07-29 07:57:06 +02:00
validation Fixed #31596 -- Changed ForeignKey.validate() to use the base manager. 2020-06-25 11:36:20 +02:00
validators Fixed typo in DecimalValidator tests. 2020-07-16 11:21:39 +02:00
version
view_tests Fixed #31942 -- Made settings cleansing work with dictionary settings with non-string keys. 2020-08-26 11:59:37 +02:00
wsgi Fixed #30567 -- Made WSGIHandler pass FileResponse.block_size to wsgi.file_wrapper. 2019-07-26 07:31:51 +02:00
.coveragerc
README.rst Fixed #30367 -- Changed "pip install" to "python -m pip install" in docs, comments and hints. 2019-04-18 14:41:15 +02:00
runtests.py Refs #26601 -- Added various middlewares tests for deprecation of passing None as get_response. 2020-08-28 12:33:15 +02:00
test_sqlite.py
urls.py

README.rst

To run the test suite, first, create and activate a virtual environment. Then
install some requirements and run the tests::

    $ cd tests
    $ python -m pip install -e ..
    $ python -m pip install -r requirements/py3.txt
    $ ./runtests.py

For more information about the test suite, see
https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/unit-tests/.