django/tests
Mariusz Felisiak b7d4a6fa65 [3.1.x] Fixed #32718 -- Relaxed file name validation in FileField.
- Validate filename returned by FileField.upload_to() not a filename
  passed to the FileField.generate_filename() (upload_to() may
  completely ignored passed filename).
- Allow relative paths (without dot segments) in the generated filename.

Thanks to Jakub Kleň for the report and review.
Thanks to all folks for checking this patch on existing projects.
Thanks Florian Apolloner and Markus Holtermann for the discussion and
implementation idea.

Regression in 0b79eb3691.

Backport of b55699968f from main.
2021-05-13 08:56:06 +02:00
..
absolute_url_overrides
admin_autodiscover
admin_changelist [3.1.x] Fixed #31597, #31603 -- Corrected admin clear all filters link behavior. 2020-05-20 21:35:09 +02:00
admin_checks [3.1.x] Fixed #31575 -- Added system check for admin sidebar request context processor dependency. 2020-05-14 11:01:22 +02:00
admin_custom_urls
admin_default_site
admin_docs [3.1.x] Updated docutils link to HTTPS and new location. 2020-05-18 08:46:51 +02:00
admin_filters [3.1.x] Fixed #32038 -- Fixed EmptyFieldListFilter crash with GenericRelation. 2020-09-25 10:10:26 +02:00
admin_inlines Fixed #31034 -- Added a navigation sidebar to the admin. 2020-05-11 18:16:38 +02:00
admin_ordering
admin_registration
admin_scripts [3.1.x] Fixed #31575 -- Added system check for admin sidebar request context processor dependency. 2020-05-14 11:01:22 +02:00
admin_utils [3.1.x] Fixed #32080 -- Fixed displaying Unicode chars in forms.JSONField and read-only JSONField values in admin. 2020-10-09 08:44:32 +02:00
admin_views [3.1.x] Fixed #32091 -- Fixed admin search bar width on filtered admin page. 2020-10-09 12:11:15 +02:00
admin_widgets [3.1.x] Fixed CVE-2020-13596 -- Fixed potential XSS in admin ForeignKeyRawIdWidget. 2020-06-03 09:30:41 +02:00
aggregation [3.1.x] Fixed #31568 -- Fixed alias reference when aggregating over multiple subqueries. 2020-05-14 10:26:05 +02:00
aggregation_regress Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
annotations [3.1.x] Fixed #32200 -- Fixed grouping by ExpressionWrapper() with Q objects. 2020-11-19 21:42:14 +01:00
app_loading
apps
asgi [3.1.x] Fixed #31550 -- Adjusted ASGI test_file_response for various Windows content types. 2021-02-04 21:58:38 +01:00
async
auth_tests [3.1.x] Fixed #32130 -- Fixed pre-Django 3.1 password reset tokens validation. 2020-10-22 13:22:00 +02:00
backends [3.1.x] Fixed backends.postgresql.tests.Tests.test_nodb_cursor_raises_postgres_authentication_failure(). 2021-02-05 06:08:08 +01:00
base
bash_completion
basic
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
cache [3.1.x] Fixed CVE-2020-24584 -- Fixed permission escalation in intermediate-level directories of the file system cache on Python 3.7+. 2020-09-01 09:35:05 +02:00
check_framework Fixed #31459 -- Fixed handling invalid indentifiers in URL path conversion. 2020-04-15 11:29:35 +02:00
conditional_processing
constraints Fixed #20581 -- Added support for deferrable unique constraints. 2020-04-30 10:43:50 +02:00
contenttypes_tests Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
context_processors
csrf_tests Refs #30116 -- Simplified regex match group access with Match.__getitem__(). 2020-05-11 12:01:28 +02:00
custom_columns
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
db_functions Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
db_typecasts
db_utils
dbshell Fixed #29501 -- Allowed dbshell to pass options to underlying tool. 2020-04-14 14:02:51 +01:00
decorators
defer
defer_regress Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
delete [3.1.x] Fixed #32107 -- Fixed ProtectedError.protected_objects and RestrictedError.restricted_objects. 2020-10-19 13:10:13 +02:00
delete_regress
deprecation [3.1.x] Fixed #31928 -- Fixed detecting an async get_response in various middlewares. 2020-08-28 12:35:53 +02:00
dispatch
distinct_on_fields
empty
empty_models Added assertions for an empty stdout to CoreCommandsNoOutputTests. 2020-04-20 11:32:03 +02:00
expressions [3.1.x] Fixed #31659 -- Made ExpressionWrapper preserve output_field for combined expressions. 2020-06-12 07:21:19 +02:00
expressions_case Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +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
field_defaults
field_subclassing
file_storage [3.1.x] Fixed #32718 -- Relaxed file name validation in FileField. 2021-05-13 08:56:06 +02:00
file_uploads [3.1.x] Fixed CVE-2021-31542 -- Tightened path & file name sanitation in file uploads. 2021-04-27 19:12:15 +02:00
files [3.1.x] Skipped GetImageDimensionsTests.test_webp when WEBP is not installed. 2020-10-06 11:26:30 +02:00
filtered_relation Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
fixtures Added tests for loaddata with gzip/bzip2 compressed fixtures. 2020-05-08 08:16:50 +02:00
fixtures_model_package
fixtures_regress Enforced uniqueness of natural keys used in tests. 2020-04-07 10:54:19 +02:00
flatpages_tests
force_insert_update
foreign_object
forms_tests [3.1.x] Fixed CVE-2021-31542 -- Tightened path & file name sanitation in file uploads. 2021-04-27 19:12:15 +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
generic_relations_regress Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
generic_views [3.1.x] Fixed #31877 -- Reverted "Fixed #19878 -- Deprecated TemplateView passing URL kwargs into context." 2020-08-24 11:39:05 +02:00
get_earliest_or_latest
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 [3.1.x] Fixed GeoIPTest.test04_city() failure with the latest GeoIP2 database. 2021-01-29 11:03:04 +01:00
handlers [3.1.x] Fixed CVE-2021-23336 -- Fixed web cache poisoning via django.utils.http.limited_parse_qsl(). 2021-02-18 10:15:30 +01:00
httpwrappers Capitalized Unicode in docs, strings, and comments. 2020-04-20 12:10:33 +02:00
humanize_tests
i18n [3.1.x] Fixed #31850 -- Fixed BasicExtractorTests.test_extraction_warning with xgettext 0.21+. 2020-11-02 10:29:14 +01:00
import_error_package
indexes
inline_formsets
inspectdb [3.1.x] Fixed #31736 -- Fixed InspectDBTransactionalTests.test_foreign_data_wrapper crash on Windows. 2020-06-23 21:00:09 +02:00
introspection Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
invalid_models_tests Fixed #12990, Refs #27694 -- Added JSONField model field. 2020-05-08 07:23:31 +02:00
known_related_objects
logging_tests Fixed tests isolation in logging_tests. 2020-05-08 10:49:34 +02:00
lookup Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
m2m_and_m2o
m2m_intermediary Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
m2m_multiple
m2m_recursive
m2m_regress
m2m_signals Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
m2m_through [3.1.x] Fixed #31752 -- Fixed intermittent test_order_by_relational_field_through_model failure. 2020-06-30 13:08:58 +02:00
m2m_through_regress Changed '%s' % value pattern to str(value). 2020-05-04 08:27:18 +02:00
m2o_recursive
mail [3.1.x] Fixed #31784 -- Fixed crash when sending emails on Python 3.6.11+, 3.7.8+, and 3.8.4+. 2020-07-20 07:15:04 +02:00
managers_regress Fixed #31223 -- Added __class_getitem__() to Manager and QuerySet. 2020-04-15 11:26:11 +02:00
many_to_many
many_to_one [3.1.x] Changed docs and a code comment to use gender-neutral pronouns. 2020-11-13 22:29:41 +01:00
many_to_one_null Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
max_lengths
messages_tests [3.1.x] Fixed #31842 -- Added DEFAULT_HASHING_ALGORITHM transitional setting. 2020-08-04 09:39:29 +02:00
middleware
middleware_exceptions [3.1.x] Fixed #32299 -- Prevented mutating handlers when processing middlewares marking as unused in an async context. 2020-12-29 09:06:03 +01:00
migrate_signals
migration_test_data_persistence
migrations [3.1.x] Reverted "Fixed #30300 -- Allowed migrations to be loaded from directories without __init__.py file." 2020-07-22 07:04:52 +02:00
migrations2
model_enums
model_fields [3.1.x] Fixed #32718 -- Relaxed file name validation in FileField. 2021-05-13 08:56:06 +02:00
model_forms [3.1.x] Bumped minimum isort version to 5.1.0. 2020-09-30 09:51:31 +02:00
model_formsets Changed '%s' % value pattern to str(value). 2020-05-04 08:27:18 +02:00
model_formsets_regress
model_indexes
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
model_options
model_package
model_regress [3.1.x] Fixed #31863 -- Prevented mutating model state by copies of model instances. 2020-08-13 15:27:18 +02:00
modeladmin Fixed #30311 -- Restored ability to override global admin actions. 2020-04-17 20:23:00 +02:00
multiple_database Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
mutually_referential
nested_foreign_keys
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 Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
or_lookups
order_with_respect_to
ordering [3.1.x] Fixed #31657 -- Fixed ordering by attnames of self-referential ForeignKeys. 2020-06-10 12:05:31 +02:00
pagination
postgres_tests [3.1.x] Refs #32096 -- Fixed ExclusionConstraint crash with JSONField key transforms in expressions. 2020-10-14 22:10:09 +02:00
prefetch_related Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
project_template
properties
proxy_model_inheritance
proxy_models
queries [3.1.x] Fixed #31990 -- Fixed QuerySet.ordered for GROUP BY queries on models with Meta.ordering. 2020-09-14 20:08:18 +02:00
queryset_pickle Optimized Model and QuerySet pickling version comparison. 2020-05-11 09:50:11 +02:00
raw_query
redirects_tests
requests [3.1.x] Fixed CVE-2021-23336 -- Fixed web cache poisoning via django.utils.http.limited_parse_qsl(). 2021-02-18 10:15:30 +01:00
requirements [3.1.x] Pinned asgiref to 3.2 series with minimum version to 3.2.10. 2020-07-17 11:08:39 +02:00
reserved_names
resolve_url Removed unnecessary tuple wrapping of single format string argument. 2020-04-27 08:30:16 +02:00
responses [3.1.x] Fixed #31790 -- Fixed setting SameSite and Secure cookies flags in HttpResponse.delete_cookie(). 2020-07-16 08:17:45 +02:00
reverse_lookup Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
save_delete_hooks
schema [3.1.x] Fixed #31805 -- Fixed SchemaTests.tearDown() when table names are case-insensitive. 2020-07-22 12:51:03 +02:00
select_for_update [3.1.x] Fixed #31866 -- Fixed locking proxy models in QuerySet.select_for_update(of=()). 2020-08-11 12:30:31 +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 Changed '%s' % value pattern to str(value). 2020-05-04 08:27:18 +02:00
servers
sessions_tests [3.1.x] Fixed #31895 -- Fixed crash when decoding invalid session data. 2020-08-19 12:06:55 +02:00
settings_tests [3.1.x] Fixed #32304 -- Fixed prefixing STATIC_URL and MEDIA_URL by SCRIPT_NAME for absolute URLs with no domain. 2020-12-31 13:19:34 +01:00
shell
shortcuts
signals Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
signed_cookies_tests
signing [3.1.x] Fixed #31842 -- Added DEFAULT_HASHING_ALGORITHM transitional setting. 2020-08-04 09:39:29 +02:00
sitemaps_tests
sites_framework Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
sites_tests
staticfiles_tests [3.1.x] Fixed CVE-2020-24583, #31921 -- Fixed permissions on intermediate-level static and storage directories on Python 3.7+. 2020-09-01 09:35:05 +02:00
str
string_lookup Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
swappable_models
syndication_tests Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +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 [3.1.x] Changed docs and a code comment to use gender-neutral pronouns. 2020-11-13 22:29:41 +01:00
templates
test_client [3.1.x] Fixed #32159 -- Ensured AsyncRequestFactory correctly sets headers. 2020-11-04 11:09:52 +01:00
test_client_regress Refs #30116 -- Simplified regex match group access with Match.__getitem__(). 2020-05-11 12:01:28 +02:00
test_exceptions
test_runner
test_runner_apps
test_utils Capitalized Unicode in docs, strings, and comments. 2020-04-20 12:10:33 +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
unmanaged_models Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
update Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
update_only_fields Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
urlpatterns Fixed #31534 -- Deprecated django.conf.urls.url(). 2020-05-05 07:34:34 +02:00
urlpatterns_reverse
user_commands Disabled management commands output with verbosity 0 in various tests. 2020-04-20 09:09:26 +02:00
utils_tests [3.1.x] Fixed CVE-2021-31542 -- Tightened path & file name sanitation in file uploads. 2021-04-27 19:12:15 +02:00
validation Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
validators [3.1.x] Fixed #32713, Fixed CVE-2021-32052 -- Prevented newlines and tabs from being accepted in URLValidator on Python 3.9.5+. 2021-05-06 08:50:52 +02:00
version
view_tests Refs #30116 -- Simplified regex match group access with Match.__getitem__(). 2020-05-11 12:01:28 +02:00
wsgi
.coveragerc
README.rst
runtests.py Refs #31369 -- Deprecated models.NullBooleanField in favor of BooleanField(null=True). 2020-04-24 10:10:45 +02: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/.