django/tests
Simon Charette 1e7327770c [5.2.x] Fixed #36751 -- Fixed empty filtered aggregation crash over annotated queryset.
Regression in b8e5a8a9a2.

Refs #36404.

The replace_expressions method was innapropriately dealing with falsey
but not None source expressions causing them to also be potentially
evaluated when __bool__ was invoked (e.g. QuerySet.__bool__ evaluates
the queryset).

The changes introduced in b8e5a8a9a2, which were to deal with a similar
issue, surfaced the problem as aggregation over an annotated queryset
requires an inlining (or pushdown) of aggregate references which is
achieved through replace_expressions.

In cases where an empty Q object was provided as an aggregate filter,
such as when the admin facetting feature was used as reported, it would
wrongly be turned into None, instead of an empty WhereNode, causing a
crash at aggregate filter compilation.

Note that the crash signature differed depending on whether or not the
backend natively supports aggregate filtering
(supports_aggregate_filter_clause) as the fallback, which makes use
Case / When expressions, would result in a TypeError instead of a
NoneType AttributeError.

Thanks Rafael Urben for the report, Antoliny and Youngkwang Yang for
the triage.
Backport of 2a6e0bd72d from main
2025-11-24 12:15:48 +01:00
..
absolute_url_overrides Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
admin_autodiscover Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
admin_changelist [5.2.x] Fixed #36217 -- Restored pre_save/post_save signal emission via LogEntry.save() for single-object deletion in the admin. 2025-03-04 10:36:37 +01:00
admin_checks Fixed #10743 -- Allowed lookups for related fields in ModelAdmin.list_display. 2024-02-05 21:42:04 -03:00
admin_custom_urls Fixed #33028 -- Used ModelAdmin's opts attribute instead of model._meta. 2022-06-22 07:50:24 +02:00
admin_default_site Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
admin_docs [5.2.x] Captured stderr during admin_docs test. 2025-01-27 09:24:59 +01:00
admin_filters Fixed #35198 -- Fixed facet filters crash on querysets with no primary key. 2024-02-29 10:01:18 +01:00
admin_inlines [5.2.x] Fixed #36601 -- Fixed color contrast of FilteredSelectMultiple widget chosen labels in TabularInlines. 2025-09-17 10:01:37 +02:00
admin_ordering Fixed #9602 -- Added AdminSite.get_model_admin(). 2023-07-07 08:06:01 +02:00
admin_registration Fixed #373 -- Added CompositePrimaryKey. 2024-11-29 11:23:04 +01:00
admin_scripts [5.2.x] Fixed #36266 -- Renamed HIDE_PRODUCTION_WARNING environment variable to DJANGO_RUNSERVER_HIDE_WARNING. 2025-03-21 10:23:13 +01:00
admin_utils [5.2.x] Fixed #36234 -- Restored single_object argument to LogEntry.objects.log_actions(). 2025-03-12 16:36:48 -03:00
admin_views [5.2.x] Fixed #36331 -- Reverted "Fixed #36055 -- Prevented overlap of object-tools buttons and page header in the admin." 2025-04-22 22:14:54 -03:00
admin_widgets [5.2.x] Fixed #36423 -- Prevented filter_horizontal buttons from intercepting form submission. 2025-06-02 22:26:36 -03:00
aggregation [5.2.x] Fixed #36751 -- Fixed empty filtered aggregation crash over annotated queryset. 2025-11-24 12:15:48 +01:00
aggregation_regress Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
annotations [5.2.x] Fixed CVE-2025-59681 -- Protected QuerySet.annotate(), alias(), aggregate(), and extra() against SQL injection in column aliases on MySQL/MariaDB. 2025-10-01 08:24:18 -04:00
app_loading Used addCleanup() in tests where appropriate. 2023-12-31 10:01:31 +01:00
apps Fixed #34849 -- Avoided raising RuntimeWarning about import-time queries when apps are reinitialized with test tools. 2023-09-25 08:17:03 +02:00
asgi [5.2.x] Fixed warnings per flake8 7.2.0. 2025-03-30 17:56:41 +02:00
async [5.2.x] Refs #35530 -- Corrected deprecation message in auth.alogin(). 2025-08-22 16:15:42 +02:00
auth_tests [5.2.x] Fixed #36390 -- Deprecated RemoteUserMiddleware subclasses missing aprocess_request(). 2025-05-23 10:24:09 +02:00
backends [5.2.x] Fixed #36502 -- Restored UNNEST strategy for foreign key bulk inserts on PostgreSQL. 2025-07-10 18:36:01 +02:00
base
bash_completion Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
basic Refs #36064 -- Added test that falsey primary key default/db_default value skips an update query on save. 2025-01-10 11:43:38 +01:00
builtin_server Fixed #33865 -- Optimized LimitedStream wrapper. 2023-01-05 19:26:56 +01:00
bulk_create Fixed #34698 -- Made QuerySet.bulk_create() retrieve primary keys when updating conflicts. 2023-07-10 13:17:28 +02:00
cache Fixed #32831 -– Allowed cache tests to be retried via a new "retry" decorator. 2024-09-05 18:25:05 -03:00
check_framework Fixed #35656 -- Added an autodetector attribute to the makemigrations and migrate commands. 2024-10-15 16:39:12 +02:00
composite_pk [5.2.x] Fixed #36704 -- Fixed system check error for proxy model with a composite pk. 2025-11-04 12:00:58 -05:00
conditional_processing Updated documentation and comments for RFC updates. 2022-11-10 13:52:17 +01:00
constraints [5.2.x] Fixed #34871, #36518 -- Implemented unresolved lookups expression replacement. 2025-08-04 09:42:32 +02:00
contenttypes_tests Fixed #35950 -- Restored refreshing of relations when fields deferred. 2024-12-02 16:01:37 +01:00
context_processors Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
csrf_tests [5.2.x] Added helpers in csrf_tests and logging_tests to assert logs from log_response(). 2025-05-22 15:41:13 -03:00
custom_columns Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
custom_lookups Fixed #35413 -- Made unsupported lookup error message more specific. 2024-07-09 09:15:38 +02:00
custom_managers Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
custom_methods Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
custom_migration_operations Fixed #35175 -- Made migraton writer preserve keyword-only arguments. 2024-02-09 09:37:13 +01:00
custom_pk Removed unnecessary trailing commas in tests. 2023-08-22 12:42:57 +02:00
datatypes Refs #32365 -- Removed internal uses of utils.timezone.utc alias. 2022-03-24 06:29:50 +01:00
dates Replaced assertQuerysetEqual() to assertSequenceEqual()/assertCountEqual() where appropriate. 2022-10-07 13:05:35 +02:00
datetimes Refs #32365 -- Removed support for pytz timezones per deprecation timeline. 2023-01-17 11:49:15 +01:00
db_functions [5.2.x] Fixed #36173 -- Stabilized identity of Concat with an explicit output_field. 2025-02-15 16:24:00 +01:00
db_typecasts Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
db_utils Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
dbshell Fixed #18392 -- Changed default mysql encoding to "utf8mb4". 2024-11-18 15:00:33 +01:00
decorators Fixed #35083 -- Updated method_decorator to handle async methods. 2024-08-30 08:54:49 -03:00
defer Fixed #35950 -- Restored refreshing of relations when fields deferred. 2024-12-02 16:01:37 +01:00
defer_regress Fixed #35356 -- Deferred self-referential foreign key fields adequately. 2024-04-23 13:17:17 -03:00
delete Added missing test for QuerySet.delete() when raising EmptyResultSet. 2025-01-02 23:49:49 -03:00
delete_regress Fixed #35073 -- Avoided unnecessary calling of callables used by SET/SET_DEFAULT in Collector.collect(). 2024-02-08 18:41:32 +01:00
deprecation Fixed #35303 -- Implemented async auth backends and utils. 2024-10-07 14:19:41 +02:00
dispatch Refs #34986 -- Moved garbage_collect() helper to django.test.utils. 2023-12-06 09:26:11 +01:00
distinct_on_fields Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
empty
empty_models Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
expressions [5.2.x] Fixed #36751 -- Fixed empty filtered aggregation crash over annotated queryset. 2025-11-24 12:15:48 +01:00
expressions_case Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
expressions_window Fixed #35665 -- Fixed a crash when passing an empty order_by to Window. 2024-08-13 11:26:17 +02:00
extra_regress Fixed #30382 -- Allowed specifying parent classes in force_insert of Model.save(). 2023-06-29 21:52:52 +02:00
field_deconstruction [5.2.x] Fixed #36061 -- Added migration support for ManyToManyField.through_fields. 2025-02-06 15:27:26 +01:00
field_defaults [5.2.x] Refs #470 -- Fixed field_defaults test failures due to year-end boundary conditions. 2025-01-23 12:44:12 -03:00
field_subclassing Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
file_storage [5.2.x] Fixed #36191 -- Truncated the overwritten file content in FileSystemStorage. 2025-02-17 14:03:36 +01:00
file_uploads Fixed CVE-2024-39330 -- Added extra file name validation in Storage's save method. 2024-07-09 09:21:19 -03:00
files [5.2.x] Fixed #36298 -- Truncated the overwritten file content in file_move_safe(). 2025-04-07 16:13:19 +02:00
filtered_relation [5.2.x] Fixed #36109 -- Fixed RecursionError when stacking FilteredRelation joins. 2025-01-27 10:34:16 +01:00
fixtures Fixed #35159 -- Fixed dumpdata crash when base querysets use prefetch_related(). 2024-01-31 16:10:05 +01:00
fixtures_model_package Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
fixtures_regress Refs #29522 -- Fixed serializers/fixtures test crash if PyYAML isn't installed. 2024-09-19 08:51:30 +02:00
flatpages_tests Refs #33476 -- Refactored code to strictly match 88 characters line length. 2022-02-07 20:37:05 +01:00
force_insert_update Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
foreign_object [5.2.x] Fixed #36290 -- Made TupleIn() lookup discard tuples containing None. 2025-04-03 22:20:50 +02:00
forms_tests [5.2.x] Applied Black's 2025 stable style. 2025-03-01 19:47:17 +01:00
from_db_value Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
generic_inline_admin Removed unnecessary trailing commas in tests. 2023-08-22 12:42:57 +02:00
generic_relations Fixed #33651 -- Added support for prefetching GenericForeignKey. 2023-09-18 13:23:21 +02:00
generic_relations_regress Fixed #34816 -- Fixed GenericForeignKey crash when checking cache for primary keys with different types. 2023-09-08 08:47:11 +02:00
generic_views [5.2.x] Refs CVE-2025-48432 -- Prevented log injection in remaining response logging. 2025-06-06 09:07:12 -03:00
get_earliest_or_latest Fixed #33772 -- Added QuerySet.first()/last() error message on unordered queryset with aggregation. 2022-06-14 12:24:43 +02:00
get_object_or_404 Refs #33476 -- Refactored code to strictly match 88 characters line length. 2022-02-07 20:37:05 +01:00
get_or_create Refs #29499 -- Fixed race condition in update_or_create() test. 2025-01-15 15:36:57 +01:00
gis_tests [5.2.x] Fixed RelatedGeoModelTest.test_related_union_aggregate() test on Oracle and GEOS 3.12+. 2025-10-20 16:06:20 +02:00
handlers Refs #33735 -- Adjusted warning stacklevel in StreamingHttpResponse.__iter__()/__aiter__(). 2024-08-28 11:44:05 -03:00
httpwrappers [5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedirect/HttpResponsePermanentRedirect on Windows. 2025-11-05 09:32:59 -03:00
humanize_tests Fixed #35443 -- Changed ordinal to return negative numbers unchanged. 2024-05-27 10:54:25 +02:00
i18n [5.2.x] Fixed #36010 -- Avoided touching mo files while checking writability. 2025-01-23 11:37:48 +01:00
import_error_package
indexes Fixed #35469 -- Removed deferred SQL to create index removed by AlterField operation. 2024-05-28 12:44:07 +02:00
inline_formsets Refs #33476 -- Refactored code to strictly match 88 characters line length. 2022-02-07 20:37:05 +01:00
inspectdb [5.2.x] Refs #36052, #32234 -- Fixed inspectdb tests for CompositePrimaryKey on Oracle. 2025-05-06 08:21:32 +02:00
introspection Refs #35234 -- Deprecated CheckConstraint.check in favor of .condition. 2024-03-01 07:15:32 +01:00
invalid_models_tests [5.2.x] Fixed #36530 -- Extended fields.E347 to check for ManyToManyField involving CompositePrimaryKey on either side. 2025-08-05 08:46:56 -03:00
known_related_objects Fixed #34227 -- Fixed QuerySet.select_related() with multi-level FilteredRelation. 2023-01-24 10:20:27 +01:00
logging_tests [5.2.x] Refs CVE-2025-48432 -- Made SuspiciousOperation logging use log_response() for consistency. 2025-06-06 09:07:06 -03:00
lookup [5.2.x] Refs #34378, #36143, #36416 -- Fixed isolation of LookupTests.test_in_bulk_preserve_ordering_with_batch_size(). 2025-08-13 15:30:34 -03:00
m2m_and_m2o Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
m2m_intermediary Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
m2m_multiple Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
m2m_recursive Relaxed some query ordering assertions in various tests. 2022-04-14 12:12:13 +02:00
m2m_regress Fixed #33984 -- Reverted "Fixed #32980 -- Made models cache related managers." 2022-09-30 18:18:33 +02:00
m2m_signals Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
m2m_through [5.2.x] Fixed #36197 -- Fixed improper many-to-many count() and exists() for non-pk to_field. 2025-02-18 11:44:46 +01:00
m2m_through_regress Refs #33476 -- Refactored code to strictly match 88 characters line length. 2022-02-07 20:37:05 +01:00
m2o_recursive Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
mail [5.2.x] Refs #35844 -- Doc'd Python 3.14 compatibility. 2025-10-17 20:05:19 +02:00
managers_regress Refs #33476 -- Refactored code to strictly match 88 characters line length. 2022-02-07 20:37:05 +01:00
many_to_many Fixed #35666 -- Documented stacklevel usage and testing, and adjusted test suite accordingly. 2024-08-28 11:44:05 -03:00
many_to_one Fixed #35666 -- Documented stacklevel usage and testing, and adjusted test suite accordingly. 2024-08-28 11:44:05 -03:00
many_to_one_null Fixed #19580 -- Unified behavior of reverse foreign key and many-to-many relations for unsaved instances. 2022-02-22 09:16:40 +01:00
max_lengths Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
messages_tests Fixed #35622 -- Made unittest ignore Django assertions in traceback frames. 2024-08-08 21:34:01 -03:00
middleware Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
middleware_exceptions Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
migrate_signals Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
migration_test_data_persistence Fixed #35921 -- Fixed failure when running tests in parallel on postgres. 2024-11-27 12:51:41 +01:00
migrations [5.2.x] Refs #22997 -- Prevented requesting a default value for auto fields. 2025-02-06 13:55:41 +01:00
migrations2 Fixed #35122 -- Made migrate --prune option respect --app_label. 2024-02-13 14:47:49 +01:00
model_enums Fixed #35666 -- Documented stacklevel usage and testing, and adjusted test suite accordingly. 2024-08-28 11:44:05 -03:00
model_fields [5.2.x] Applied Black's 2025 stable style. 2025-03-01 19:47:17 +01:00
model_forms Refs #35844 -- Fixed OtherModelFormTests.test_prefetch_related_queryset() test on Python 3.14+. 2024-12-20 14:18:10 +01:00
model_formsets Fixed #35488 -- Fixed BaseModelFormSet.validate_unique() crash due to unhashable type. 2024-06-13 16:21:53 +02:00
model_formsets_regress Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
model_indexes Fixed #33773 -- Made Index with multiple fields respect DEFAULT_INDEX_TABLESPACE. 2022-06-13 07:21:46 +02:00
model_inheritance Fixed #36093 -- Adjusted unique checks to account for inherited primary keys. 2025-01-14 16:21:19 +01:00
model_inheritance_regress Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
model_meta Fixed #35407 -- Cached model's Options.swapped. 2024-05-07 14:25:51 +02:00
model_options Refs #27236 -- Reverted AlterIndexTogether deprecation. 2022-07-26 11:41:19 +02:00
model_package Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
model_regress Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
model_utils Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
modeladmin Fixed #35666 -- Documented stacklevel usage and testing, and adjusted test suite accordingly. 2024-08-28 11:44:05 -03:00
multiple_database Fixed #16281 -- Fixed ContentType.get_object_for_this_type() in a multiple database setup. 2024-02-05 08:25:23 +01:00
mutually_referential Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
nested_foreign_keys Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
no_models Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
null_fk Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
null_fk_ordering Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
null_queries Fixed #19580 -- Unified behavior of reverse foreign key and many-to-many relations for unsaved instances. 2022-02-22 09:16:40 +01:00
one_to_one Fixed #35666 -- Documented stacklevel usage and testing, and adjusted test suite accordingly. 2024-08-28 11:44:05 -03:00
or_lookups Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
order_with_respect_to Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
ordering Fixed #34372 -- Fixed queryset crash on order by aggregation using OrderBy. 2023-02-27 07:10:19 +01:00
pagination Improved style of n-tuple wording in docs and comments. 2023-06-23 09:29:35 +02:00
postgres_tests [5.2.x] Fixed #36748 -- Filtered non-standard placeholders from UNNEST queries. 2025-11-20 17:24:10 -05:00
prefetch_related [5.2.x] Fixed #36432 -- Fixed a prefetch_related crash on related target subclass queryset. 2025-06-04 10:48:13 +02:00
project_template Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
properties Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
proxy_model_inheritance Removed redundant QuerySet.all() calls in docs and tests. 2022-02-22 10:29:38 +01:00
proxy_models Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
queries [5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on dictionary expansion. 2025-11-05 09:33:29 -03:00
queryset_pickle Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
raw_query Fixed typos in docstrings and docs. 2024-03-07 06:01:01 +01:00
redirects_tests Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
requests_tests [5.2.x] Fixed #36447 -- Selected preferred media type based on quality. 2025-06-16 09:27:46 +02:00
requirements [5.2.x] Refs #35844 -- Doc'd Python 3.14 compatibility. 2025-10-17 20:05:19 +02:00
reserved_names Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
resolve_url Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
responses Added tests for HttpResponseBase.charset/reason_phrase setters. 2023-06-10 20:43:05 +02:00
reverse_lookup Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
save_delete_hooks Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
schema Fixed #35180 -- Recreated PostgreSQL _like indexes when changing between TextField and CharField field types. 2024-10-31 06:37:14 +01:00
select_for_update [5.2.x] Fixed #36301 -- Fixed select_for_update(of) crash when using values()/values_list(). 2025-04-07 23:49:23 +02:00
select_related Removed redundant QuerySet.all() calls in docs and tests. 2022-02-22 10:29:38 +01:00
select_related_onetoone Fixed #34612 -- Fixed QuerySet.only() crash on reverse relationships. 2023-06-01 19:50:47 +01:00
select_related_regress Removed redundant QuerySet.all() calls in docs and tests. 2022-02-22 10:29:38 +01:00
serializers [5.2.x] Applied Black's 2025 stable style. 2025-03-01 19:47:17 +01:00
servers Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
sessions_tests Fixed #34901 -- Added async-compatible interface to session engines. 2024-03-13 17:55:15 +01:00
settings_tests Used addCleanup() in tests where appropriate. 2023-12-31 10:01:31 +01:00
shell [5.2.x] Fixed #36252 -- Handled duplicate automatic imports in the shell command. 2025-03-17 16:30:31 -03:00
shortcuts Fixed #35784 -- Added support for preserving the HTTP request method in HttpResponseRedirectBase. 2024-11-14 15:53:49 -03:00
signals Fixed #35174 -- Fixed Signal.asend()/asend_robust() crash when all receivers are asynchronous. 2024-02-08 11:36:28 +01:00
signed_cookies_tests Fixed #33562 -- Made HttpResponse.set_cookie() support timedelta for the max_age argument. 2022-03-07 07:57:14 +01:00
signing Refs #33199 -- Removed support for passing positional arguments to Signer/TimestampSigner. 2023-09-18 22:12:40 +02:00
sitemaps_tests Refs #35727 -- Updated response.content.decode calls to use the HttpResponse.text property. 2024-10-16 11:52:22 +02:00
sites_framework Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
sites_tests Used addCleanup() in tests where appropriate. 2023-12-31 10:01:31 +01:00
sphinx Fixed #29942 -- Restored source file linking in docs by using the Sphinx linkcode ext. 2024-05-14 22:08:29 -03:00
staticfiles_tests Fixed #35669 -- Improved max post-process passes exceeded error message in HashedFilesMixin. 2024-08-30 10:00:51 +02:00
str Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
string_lookup Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
swappable_models Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
syndication_tests [5.2.x] Fixed #36733 -- Escaped attributes in Stylesheet.__str__(). 2025-11-18 17:17:28 -05:00
template_backends Fixed #35837 -- Added missing alters_data=True to QuerySet and UserManager methods. 2024-11-01 11:43:49 +01:00
template_loader Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
template_tests [5.2.x] Fixed #36341 -- Preserved whitespaces in wordwrap template filter. 2025-04-23 16:18:55 -03:00
templates
test_client Fixed #35414 -- Used default headers in AsyncRequestFactory. 2025-01-03 08:41:34 +01:00
test_client_regress Fixed a typo in some tests. 2024-11-11 14:47:04 +01:00
test_exceptions Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
test_runner [5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible with tblib 3.2+. 2025-10-21 23:14:05 -03:00
test_runner_apps Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
test_utils [5.2.x] Fixed test_utils.tests.HTMLEqualTests.test_parsing_errors following Python's HTMLParser fixed parsing. 2025-08-13 17:48:37 -03:00
timezones Fixed #34921 -- Fixed crash of warning for unbound naive datetimes. 2023-10-22 14:26:38 +02:00
transaction_hooks Fixed #33616 -- Allowed registering callbacks that can fail in transaction.on_commit(). 2022-09-06 12:21:36 +02:00
transactions Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
unmanaged_models Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
update [5.2.x] Fixed #36360 -- Fixed QuerySet.update() crash when referring annotations through values(). 2025-04-30 11:39:37 +02:00
update_only_fields Refs #36075 -- Adjusted MTI handling of _non_pk_concrete_field_names. 2025-01-14 16:21:19 +01:00
urlpatterns Fixed #35666 -- Documented stacklevel usage and testing, and adjusted test suite accordingly. 2024-08-28 11:44:05 -03:00
urlpatterns_reverse Fixed #25582 -- Added support for query and fragment to django.urls.reverse(). 2024-12-11 16:40:28 -03:00
user_commands Fixed #36056 -- Made OutputWrapper a virtual subclass of TextIOBase. 2025-01-04 00:29:53 -03:00
utils_tests [5.2.x] Fixed #36733 -- Escaped attributes in Stylesheet.__str__(). 2025-11-18 17:17:28 -05:00
validation Fixed #35638 -- Updated validate_constraints to consider db_default. 2024-08-05 17:33:12 +02:00
validators Fixed #36098 -- Fixed validate_ipv6_address()/validate_ipv46_address() crash for non-string values. 2025-01-15 13:46:06 -03:00
version Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
view_tests Refs #35727 -- Updated response.content.decode calls to use the HttpResponse.text property. 2024-10-16 11:52:22 +02:00
wsgi Used addCleanup() in tests where appropriate. 2023-12-31 10:01:31 +01:00
xor_lookups Fixed #34604 -- Corrected fallback SQL for n-ary logical XOR. 2023-06-08 20:41:18 +02:00
.coveragerc Fixed #34810 -- Measured test coverage on django-admin commands. 2023-09-07 15:47:26 -03:00
README.rst
runtests.py Fixed #35952 -- Used class property for available apps check on TransactionTestCase. 2024-12-04 09:36:40 +01:00
sitecustomize.py Fixed #34810 -- Measured test coverage on django-admin commands. 2023-09-07 15:47:26 -03:00
test_sqlite.py Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
urls.py Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00

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/.