django/tests
Adam Johnson c2615a0500 Fixed #36405 -- Fixed Aggregate.order_by using OuterRef.
co-authored-by: Simon Charette <charette.s@gmail.com>
2025-05-23 16:15:59 +02:00
..
absolute_url_overrides
admin_autodiscover
admin_changelist Fixed #35507 -- Improved accessibility of search and filter elements in the admin changelist. 2025-05-14 16:03:01 +02:00
admin_checks Fixed #36363 -- Added field names to admin duplicated fields error hint. 2025-05-08 11:38:13 +01: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
admin_docs Captured stderr during admin_docs test. 2025-01-27 09:23:56 +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 Fixed #34917 -- Underlined links in the main content area of the admin. 2025-03-27 13:27:33 +01: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 Refs #35591 -- Ensured isolated test environ for runserver warning. 2025-05-13 12:02:30 +02:00
admin_utils Fixed #35959 -- Displayed password reset button in admin only when user has sufficient permissions. 2025-04-17 12:00:20 -03:00
admin_views Fixed #35507 -- Improved accessibility of search and filter elements in the admin changelist. 2025-05-14 16:03:01 +02:00
admin_widgets Refs #34488 -- Made test files path resolution independent of current working directory in ClearableFileInput selenium tests. 2025-05-15 13:02:00 -03:00
aggregation Fixed #36405 -- Fixed Aggregate.order_by using OuterRef. 2025-05-23 16:15:59 +02:00
aggregation_regress Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
annotations Fixed #36299 -- Prevented field selection on QuerySet.alias() after values(). 2025-04-05 20:43:50 +02: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 Fixed #36281 -- Used async-safe write in ASGIHandler.read_body(). 2025-05-04 14:53:08 +02:00
async Fixed #35530 -- Deprecated request.user fallback in auth.login and auth.alogin. 2024-11-28 17:43:46 +01:00
auth_tests Fixed #36390 -- Deprecated RemoteUserMiddleware subclasses missing aprocess_request(). 2025-05-23 10:22:36 +02:00
backends Fixed #36143 -- Made max_query_params respect SQLITE_LIMIT_VARIABLE_NUMBER. 2025-05-08 11:37:11 +01:00
base
bash_completion Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
basic Removed outdated docstring in tests/basic/models.py. 2025-02-25 15:22:08 +01:00
builtin_server Fixed #33865 -- Optimized LimitedStream wrapper. 2023-01-05 19:26:56 +01:00
bulk_create Refs #36143 -- Tested bulk_batch_size limit for bulk_update and bulk_create. 2025-05-08 11:37:11 +01: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 Fixed #36392 -- Raised ValueError when subquery referencing composite pk selects too many columns. 2025-05-16 08:19:38 +02:00
conditional_processing Updated documentation and comments for RFC updates. 2022-11-10 13:52:17 +01:00
constraints Fixed #36198 -- Implemented unresolved transform expression replacement. 2025-03-01 19:57:53 +01:00
contenttypes_tests Fixed #36267 -- Fixed contenttypes shortcut() view crash with an invalid object_id for a UUIDField pk. 2025-04-02 09:33:13 +02:00
context_processors Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
csrf_tests Added helpers in csrf_tests and logging_tests to assert logs from log_response(). 2025-05-22 15:39:31 -03:00
custom_columns Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
custom_lookups Americanized some spellings. 2025-04-16 10:21: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 #36005 -- Used datetime.UTC alias instead of datetime.timezone.utc. 2025-02-18 08:35:36 +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 Refs #36005 -- Used datetime.UTC alias instead of datetime.timezone.utc. 2025-02-18 08:35:36 +01:00
db_typecasts
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 #33312 -- Raised explicit exception when copying deferred model instances. 2025-05-16 08:13:57 +02: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 Fixed #35801 -- Prevented collision of senders with non-overlapping lifetimes. 2025-04-23 13:09:46 +01:00
distinct_on_fields Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
empty
empty_models
expressions Fixed #36198 -- Implemented unresolved transform expression replacement. 2025-03-01 19:57:53 +01:00
expressions_case Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
expressions_window Fixed #35444 -- Added generic support for Aggregate.order_by. 2025-03-03 11:37:00 +01: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 Fixed #36061 -- Added migration support for ManyToManyField.through_fields. 2025-02-06 15:26:12 +01:00
field_defaults Added supports_expression_defaults check in DefaultTests.test_full_clean() test. 2025-04-06 09:40:12 +02:00
field_subclassing
file_storage Refs #36005 -- Used datetime.UTC alias instead of datetime.timezone.utc. 2025-02-18 08:35: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 Fixed #36298 -- Truncated the overwritten file content in file_move_safe(). 2025-04-07 16:11:36 +02:00
filtered_relation Fixed #36109 -- Fixed RecursionError when stacking FilteredRelation joins. 2025-01-27 10:32:19 +01:00
fixtures Fixed #36177 -- Added a trailing newline to JSON serializer. (#19232) 2025-03-11 08:01:06 +01:00
fixtures_model_package Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
fixtures_regress Fixed #36177 -- Added a trailing newline to JSON serializer. (#19232) 2025-03-11 08:01:06 +01:00
flatpages_tests
force_insert_update Fixed #33579 -- Specialized exception raised on forced update failures. 2025-03-10 21:09:15 +01:00
foreign_object Fixed #36207 -- Cleared cached ForeignObject relations via refresh_from_db(). 2025-05-09 13:01:04 +01:00
forms_tests Fixed #35986 -- Fixed test classes with @translation.override decorator. 2025-04-09 09:49:14 +02:00
from_db_value
generic_inline_admin Refs #34380 -- Changed the URLField default scheme to https and removed FORMS_URLFIELD_ASSUME_HTTPS per deprecation timeline. 2025-01-15 22:28:37 +01: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 Refs #36005 -- Used datetime.UTC alias instead of datetime.timezone.utc. 2025-02-18 08:35:36 +01: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
get_or_create Refs #29499 -- Fixed race condition in update_or_create() test. 2025-01-15 15:36:57 +01:00
gis_tests Refs #36036 -- Removed unsupported 4D GEOS tests. 2025-04-09 22:40:55 -03:00
handlers Refs #33735 -- Adjusted warning stacklevel in StreamingHttpResponse.__iter__()/__aiter__(). 2024-08-28 11:44:05 -03:00
httpwrappers Fixed #35784 -- Added support for preserving the HTTP request method in HttpResponseRedirectBase. 2024-11-14 15:53:49 -03:00
humanize_tests Fixed #35852 -- Fixed intcomma locale-aware formatting of string number representations. 2025-05-14 16:04:04 +02:00
i18n Fixed #36010 -- Avoided touching mo files while checking writability. 2025-01-23 11:36:43 +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 Fixed #35676 -- Made BaseModelForm validate constraints that reference an InlineForeignKeyField. 2025-03-12 09:16:15 +01:00
inspectdb Refs #36052, #32234 -- Fixed inspectdb tests for CompositePrimaryKey on Oracle. 2025-05-06 08:20:56 +02:00
introspection Refs #35234 -- Deprecated CheckConstraint.check in favor of .condition. 2024-03-01 07:15:32 +01:00
invalid_models_tests Fixed #36273 -- Moved Index system checks from Model to Index.check(). 2025-05-14 16:00:53 +02:00
known_related_objects Fixed #34227 -- Fixed QuerySet.select_related() with multi-level FilteredRelation. 2023-01-24 10:20:27 +01:00
logging_tests Added helpers in csrf_tests and logging_tests to assert logs from log_response(). 2025-05-22 15:39:31 -03:00
lookup Fixed #36149 -- Allowed subquery values against tuple exact and in lookups. 2025-02-11 09:08:35 +01: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
m2m_through Fixed #36197 -- Fixed improper many-to-many count() and exists() for non-pk to_field. 2025-02-18 11:43:27 +01:00
m2m_through_regress Fixed #36177 -- Added a trailing newline to JSON serializer. (#19232) 2025-03-11 08:01:06 +01:00
m2o_recursive
mail Fixed #36309 -- Made email alternatives and attachments pickleable. 2025-04-24 10:11:16 -03:00
managers_regress
many_to_many Refs #33651 -- Removed Prefetch.get_current_queryset() and get_prefetch_queryset() per deprecation timeline. 2025-01-15 22:28:37 +01:00
many_to_one Refs #33651 -- Removed Prefetch.get_current_queryset() and get_prefetch_queryset() per deprecation timeline. 2025-01-15 22:28:37 +01:00
many_to_one_null
max_lengths
messages_tests Fixed #35622 -- Made unittest ignore Django assertions in traceback frames. 2024-08-08 21:34:01 -03:00
middleware Fixed #36138 -- Changed ADMINS and MANAGERS settings to lists of strings. 2025-03-21 10:17:57 +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 Fixed #36383 -- Improved migration serialization for functools.partial objects. 2025-05-13 21:42:19 -03:00
migrations2 Fixed #35122 -- Made migrate --prune option respect --app_label. 2024-02-13 14:47:49 +01:00
model_enums Fixed #36005 -- Dropped support for Python 3.10 and 3.11. 2025-01-20 14:07:28 +01:00
model_fields Fixed #33312 -- Raised explicit exception when copying deferred model instances. 2025-05-16 08:13:57 +02:00
model_forms Americanized some spellings. 2025-04-16 10:21:38 +02: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 #36295, Refs #24305 -- Allowed overriding GenericForeignKey fields on abstract models. 2025-05-08 16:07:08 +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
model_regress Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
model_utils
modeladmin Fixed #36363 -- Added field names to admin duplicated fields error hint. 2025-05-08 11:38:13 +01:00
multiple_database Fixed #36177 -- Added a trailing newline to JSON serializer. (#19232) 2025-03-11 08:01:06 +01:00
mutually_referential
nested_foreign_keys
no_models
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
one_to_one Refs #33651 -- Removed Prefetch.get_current_queryset() and get_prefetch_queryset() per deprecation timeline. 2025-01-15 22:28:37 +01: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 Fixed #35452 -- Deprecated orphans being more than or equal to page_size in pagination. 2025-03-25 12:04:13 +01:00
postgres_tests Fixed #36405 -- Fixed Aggregate.order_by using OuterRef. 2025-05-23 16:15:59 +02:00
prefetch_related Fixed #34819 -- Made GenericForeignKey prefetching use matching pk representations. 2025-03-26 09:55:38 +01:00
project_template
properties
proxy_model_inheritance
proxy_models Fixed #36177 -- Added a trailing newline to JSON serializer. (#19232) 2025-03-11 08:01:06 +01:00
queries Fixed #36388 -- Made QuerySet.union() return self when called with no arguments. 2025-05-19 10:34:14 +02:00
queryset_pickle
raw_query Fixed typos in docstrings and docs. 2024-03-07 06:01:01 +01:00
redirects_tests
requests_tests Fixed #36332 -- Corrected HttpRequest.get_full_path() and HttpRequest.get_full_path_info() examples. 2025-05-13 17:41:17 +02:00
requirements Refs #35844 -- Skipped selenium and geoip2 requirement in Windows for Python 3.14+. 2025-05-15 19:52:51 +02:00
reserved_names
resolve_url
responses Refs #36005 -- Used datetime.UTC alias instead of datetime.timezone.utc. 2025-02-18 08:35:36 +01:00
reverse_lookup
save_delete_hooks Applied Black's 2024 stable style. 2024-01-26 12:45:07 +01:00
schema Fixed #36156 -- Added supports_json_field check in test_db_default_output_field_resolving test. 2025-04-05 18:54:08 +02:00
select_for_update Fixed #36301 -- Fixed select_for_update(of) crash when using values()/values_list(). 2025-04-07 22:56:40 +02:00
select_related
select_related_onetoone Fixed #34612 -- Fixed QuerySet.only() crash on reverse relationships. 2023-06-01 19:50:47 +01:00
select_related_regress
serializers Fixed #36177 -- Added a trailing newline to JSON serializer. (#19232) 2025-03-11 08:01:06 +01:00
servers Fixed #36177 -- Added a trailing newline to JSON serializer. (#19232) 2025-03-11 08:01:06 +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 Fixed #36252 -- Handled duplicate automatic imports in the shell command. 2025-03-17 16:29:28 -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
signing Refs #33199 -- Removed support for passing positional arguments to Signer/TimestampSigner. 2023-09-18 22:12:40 +02:00
sitemaps_tests Americanized some spellings. 2025-04-16 10:21:38 +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 #36348 -- Fixed handling multiple nested url()s in ManifestStaticFilesStorage. 2025-05-16 15:56:17 +02:00
str
string_lookup
swappable_models Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
syndication_tests Fixed #12978 -- Added support for RSS feed stylesheets. 2024-06-18 17:25:43 +02: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
template_tests Fixed #36341 -- Preserved whitespaces in wordwrap template filter. 2025-04-23 16:14:03 -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
test_runner Refs #35967 -- Deprecated BaseDatabaseCreation.create_test_db(serialize). 2025-02-16 08:43:42 +01:00
test_runner_apps
test_utils Fixed #36005 -- Dropped support for Python 3.10 and 3.11. 2025-01-20 14:07:28 +01:00
timezones Fixed #35986 -- Fixed test classes with @translation.override decorator. 2025-04-09 09:49:14 +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 Fixed #36360 -- Fixed QuerySet.update() crash when referring annotations through values(). 2025-04-30 10:38:19 +01:00
update_only_fields Fixed #33579 -- Specialized exception raised on forced update failures. 2025-03-10 21:09:15 +01:00
urlpatterns Fixed #35518 -- Optimized RoutePattern by using string operations for converter-less routes. 2025-05-13 12:05:58 +01: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 Fixed CVE-2025-32873 -- Mitigated potential DoS in strip_tags(). 2025-05-06 22:21:42 -03: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
view_tests Fixed #36138 -- Changed ADMINS and MANAGERS settings to lists of strings. 2025-03-21 10:17:57 +01: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 #36005 -- Dropped support for Python 3.10 and 3.11. 2025-01-20 14:07:28 +01:00
sitecustomize.py Fixed #34810 -- Measured test coverage on django-admin commands. 2023-09-07 15:47:26 -03:00
test_sqlite.py
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/.