django/tests
utkarsh.arya@zomato.com 2f4def432d Move required attribute logic to FileInput for initial data
Ensure FileInput omits the required attribute when initial data exists, preventing unnecessary validation for already uploaded files.

Fixes unexpected required field behavior when editing existing file fields.
2025-11-15 22:57:35 +00:00
..
absolute_url_overrides
admin_autodiscover
admin_changelist Fixed #31031 -- Fixed data loss in admin changelist view when formset's prefix contains regex special chars. 2019-11-26 08:48:10 +01:00
admin_checks Fixed #31086 -- Improved error message for admin model inlines with more than one foreign key to the same parent. 2019-12-17 09:15:01 +01: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 Fixed #8500 -- Allowed overriding the default admin site instance. 2018-02-03 18:51:10 -05:00
admin_docs Fixed #30255 -- Fixed admindocs errors when rendering docstrings without leading newlines. 2019-11-29 12:47:42 +01:00
admin_filters Fixed #28991 -- Added EmptyFieldListFilter class in admin.filters. 2020-01-03 07:58:04 +01:00
admin_inlines Moved selenium import to nested scope. 2019-12-05 12:47:31 +01: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 Refs #23433 -- Fixed test_django_admin_py.DeprecationTest tests failures on Windows and Python < 3.8. 2019-12-10 11:17:50 +01:00
admin_utils Fixed #30400 -- Improved typography of user facing strings. 2019-06-28 16:46:18 +02:00
admin_views Fixed #30892 -- Fixed slugify() and admin's URLify.js for "İ". 2019-12-30 20:47:22 +01:00
admin_widgets Refs #29892 -- Made Selenium tests wait for popups to be ready. 2019-12-02 15:06:36 +01:00
aggregation Fixed #31136 -- Disabled grouping by aliases on QuerySet.values()/values_list(). 2020-01-04 20:49:11 +01:00
aggregation_regress Refs #14357 -- Made Meta.ordering not affect GROUP BY queries. 2019-09-10 12:01:00 +02:00
annotations Relaxed some query ordering assertions in tests. 2019-11-18 12:32:37 +01:00
app_loading
apps Fixed #27685 -- Added watchman support to the autoreloader. 2019-01-13 20:33:47 -05:00
asgi Harmonized Windows checks in tests to a single style. 2019-11-06 15:14:30 +01:00
async Fixed #31056 -- Allowed disabling async-unsafe check with an environment variable. 2019-12-03 17:29:31 +01:00
auth_tests Refs #31040 -- Fixed crypt.crypt() call in test_hashers.py. 2020-01-03 07:47:04 +01:00
backends Refs #31117 -- Isolated backends.sqlite.test_creation.TestDbSignatureTests. 2019-12-31 12:09:50 +01:00
base
bash_completion Removed parser.add_arguments() arguments that match the defaults. 2018-07-02 17:54:57 -04:00
basic Fixed #30651 -- Made __eq__() methods return NotImplemented for not implemented comparisons. 2019-10-01 17:58:19 +02:00
builtin_server Fixed typos in test names and a comment. 2019-08-23 10:46:43 +02:00
bulk_create Fixed #30987 -- Added models.PositiveBigIntegerField. 2019-11-19 09:34:11 +01:00
cache Improved tests assertions in cache tests. 2019-12-31 12:49:36 +01:00
check_framework Fixed #31141 -- Relaxed system check of translation settings for sublanguages. 2020-01-08 08:05:43 +01:00
conditional_processing Updated test URL patterns to use path() and re_path(). 2018-12-31 10:47:32 -05:00
constraints Fixed #30484 -- Added conditional expressions support to CheckConstraint. 2019-11-21 11:56:35 +01:00
contenttypes_tests Fixed #29706 -- Made RenameContentType._rename() save to the correct database. 2019-06-06 12:09:01 +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 Dropped obsolete mimetype kwarg in csrf test view 2019-09-21 20:46:39 +02:00
custom_columns Followed style guide for model attribute ordering. 2018-12-27 19:34:14 -05:00
custom_lookups Refs #25705 -- Fixed invalid SQL generated by SQLFuncMixin.as_sql() in custom_lookups tests. 2019-12-02 13:58:41 +01:00
custom_managers Fixed #28838 -- Fixed Model.save() crash if the base manager annotates with a related field. 2018-01-25 10:12:04 -05:00
custom_methods
custom_migration_operations
custom_pk
datatypes Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
dates Refs #26022 -- Used context manager version of assertRaisesMessage in tests. 2019-04-29 08:05:07 +02:00
datetimes Fixed #28650 -- Added TruncWeek database function. 2018-01-27 09:59:13 -05:00
db_functions Fixed #30987 -- Added models.PositiveBigIntegerField. 2019-11-19 09:34:11 +01:00
db_typecasts
db_utils Fixed #30071 -- Fixed error message when a 'default' database isn't provided. 2019-01-09 10:58:37 -05:00
dbshell Fixed #31076 -- Fixed dbshell crash on Windows with Python < 3.8. 2019-12-16 11:20:41 +01:00
decorators Fixed #30594 -- Added 'private' Cache-Control directive to never_cache() decorator. 2019-06-26 09:25:24 +02:00
defer Fixed #30988 -- Deprecated the InvalidQuery exception. 2019-11-18 14:06:51 +01:00
defer_regress
delete Fixed #27272 -- Added an on_delete RESTRICT handler to allow cascading deletions while protecting direct ones. 2019-11-19 10:55:05 +01:00
delete_regress Switched setUp() to setUpTestData() where possible in Django's tests. 2018-11-27 09:35:17 -05:00
deprecation Silenced warnings in deprecation tests. 2018-07-11 09:10:31 -04:00
dispatch Refs #28954 -- Removed remaining Jython-specific code from dispatch tests. 2019-12-19 16:42:12 +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 Fixed #30595 -- Added error message when no objects found to sql* management commands. 2019-07-01 13:47:54 +02:00
expressions Fixed #31133 -- Fixed crash when subtracting against a subquery annotation. 2020-01-03 10:35:08 +01:00
expressions_case Fixed #30987 -- Added models.PositiveBigIntegerField. 2019-11-19 09:34:11 +01:00
expressions_window Fixed #31060 -- Reallowed window expressions to be used in conditions outside of queryset filters. 2019-12-06 13:52:16 +01:00
extra_regress Fixed #30159 -- Removed unneeded use of OrderedDict. 2019-02-06 13:48:39 -05:00
field_deconstruction Fixed #30987 -- Added models.PositiveBigIntegerField. 2019-11-19 09:34:11 +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 Harmonized Windows checks in tests to a single style. 2019-11-06 15:14:30 +01:00
file_uploads Used more specific unittest assertions in tests. 2019-10-29 12:37:30 +01:00
files Refs #29983 -- Added test for FILE_UPLOAD_TEMP_DIR pathlib support. 2019-11-06 08:20:23 +01:00
filtered_relation Fixed #30854 -- Fixed QuerySet.select_related() with multiple FilteredRelations. 2019-10-11 08:10:48 +02:00
fixtures Harmonized Windows checks in tests to a single style. 2019-11-06 15:14:30 +01:00
fixtures_model_package Renamed camelCaseTestMethods to snake_case_test_methods 2019-04-14 16:14:14 +02:00
fixtures_regress Refs #29983 -- Added test for FIXTURES_DIRS pathlib support. 2019-11-06 08:06:55 +01:00
flatpages_tests Fixed #30400 -- Improved typography of user facing strings. 2019-06-28 16:46:18 +02:00
force_insert_update
foreign_object Adjusted code style of a few test data setup methods. 2018-11-27 09:48:22 -05:00
forms_tests Move required attribute logic to FileInput for initial data 2025-11-15 22:57:35 +00:00
from_db_value Refs #28370 -- Removed support for the context arg of Field.from_db_value() and Expression.convert_value(). 2019-01-17 10:52:19 -05:00
generic_inline_admin Fixed #27755 -- Added ModelAdmin.get_inlines() hook. 2019-04-17 07:16:04 +02:00
generic_relations Fixed #30493 -- Fixed prefetch_related() for GenericRelation with different content types. 2019-05-31 18:11:55 +02:00
generic_relations_regress Fixed #29653 -- Fixed missing related_query_name reverse accessor if GenericRelation is declared on an abstract base model. 2018-08-10 12:17:26 -04:00
generic_views Removed "Don't do that" from docs and error messages. 2020-01-06 13:50:43 +01: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 Fixed #29135 -- Prevented get_object/list_or_404() from hiding AttributeError raised by QuerySet filtering. 2018-02-19 10:51:15 -05:00
get_or_create Switched setUp() to setUpTestData() where possible in Django's tests. 2018-11-27 09:35:17 -05:00
gis_tests Fixed #31002 -- Fixed GIS lookups crash against a subquery annotation. 2019-11-25 12:30:33 +01:00
handlers Fixed #30070, CVE-2019-3498 -- Fixed content spoofing possiblity in the default 404 page. 2019-01-03 21:21:55 -05:00
httpwrappers Replaced encode() usage with bytes literals. 2019-11-18 15:31:42 +01:00
humanize_tests Refs #27804 -- Used subTest() in filesizeformat tests and HumanizeTests. 2019-06-10 08:46:11 +02:00
i18n Refs #30585 -- Updated project templates and tests to use (block)translate tags. 2019-12-18 13:15:38 +01:00
import_error_package
indexes Fixed #30961 -- Fixed spaces in columns list SQL generated for indexes. 2019-11-08 08:52:47 +01:00
inline_formsets
inspectdb Fixed #30987 -- Added models.PositiveBigIntegerField. 2019-11-19 09:34:11 +01:00
introspection Refs #30591 -- Fixed introspection of check and unique column constraints on MariaDB. 2019-08-26 09:15:37 +02:00
invalid_models_tests Fixed #30987 -- Added models.PositiveBigIntegerField. 2019-11-19 09:34:11 +01:00
known_related_objects
logging_tests Used more specific unittest assertions in tests. 2019-10-29 12:37:30 +01:00
lookup Fixed #30841 -- Deprecated using non-boolean values for isnull lookup. 2019-10-21 08:44:20 +02:00
m2m_and_m2o Followed style guide for model attribute ordering. 2018-12-27 19:34:14 -05:00
m2m_intermediary Corrected several typos in string literals and test names. 2019-08-07 11:23:14 +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 hardcoded pk in test_pk_set_on_repeated_add_remove. 2019-11-18 08:46:39 +01:00
m2m_through Fixed #31046 -- Allowed RelatedManager.add()/create()/set() to accept callable values in through_defaults. 2019-12-03 19:47:38 +01:00
m2m_through_regress Fixed #9475 -- Allowed RelatedManager.add(), create(), etc. for m2m with a through model. 2019-01-15 11:12:17 -05:00
m2o_recursive Adjusted code style of a few test data setup methods. 2018-11-27 09:48:22 -05:00
mail Adjusted expected exception message for Windows. 2019-11-06 14:34:44 +01:00
managers_regress Switched TestCase to SimpleTestCase where possible in Django's tests. 2018-11-27 08:58:44 -05:00
many_to_many Fixed #31095 -- Made RelatedManager.set() preserve existing m2m relations with an invalid type. 2019-12-19 13:33:05 +01:00
many_to_one Fixed #30661 -- Added models.SmallAutoField. 2019-08-02 11:39:01 +02:00
many_to_one_null Fixed #29447 -- Made RelatedManager.set() pass bulk argument to clear(). 2018-06-25 13:04:46 -04:00
max_lengths Fixed #30295 -- Fixed max_lengths.tests.MaxLengthORMTests when run in isolation. 2019-03-28 10:18:30 +01:00
messages_tests Added tests for middlewares' checks. 2019-10-23 08:18:02 +02:00
middleware Fixed #30812 -- Made ConditionalGetMiddleware set ETag only for responses with non-empty content. 2019-10-10 09:51:05 +02:00
middleware_exceptions Updated test URL patterns to use path() and re_path(). 2018-12-31 10:47:32 -05:00
migrate_signals
migration_test_data_persistence
migrations Fixed #27914 -- Fixed serialization of nested classes in migrations. 2019-11-25 11:12:44 +01:00
migrations2
model_enums Used more specific unittest assertions in tests. 2019-10-29 12:37:30 +01:00
model_fields Fixed random models_fields.test_uuid.TestQuerying failures. 2019-12-27 15:25:50 +01:00
model_forms Fixed #30998 -- Added ModelChoiceIteratorValue to pass the model instance to ChoiceWidget.create_option(). 2019-12-23 10:34:50 +01:00
model_formsets Followed style guide for model attribute ordering. 2018-12-27 19:34:14 -05:00
model_formsets_regress Used 4 space hanging indent for dictionaries. 2019-01-02 18:18:19 -05:00
model_indexes Fixed #30651 -- Made __eq__() methods return NotImplemented for not implemented comparisons. 2019-10-01 17:58:19 +02:00
model_inheritance Fixed #30116 -- Dropped support for Python 3.5. 2019-01-30 10:19:48 -05:00
model_inheritance_regress Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
model_meta Refs #29444 -- Allowed returning multiple fields from INSERT statements on PostgreSQL. 2019-09-09 10:51:14 +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 Refs #23919 -- Replaced super(...) with super() in metaclasses. 2019-11-28 15:34:29 +01:00
modeladmin Fixed #30543 -- Fixed checks of ModelAdmin.list_display for fields accessible only via instance. 2019-07-10 10:37:34 +02:00
multiple_database Fixed #16027 -- Added app_label to ContentType.__str__(). 2019-02-07 19:56:47 -05: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
null_fk_ordering Followed style guide for model attribute ordering. 2018-12-27 19:34:14 -05:00
null_queries
one_to_one Used more specific unittest assertions in tests. 2019-10-29 12:37:30 +01: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 Refs #14357 -- Made Meta.ordering not affect GROUP BY queries. 2019-09-10 12:01:00 +02:00
pagination Fixed #14218 -- Added Paginator.__iter__(). 2019-10-02 09:49:31 +02:00
postgres_tests Fixed #31097 -- Fixed crash of ArrayAgg and StringAgg with filter when used in Subquery. 2019-12-31 10:35:43 +01:00
prefetch_related Refs #31044 -- Fixed error message when using Prefetch with a values_list() queryset. 2019-12-09 15:45:53 +01:00
project_template Fixed #30426 -- Changed X_FRAME_OPTIONS setting default to DENY. 2019-09-09 08:15:26 +02: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 #25367 -- Made Query.build_filter() raise TypeError on non-conditional expressions. 2019-11-21 11:56:35 +01:00
queryset_pickle Refs #25361 -- Added test for pickling queryset of abstract-inherited models with Meta.ordering. 2019-12-12 09:01:47 +01: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 #31010 -- Allowed subdomains of localhost in the Host header by default when DEBUG=True. 2019-12-05 09:44:45 +01:00
requirements Pinned asgiref version. 2019-11-20 14:57:08 +01:00
reserved_names
resolve_url Updated test URL patterns to use path() and re_path(). 2018-12-31 10:47:32 -05:00
responses Fixed #30862 -- Allowed setting SameSite cookies flags to 'none'. 2019-12-12 10:52:31 +01:00
reverse_lookup Switched setUp() to setUpTestData() where possible in Django's tests. 2018-11-27 09:35:17 -05:00
save_delete_hooks
schema Fixed #31106 -- Fixed migrations crash on PostgreSQL 10+ when adding FK constraints inline and changing data. 2019-12-23 23:28:59 +01:00
select_for_update Fixed #30953 -- Made select_for_update() lock queryset's model when using "self" with multi-table inheritance. 2019-12-02 07:57:19 +01:00
select_related
select_related_onetoone Switched setUp() to setUpTestData() where possible in Django's tests. 2018-11-27 09:35:17 -05:00
select_related_regress
serializers Fixed #31071 -- Disabled insert optimization for primary keys with defaults when loading fixtures. 2019-12-30 07:49:10 +01:00
servers Replaced unnecessary str()/bytes() calls with literals. 2019-11-18 15:30:10 +01:00
sessions_tests Refs #29983 -- Added support for using pathlib.Path in all settings. 2019-11-07 10:26:22 +01:00
settings_tests Fixed #25598 -- Added SCRIPT_NAME prefix to STATIC_URL and MEDIA_URL set to relative paths. 2019-09-25 19:47:03 +02:00
shell Replaced django.test.utils.patch_logger() with assertLogs(). 2018-05-07 09:34:00 -04:00
shortcuts Refs #25978 -- Removed shortcuts.render_to_response() per deprecation timeline. 2019-01-17 10:50:25 -05:00
signals Switched TestCase to SimpleTestCase where possible in Django's tests. 2018-11-27 08:58:44 -05:00
signed_cookies_tests
signing
sitemaps_tests Fixed #30159 -- Removed unneeded use of OrderedDict. 2019-02-06 13:48:39 -05:00
sites_framework Switched setUp() to setUpTestData() where possible in Django's tests. 2018-11-27 09:35:17 -05:00
sites_tests Fixed #31121 -- Cleared Site cache in SitesFrameworkTests. 2019-12-27 08:57:34 +01:00
staticfiles_tests Fixed #31080 -- Removed redundant type="text/javascript" attribute from <script> tags. 2019-12-11 09:49:54 +01:00
str
string_lookup
swappable_models
syndication_tests Fixed #29352 -- Allowed specifying a Feed language. 2019-05-06 15:10:54 +02:00
template_backends Fixed #30425 -- Handled jinja2.TemplateSyntaxError when rendering a template. 2019-11-27 12:48:07 +01:00
template_loader
template_tests Fixed #31128 -- Fixed TemplateSyntaxError in simple_tag() and inclusion_tag() for kwargs. 2020-01-02 10:44:07 +01:00
templates Fixed #31080 -- Removed redundant type="text/javascript" attribute from <script> tags. 2019-12-11 09:49:54 +01:00
test_client Fixed #30677 -- Improved error message for urlencode() and Client when None is passed as data. 2019-08-11 20:15:23 +02:00
test_client_regress Fixed #28337 -- Preserved extra headers of requests made with django.test.Client in assertRedirects(). 2019-10-18 08:42:51 +02:00
test_exceptions
test_runner Fixed #27430 -- Added -b/--buffer option to DiscoverRunner. 2019-12-09 13:47:12 +01:00
test_runner_apps Fixed #27430 -- Added -b/--buffer option to DiscoverRunner. 2019-12-09 13:47:12 +01:00
test_utils Fixed #27391 -- Implemented SimpleTestCase.debug(). 2019-10-18 12:22:51 +02:00
timezones Fixed timezones tests for PyYAML 5.3+. 2020-01-07 09:54:22 +01:00
transaction_hooks
transactions Fixed #30116 -- Dropped support for Python 3.5. 2019-01-30 10:19:48 -05:00
unmanaged_models
update Fixed #28408 -- Added error message when updating with annotated expressions on joined fields. 2019-06-28 07:55:32 +02:00
update_only_fields Moved choices inside of test models per coding style. 2018-12-10 09:28:49 -05:00
urlpatterns Fixed #31061 -- Ignored positional args in django.urls.resolve() when all optional named parameters are missing. 2019-12-06 09:32:51 +01:00
urlpatterns_reverse Fixed #31114 -- Fixed HttpRequest.build_absolute_uri() crash with reverse_lazy() locations. 2019-12-27 09:19:56 +01:00
user_commands Fixed #30763 -- Fixed management commands when using required mutually exclusive groups. 2019-09-06 10:55:24 +02:00
utils_tests Fixed #30892 -- Fixed slugify() and admin's URLify.js for "İ". 2019-12-30 20:47:22 +01:00
validation Fixed #29979, Refs #17337 -- Extracted AutoField field logic into a mixin and refactored AutoFields. 2019-08-20 09:22:25 +02:00
validators Fixed #30651 -- Made __eq__() methods return NotImplemented for not implemented comparisons. 2019-10-01 17:58:19 +02:00
version
view_tests Fixed #31080 -- Removed redundant type="text/javascript" attribute from <script> tags. 2019-12-11 09:49:54 +01: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 Fixed #27430 -- Added -b/--buffer option to DiscoverRunner. 2019-12-09 13:47:12 +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/.