1
0
mirror of https://github.com/django/django.git synced 2024-12-22 17:16:24 +00:00
django/tests
Simon Charette 28e2077148 Refs #32433 -- Reallowed calling QuerySet.delete() after distinct().
While values(*field_excluding_pk).distinct() and
distinct(*field_excluding_pk) can reduce the number of resulting rows
in a way that makes subsequent delete() calls ambiguous standalone
.distinct() calls cannot.

Since delete() already disallows chain usages with values() the only
case that needs to be handled, as originally reported, is when
DISTINCT ON is used via distinct(*fields).

Refs #32682 which had to resort to subqueries to prevent duplicates in
the admin and caused significant performance regressions on MySQL
(refs #34639).

This partly reverts 6307c3f1a1.
2023-07-07 07:08:28 +02:00
..
absolute_url_overrides
admin_autodiscover
admin_changelist Fixed #1873 -- Handled multi-valued query parameters in admin changelist filters. 2023-03-16 08:38:44 +01:00
admin_checks Fixed #34601 -- Added field name to check message for ModelAdmin.readonly_fields. 2023-06-05 05:56:53 +02: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 Fixed typo in tests/admin_docs/models.py. 2023-07-03 10:47:41 +02:00
admin_filters Fixed #1873 -- Handled multi-valued query parameters in admin changelist filters. 2023-03-16 08:38:44 +01:00
admin_inlines Fixed #32819 -- Established relationship between form fields and their help text. 2023-07-06 08:03:19 +02:00
admin_ordering Used AdminSite.is_registered() where appropriate. 2023-07-06 11:29:16 +02:00
admin_registration
admin_scripts Fixed #32813 -- Made runserver display port after binding. 2023-02-10 08:22:34 +01:00
admin_utils Fixed #1873 -- Handled multi-valued query parameters in admin changelist filters. 2023-03-16 08:38:44 +01:00
admin_views Made some Selenium tests less flaky by adding explicit wait. 2023-07-05 09:45:50 +02:00
admin_widgets Fixed date_time_picker_shortcuts() tests on Windows. 2023-06-14 08:01:14 +02:00
aggregation Fixed #34551 -- Fixed QuerySet.aggregate() crash when referencing subqueries. 2023-05-23 06:25:58 +02:00
aggregation_regress Fixed #34176 -- Fixed grouping by ambiguous aliases. 2023-01-09 10:52:51 +01:00
annotations Fixed #34437 -- Made values() resolving error mention selected annotations. 2023-03-25 20:22:45 +01:00
app_loading
apps Fixed #34687 -- Made Apps.clear_cache() clear get_swappable_settings_name() cache. 2023-06-30 08:27:15 +02:00
asgi Fixed #33738 -- Allowed handling ASGI http.disconnect in long-lived requests. 2023-04-03 14:01:48 +02:00
async Fixed #34391 -- Added async-compatible interface to auth functions and related methods test clients. 2023-06-27 11:17:17 +02:00
auth_tests Fixed #34391 -- Added async-compatible interface to auth functions and related methods test clients. 2023-06-27 11:17:17 +02:00
backends Fixed #34671 -- Fixed collation introspection for views and materialized views on Oracle. 2023-06-27 13:50:42 +02:00
base
bash_completion
basic Fixed #470 -- Added support for database defaults on fields. 2023-05-12 19:11:40 +02:00
builtin_server Fixed #33865 -- Optimized LimitedStream wrapper. 2023-01-05 19:26:56 +01:00
bulk_create Fixed #34558 -- Fixed QuerySet.bulk_create() crash with Now() on Oracle. 2023-05-11 18:22:55 +02:00
cache Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
check_framework Refs #32987 -- Relaxed system check for template tag modules with the same name by turning into a warning. 2022-10-03 10:52:21 +02:00
conditional_processing Updated documentation and comments for RFC updates. 2022-11-10 13:52:17 +01:00
constraints Refs #34338 -- Fixed isolation of constraints tests. 2023-02-24 09:02:45 +01:00
contenttypes_tests Fixed #33985 -- Used app_config.verbose_name in ContentType.__str__(). 2023-03-09 10:27:08 +01:00
context_processors
csrf_tests Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
custom_columns Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
custom_lookups Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07: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 Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
custom_pk Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
datatypes
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 Fixed #34606 -- Fixed Right() function with zero length on Oracle and SQLite. 2023-05-31 11:57:40 +01:00
db_typecasts
db_utils Fixed #33308 -- Added support for psycopg version 3. 2022-12-15 06:17:57 +01:00
dbshell Fixed #34535 -- Fixed SQLite dbshell crash on pathlib.Path when handling CommandError. 2023-05-04 06:07:12 +02:00
decorators Refs #31949 -- Made http decorators to work with async functions. 2023-06-26 09:29:04 +02:00
defer Fixed #34458 -- Fixed QuerySet.defer() crash on attribute names. 2023-04-05 05:38:10 +02:00
defer_regress Fixed #34612 -- Fixed QuerySet.only() crash on reverse relationships. 2023-06-01 19:50:47 +01:00
delete Fixed random delete.tests.DeletionTests.test_deletion_order failures. 2022-12-30 12:22:30 +01:00
delete_regress Refs #32433 -- Reallowed calling QuerySet.delete() after distinct(). 2023-07-07 07:08:28 +02:00
deprecation Refs #32800 -- Removed CSRF_COOKIE_MASKED transitional setting per deprecation timeline. 2023-01-17 11:49:15 +01:00
dispatch
distinct_on_fields
empty
empty_models
expressions Refs #33543 -- Made Expression.asc()/desc() and OrderBy raise ValueError when nulls_first/nulls_last=False is passed. 2023-01-17 11:49:15 +01:00
expressions_case Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
expressions_window Fixed #34368 -- Made subquery raise NotSupportedError when referencing outer window expression. 2023-02-27 07:18:58 +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
field_defaults Fixed #470 -- Added support for database defaults on fields. 2023-05-12 19:11:40 +02:00
field_subclassing
file_storage Fixed some typos in comments, docstrings, and tests. 2023-03-20 08:07:23 +01:00
file_uploads Refs #26029 -- Deprecated DEFAULT_FILE_STORAGE and STATICFILES_STORAGE settings. 2023-01-12 09:58:36 +01:00
files Fixed #29027 -- Fixed file_move_safe() crash when moving files with SELinux. 2022-10-24 13:54:51 +02:00
filtered_relation Fixed #33766 -- Resolved FilteredRelation.condition at referencing time. 2023-04-24 08:32:44 +02:00
fixtures Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
fixtures_model_package Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
fixtures_regress Fixed some typos in comments, docstrings, and tests. 2023-03-20 08:07:23 +01:00
flatpages_tests
force_insert_update Fixed #30382 -- Allowed specifying parent classes in force_insert of Model.save(). 2023-06-29 21:52:52 +02:00
foreign_object Refs #16055 -- Deprecated get_joining_columns()/get_reverse_joining_columns() methods. 2023-04-18 12:46:27 +02:00
forms_tests Fixed #32819 -- Established relationship between form fields and their help text. 2023-07-06 08:03:19 +02:00
from_db_value
generic_inline_admin Fixed #34380 -- Allowed specifying a default URL scheme in forms.URLField. 2023-04-28 06:58:10 +02:00
generic_relations Fixed #34280 -- Allowed specifying different field values for create operation in QuerySet.update_or_create(). 2023-02-14 11:50:35 +01:00
generic_relations_regress Fixed #16055 -- Fixed crash when filtering against char/text GenericRelation relation on PostgreSQL. 2023-04-18 12:41:14 +02:00
generic_views Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +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 Fixed #34280 -- Allowed specifying different field values for create operation in QuerySet.update_or_create(). 2023-02-14 11:50:35 +01:00
gis_tests Fixed RelatedGeoModelTest.test_centroid_collect_filter(). 2023-06-30 10:18:04 +02:00
handlers Fixed #34394 -- Added FORCE_SCRIPT_NAME handling to ASGIRequest. 2023-04-12 12:50:48 +02:00
httpwrappers Refs #34233 -- Used aiter() and anext(). 2023-01-18 13:45:07 +01:00
humanize_tests Fixed #33879 -- Improved timesince handling of long intervals. 2023-01-04 11:14:06 +01:00
i18n Fixed #34515 -- Made LocaleMiddleware prefer language from paths when i18n patterns are used. 2023-05-02 06:04:18 +02:00
import_error_package
indexes Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
inline_formsets
inspectdb Fixed #34587 -- Allowed customizing table name normalization in inspectdb command. 2023-05-22 16:48:06 +02:00
introspection Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
invalid_models_tests Fixed #34634 -- Adjusted system check for clashing fields to warn about links to common parent for MTI models. 2023-06-20 08:10: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 Refs #34074 -- Used headers argument for RequestFactory and Client in docs and tests. 2023-01-04 09:11:36 +01:00
lookup Fixed lookup.tests.LookupTests.test_exclude() on PostgreSQL 16 beta 1. 2023-06-06 11:38:23 +02:00
m2m_and_m2o Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
m2m_intermediary Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02: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 Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
m2m_through_regress
m2o_recursive
mail Updated documentation and comments for RFC updates. 2022-11-10 13:52:17 +01:00
managers_regress
many_to_many Refs #26706, Refs #34633 -- Added test for prefetch_related() cache invalidation in ManyRelatedManager.create(). 2023-06-06 07:33:59 +02:00
many_to_one Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
many_to_one_null
max_lengths
messages_tests Refs #28948 -- Removed superfluous messages from cookie through bisect. 2023-03-27 09:22:00 +02:00
middleware Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +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 Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
migrations Fixed RecorderTests.test_has_table_cached() on databases that perform multiple queries when introspecting tables. 2023-06-28 12:11:25 +02:00
migrations2 Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
model_enums Refs #34118 -- Fixed CustomChoicesTests.test_uuid_unsupported on Python 3.11.4+. 2023-04-07 11:07:54 +02:00
model_fields Refs #34517 -- Restored skipping ImageFileField.update_dimension_fields without width/height fields. 2023-06-19 05:24:42 +02:00
model_forms Fixed #32819 -- Established relationship between form fields and their help text. 2023-07-06 08:03:19 +02:00
model_formsets Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +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 Refs #34634 -- Fixed creating diamond-shaped MTI objects with ancestors inherited from different paths. 2023-06-20 08:40:35 +02:00
model_inheritance_regress Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
model_meta Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01: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 #34345 -- Added system check for ManyToManyFields with intermediate tables in ModelAdmin.filter_horizontal/vertical. 2023-06-21 07:48:09 +02:00
multiple_database Fixed #33985 -- Used app_config.verbose_name in ContentType.__str__(). 2023-03-09 10:27:08 +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
null_queries
one_to_one
or_lookups Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
order_with_respect_to Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02: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 Fixed #34662 -- Corrected number in error messages for Array(Min/Max)LengthValidator. 2023-06-18 14:32:51 +02:00
prefetch_related Refs #29984 -- Made QuerySet.iterator() without chunk_size raise ValueError after prefetch_related(). 2023-01-17 11:49:15 +01:00
project_template
properties
proxy_model_inheritance
proxy_models Fixed #33816 -- Fixed QuerySet.only() after select_related() crash on proxy models. 2022-07-04 06:37:36 +02:00
queries Refs #32143 -- Removed superflous constraints on excluded query. 2023-06-14 09:44:49 +02:00
queryset_pickle
raw_query Fixed various tests on MySQL with MyISAM storage engine. 2022-04-18 07:05:52 +02:00
redirects_tests
requests_tests Added MultiPartParser tests for parsing base64-encoded fields. 2023-06-07 05:44:27 +02:00
requirements Refs #34233 -- Bumped minimum supported version of Selenium to 4.8.0. 2023-06-26 14:22:54 +02:00
reserved_names
resolve_url
responses Added tests for HttpResponseBase.charset/reason_phrase setters. 2023-06-10 20:43:05 +02:00
reverse_lookup
save_delete_hooks Refs #33990 -- Renamed TransactionTestCase.assertQuerysetEqual() to assertQuerySetEqual(). 2022-10-08 08:07:38 +02:00
schema Fixed #470 -- Added support for database defaults on fields. 2023-05-12 19:11:40 +02:00
select_for_update Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01: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 #34620 -- Fixed serialization crash on m2m fields without natural keys when base querysets use select_related(). 2023-06-04 20:49:07 +02:00
servers Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
sessions_tests Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
settings_tests Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
shell
shortcuts
signals Refs #32172 -- Used asgiref coroutine shim in async signals tests. 2023-03-08 09:53:25 +01:00
signed_cookies_tests
signing Fixed #33199 -- Deprecated passing positional arguments to Signer/TimestampSigner. 2022-12-09 12:44:48 +01:00
sitemaps_tests Refs #25916 -- Removed SitemapIndexItem.__str__() per deprecation timeline. 2023-01-17 11:49:15 +01:00
sites_framework Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
sites_tests
staticfiles_tests Fixed #34496 -- Fixed handling source maps with data URI in ManifestStaticFilesStorage. 2023-04-21 05:42:06 +02:00
str Refs #33476 -- Reformatted code with Black. 2022-02-07 20:37:05 +01:00
string_lookup
swappable_models Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
syndication_tests Fixed #22078 -- Fixed crash of Feed with decorated methods. 2022-05-26 10:39:51 +02:00
template_backends Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
template_loader
template_tests Fixed #34577 -- Added escapeseq template filter. 2023-05-22 09:58:03 +02:00
templates
test_client Refs #34482 -- Reverted "Fixed #32969 -- Fixed pickling HttpResponse and subclasses." 2023-04-12 18:52:43 +02:00
test_client_regress Fixed #34240 -- Preserved headers of requests made with django.test.Client in assertRedirects(). 2023-01-13 11:30:27 +01:00
test_exceptions
test_runner Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
test_runner_apps
test_utils Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
timezones Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
transaction_hooks Fixed #33616 -- Allowed registering callbacks that can fail in transaction.on_commit(). 2022-09-06 12:21:36 +02:00
transactions Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
unmanaged_models Refs #33476 -- Applied Black's 2023 stable style. 2023-02-01 11:04:38 +01:00
update Fixed #34421 -- Fixed QuerySet.update() on querysets in descending order by annotations. 2023-03-18 13:19:40 +01:00
update_only_fields
urlpatterns
urlpatterns_reverse Fixed #33955, Fixed #33971 -- Reverted "Fixed #32565 -- Moved internal URLResolver view-strings mapping to admindocs." 2022-09-01 21:09:16 +02:00
user_commands Fixed #34259 -- Passed called_from_command_line to command subparsers. 2023-02-03 06:56:57 +01:00
utils_tests Allowed custom formatting of lazy() objects. 2023-06-12 06:09:20 +02:00
validation Fixed #30581 -- Added support for Meta.constraints validation. 2022-05-10 11:22:23 +02:00
validators Fixed CVE-2023-36053 -- Prevented potential ReDoS in EmailValidator and URLValidator. 2023-07-03 08:16:55 +02:00
version
view_tests Refs #31949 -- Made @sensitive_variables/sensitive_post_parameters decorators to work with async functions. 2023-06-23 13:29:40 +02:00
wsgi
xor_lookups Fixed #34604 -- Corrected fallback SQL for n-ary logical XOR. 2023-06-08 20:41:18 +02:00
.coveragerc Restored multiprocessing concurrency on coverage.py settings 2023-04-27 17:02:55 -03:00
README.rst
runtests.py Advanced deprecation warnings for Django 5.0. 2023-01-17 11:49:15 +01:00
test_sqlite.py
urls.py

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