django1/tests
Simon Charette c8b6594305 Fixed #32632, Fixed #32657 -- Removed flawed support for Subquery deconstruction.
Subquery deconstruction support required implementing complex and
expensive equality rules for sql.Query objects for little benefit as
the latter cannot themselves be made deconstructible to their reference
to model classes.

Making Expression @deconstructible and not BaseExpression allows
interested parties to conform to the "expression" API even if they are
not deconstructible as it's only a requirement for expressions allowed
in Model fields and meta options (e.g. constraints, indexes).

Thanks Phillip Cutter for the report.

This also fixes a performance regression in bbf141bcdc.
2021-04-28 12:13:55 +02:00
..
absolute_url_overrides
admin_autodiscover Used assertRaisesMessage() in various tests. 2020-02-07 12:46:23 +01:00
admin_changelist Fixed #32682 -- Made admin changelist use Exists() instead of distinct() for preventing duplicates. 2021-04-27 10:34:47 +02:00
admin_checks Corrected messages of admin checks for invalid model field names. 2021-03-04 08:41:28 +01:00
admin_custom_urls
admin_default_site
admin_docs Refs #32508 -- Raised ImproperlyConfigured instead of using "assert" in middlewares. 2021-03-11 08:34:28 +01:00
admin_filters Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. 2021-01-14 17:50:04 +01:00
admin_inlines Refs #30231 -- Fixed SeleniumTests.test_inlines_verbose_name with headless mode. 2021-02-19 07:15:54 +01:00
admin_ordering Fixed #32003 -- Added obj argument to has_perm() methods in tests. 2020-09-14 12:28:17 +02:00
admin_registration Refs #32273 -- Completed test coverage for AdminSite.unregister(). 2020-12-17 08:27:56 +01:00
admin_scripts Fixed #32296 -- Added --skip-checks option to runserver command. 2021-01-18 12:51:35 +01:00
admin_utils Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. 2021-01-14 17:50:04 +01:00
admin_views Refs #32682 -- Renamed use_distinct variable to may_have_duplicates. 2021-04-27 10:34:47 +02:00
admin_widgets Fixed #32466 -- Corrected autocomplete to_field resolution for complex cases. 2021-03-18 11:21:23 +01:00
aggregation Fixed #32478 -- Included nested columns referenced by subqueries in GROUP BY on aggregations. 2021-02-24 09:01:36 +01:00
aggregation_regress Fixed #32168 -- Removed serial pk assumption in aggregation_regress tests. 2020-11-04 22:31:57 +01:00
annotations Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. 2021-01-14 17:50:04 +01:00
app_loading
apps Fixed #32285 -- Raised ImproperlyConfigured when AppConfig.label is not a valid Python identifier. 2020-12-22 13:26:30 +01:00
asgi Refs #32394 -- Changed STATIC_URL/MEDIA_URL to relative paths in tests and docs where appropriate. 2021-02-06 13:41:35 +01:00
async Refs #31224 -- Added autoconversion of test async methods. 2020-03-05 14:29:21 +01:00
auth_tests Fixed #32664 -- Made PasswordResetTokenGenerator.secret validation lazy. 2021-04-20 07:34:53 +02:00
backends Fixed #32687 -- Restored passing process’ environment to underlying tool in dbshell on PostgreSQL. 2021-04-27 10:43:35 +02:00
base
bash_completion Reverted "Refs #23919 -- Removed obsolete __init__.py files in management command directories." 2020-06-01 10:55:41 +02:00
basic Fixed #24141 -- Added QuerySet.contains(). 2021-03-06 20:40:29 +01:00
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 Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. 2021-01-14 17:50:04 +01:00
cache Fixed #29867 -- Added support for storing None value in caches. 2020-12-17 09:57:21 +01:00
check_framework Fixed #32665 -- Fixed caches system check crash when STATICFILES_DIRS is a list of 2-tuples. 2021-04-21 09:41:37 +02:00
conditional_processing Fixed #31789 -- Added a new headers interface to HttpResponse. 2020-09-14 08:41:59 +02:00
constraints Fixed #30916 -- Added support for functional unique constraints. 2021-02-23 20:19:53 +01:00
contenttypes_tests Fixed #31789 -- Added a new headers interface to HttpResponse. 2020-09-14 08:41:59 +02:00
context_processors
csrf_tests Fixed #32578 -- Fixed crash in CsrfViewMiddleware when a request with Origin header has an invalid host. 2021-03-25 10:34:58 +01:00
custom_columns Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
custom_lookups Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01: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 Fixed #32442 -- Used converters on returning fields from INSERT statements. 2021-04-07 17:10:00 +02:00
datatypes Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. 2021-01-14 17:50:04 +01:00
dates Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
datetimes Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
db_functions Fixed #31487 -- Added precision argument to Round(). 2021-03-29 09:43:08 +02:00
db_typecasts
db_utils Fixed #32233 -- Cleaned-up duplicate connection functionality. 2020-12-08 08:55:44 +01:00
dbshell Fixed #32687 -- Restored passing process’ environment to underlying tool in dbshell on PostgreSQL. 2021-04-27 10:43:35 +02:00
decorators Refs #32468 -- Added error message on invalid usage of cache decorators. 2021-02-24 10:13:51 +01:00
defer Fixed #30988 -- Deprecated the InvalidQuery exception. 2019-11-18 14:06:51 +01:00
defer_regress Removed hardcoded pk in defer_regress test. 2020-11-04 06:41:47 +01:00
delete Refs #32508 -- Raised TypeError instead of using "assert" on unsupported operations for sliced querysets. 2021-03-10 09:16:28 +01:00
delete_regress Refs #32682 -- Fixed QuerySet.delete() crash on querysets with self-referential subqueries on MySQL. 2021-04-27 10:34:47 +02:00
deprecation Refs #24121 -- Added __repr__() to MiddlewareMixin and subclasses. 2021-03-10 21:16:58 +01:00
dispatch Fixed #32261 -- Added error logging to Signal.send_robust(). 2020-12-15 11:00:26 +01:00
distinct_on_fields Refs #32508 -- Raised TypeError instead of using "assert" on unsupported operations for sliced querysets. 2021-03-10 09:16:28 +01:00
empty
empty_models Added assertions for an empty stdout to CoreCommandsNoOutputTests. 2020-04-20 11:32:03 +02:00
expressions Refs #25287 -- Added support for multiplying and dividing DurationField by scalar values on SQLite. 2021-04-20 11:44:41 +02:00
expressions_case Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. 2021-01-14 17:50:04 +01:00
expressions_window Fixed #32178 -- Allowed database backends to skip tests and mark expected failures. 2020-12-10 18:00:57 +01:00
extra_regress Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
field_deconstruction Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. 2021-01-14 17:50:04 +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 Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.core. 2021-03-19 08:04:37 +01:00
file_uploads Fixed CVE-2021-28658 -- Fixed potential directory-traversal via uploaded files. 2021-04-06 08:15:17 +02:00
files Skipped GetImageDimensionsTests.test_webp when WEBP is not installed. 2020-10-06 11:25:04 +02:00
filtered_relation Fixed #29789 -- Added support for nested relations to FilteredRelation. 2020-07-09 20:24:00 +02:00
fixtures Fixed #32291 -- Added fixtures compression support to dumpdata. 2021-01-12 15:47:58 +01:00
fixtures_model_package Fixed fixtures loading isolation in tests. 2020-05-15 09:14:05 +02:00
fixtures_regress Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
flatpages_tests Fixed #22261 -- Fixed resolving namespaced URLs for flatpages. 2020-01-28 13:14:23 +01:00
force_insert_update
foreign_object Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
forms_tests Fixed #32347 -- Made ModelChoiceField include the value in ValidationError for invalid_choice. 2021-01-26 09:31:53 +01:00
from_db_value Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
generic_inline_admin Fixed #32003 -- Added obj argument to has_perm() methods in tests. 2020-09-14 12:28:17 +02:00
generic_relations Refs #32045 -- Added tests for GenericRelatedObjectManager.clear()/remove(). 2020-11-06 11:31:21 +01:00
generic_relations_regress Fixed GenericRelationTests.test_annotate when primary key values are large. 2020-11-04 06:41:48 +01:00
generic_views Fixed #32260 -- Made View.as_view() do not use update_wrapper(). 2021-03-30 07:58:09 +02:00
get_earliest_or_latest Refs #32508 -- Raised TypeError instead of using "assert" on unsupported operations for sliced querysets. 2021-03-10 09:16:28 +01:00
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 Fixed #32575 -- Added support for SpatiaLite 5. 2021-04-08 09:36:29 +02:00
handlers Refs CVE-2021-23336 -- Updated tests and release notes for affected versions. 2021-02-19 09:03:06 +01:00
httpwrappers Fixed #32389 -- Fixed ResponseHeaders crash when data is not mapping. 2021-01-28 10:10:08 +01:00
humanize_tests Fixed #31363 -- Added support for negative integers to intword template filter. 2020-03-16 08:44:43 +01:00
i18n Fixed isolation of i18n.tests.FormattingTests.test_get_custom_format(). 2021-04-22 19:57:27 +02:00
import_error_package
indexes Refs #26167 -- Added @skipUnlessDBFeature('supports_expression_indexes') to a test. 2021-03-08 20:12:26 +01:00
inline_formsets
inspectdb Fixed #32357 -- Dropped support for PostgreSQL 9.6 and PostGIS 2.3. 2021-01-19 12:25:20 +01:00
introspection Fixed #32453 -- Added introspection of unique constraint field ordering on SQLite. 2021-02-17 10:59:17 +01:00
invalid_models_tests Fixed #32635 -- Fixed system check crash for reverse o2o relations in CheckConstraint.check and UniqueConstraint.condition. 2021-04-14 10:06:18 +02:00
known_related_objects
logging_tests Fixed tests isolation in logging_tests. 2020-05-08 10:49:34 +02:00
lookup Fixed #32673 -- Fixed lookups crash when comparing against lookups on PostgreSQL. 2021-04-23 15:38:32 +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 Fixed #30421 -- Allowed symmetrical intermediate table for self-referential ManyToManyField. 2019-06-21 15:03:17 +02:00
m2m_regress Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
m2m_signals Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
m2m_through Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
m2m_through_regress Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
m2o_recursive Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
mail Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.core. 2021-03-19 08:04:37 +01:00
managers_regress Fixed #32355 -- Dropped support for Python 3.6 and 3.7 2021-02-10 10:20:54 +01:00
many_to_many Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
many_to_one Fixed #32332 -- Fixed loss of parent with non-numeric pk when saving child after parent. 2021-02-04 06:06:00 +01:00
many_to_one_null Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
max_lengths Fixed #30295 -- Fixed max_lengths.tests.MaxLengthORMTests when run in isolation. 2019-03-28 10:18:30 +01:00
messages_tests Fixed #32643 -- Fixed decoding of messages in the pre-Django 3.2 format. 2021-04-14 22:52:59 +02:00
middleware Fixed #31840 -- Added support for Cross-Origin Opener Policy header. 2021-03-30 19:59:24 +02:00
middleware_exceptions Fixed #32614 -- Fixed MiddlewareSyncAsyncTests tests with asgiref 3.3.2+. 2021-04-06 08:03:43 +02:00
migrate_signals Fixed #32395 -- Allowed capturing stdout of migration signals. 2021-02-04 11:19:49 +01:00
migration_test_data_persistence
migrations Fixed #32686 -- Removed unnecessary semicolon on collected multiline SQL for RunSQL. 2021-04-27 08:01:07 +02:00
migrations2
model_enums Refs #32074 -- Backported Enum.__repr__() from Python 3.10. 2021-04-07 10:28:40 +02:00
model_fields Fixed #32620 -- Allowed subclasses of Big/SmallAutoField for DEFAULT_AUTO_FIELD. 2021-04-08 13:17:08 +02:00
model_forms Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
model_formsets Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
model_formsets_regress Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
model_indexes Fixed #32458 -- Made __repr__() for Index and BaseConstraint subclasses more consistent. 2021-02-19 20:25:11 +01:00
model_inheritance Fixed #32355 -- Dropped support for Python 3.6 and 3.7 2021-02-10 10:20:54 +01:00
model_inheritance_regress Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
model_meta Fixed #32294 -- Prevented ManyToManyField's hidden related name collisions between apps. 2020-12-30 13:11:47 +01:00
model_options Fixed #32620 -- Allowed subclasses of Big/SmallAutoField for DEFAULT_AUTO_FIELD. 2021-04-08 13:17:08 +02:00
model_package
model_regress Fixed #31863 -- Prevented mutating model state by copies of model instances. 2020-08-12 12:43:42 +02:00
modeladmin Fixed #32494 -- Adjusted system check for raw_id_fields to warn about Field.attname. 2021-03-04 08:41:28 +01: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 Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
or_lookups
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 Fixed #32546 -- Avoided Meta.ordering columns in GROUP BY clauses. 2021-03-16 07:58:38 +01:00
pagination Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
postgres_tests Fixed #30916 -- Added support for functional unique constraints. 2021-02-23 20:19:53 +01:00
prefetch_related Fixed #32089 -- Fixed prefetch_related_objects() when some objects are already fetched. 2020-12-16 10:52:59 +01:00
project_template Fixed #31840 -- Added support for Cross-Origin Opener Policy header. 2021-03-30 19:59:24 +02:00
properties
proxy_model_inheritance
proxy_models
queries Fixed #32632, Fixed #32657 -- Removed flawed support for Subquery deconstruction. 2021-04-28 12:13:55 +02:00
queryset_pickle Refs #32548 -- Added tests for passing conditional expressions to Q(). 2021-03-17 21:53:36 +01:00
raw_query Fixed #32231 -- Allowed passing None params to QuerySet.raw(). 2021-01-05 10:37:11 +01:00
redirects_tests Refs #26601 -- Made get_response argument required and don't accept None in middleware classes. 2021-01-14 17:50:04 +01:00
requests Fixed DataUploadMaxNumberOfFieldsFormPost.test_number_exceeded(). 2021-02-23 09:47:30 +01:00
requirements Updated asgiref dependency for 3.2 release series. 2021-04-06 10:38:43 +02:00
reserved_names
resolve_url Removed unnecessary tuple wrapping of single format string argument. 2020-04-27 08:30:16 +02:00
responses Fixed #31789 -- Added a new headers interface to HttpResponse. 2020-09-14 08:41:59 +02:00
reverse_lookup Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
save_delete_hooks
schema Fixed isolation of test_rename_table_renames_deferred_sql_references(). 2021-04-26 06:11:13 +02:00
select_for_update Fixed #31866 -- Fixed locking proxy models in QuerySet.select_for_update(of=()). 2020-08-11 11:55:10 +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 Fixed #31235 -- Made assertQuerysetEqual() compare querysets directly. 2020-11-06 09:24:50 +01:00
serializers Fixed #32420 -- Fixed detecting primary key values in deserialization when PK is also a FK. 2021-02-05 12:33:43 +01:00
servers Fixed #32416 -- Made ThreadedWSGIServer close connections after each thread. 2021-04-12 10:23:56 +02:00
sessions_tests Refs #31274 -- Removed support for the pre-Django 3.1 encoding format of sessions. 2021-01-14 17:50:04 +01:00
settings_tests Fixed #29606 -- Added type check for ALLOWED_HOSTS setting. 2021-03-24 09:18:44 +01:00
shell Fixed #32183 -- Fixed shell crash when passing code with nested scopes. 2020-11-11 09:18:26 +01:00
shortcuts Fixed #31789 -- Added a new headers interface to HttpResponse. 2020-09-14 08:41:59 +02:00
signals Fixed #32594 -- Doc'd and tested that Signal.disconnect() with lazy references returns None. 2021-04-03 14:57:43 +02:00
signed_cookies_tests
signing Refs #31842 -- Removed DEFAULT_HASHING_ALGORITHM transitional setting. 2021-01-14 17:50:04 +01:00
sitemaps_tests Fixed #32648 -- Fixed VariableDoesNotExist rendering sitemaps template. 2021-04-14 16:50:47 +02:00
sites_framework Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
sites_tests Fixed #31802 -- Added system check for non-integer SITE_ID. 2020-07-24 10:41:55 +02:00
staticfiles_tests Fixed #32383 -- Added source map support to ManifestStaticFilesStorage. 2021-04-02 12:21:21 +02:00
str
string_lookup Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
swappable_models Disabled management commands output with verbosity 0 in various tests. 2020-05-13 09:12:43 +02:00
syndication_tests Removed hardcoded pks in syndication tests. 2020-10-21 06:43:19 +02:00
template_backends Fixed #27827 -- Used "raise from" when raising InvalidTemplateLibrary exceptions in get_package_libraries(). 2020-12-28 07:31:37 +01:00
template_loader
template_tests Refs #24121 -- Added __repr__() to Origin and Template. 2021-03-17 07:49:55 +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 #32470 -- Fixed ResolverMatch instance on test clients when request.urlconf is set. 2021-02-23 09:54:49 +01:00
test_client_regress Fixed #31789 -- Added a new headers interface to HttpResponse. 2020-09-14 08:41:59 +02:00
test_exceptions Fixed #28507 -- Made ValidationError.__eq__() ignore messages and params ordering. 2020-07-29 12:04:13 +02:00
test_runner Fixed #32641 -- Made DiscoverRunner print the number of found tests. 2021-04-15 11:42:46 +02:00
test_runner_apps Fixed #29127 -- Prevented DiscoverRunner from hiding tagged test with syntax errors. 2021-03-30 10:26:20 +02:00
test_utils Fixed #32556 -- Fixed handling empty string as non-boolean attributes value by assertHTMLEqual(). 2021-03-19 20:41:57 +01:00
timezones Refs #32365 -- Allowed use of non-pytz timezone implementations. 2021-01-19 11:59:37 +01:00
transaction_hooks Fixed #32108 -- Made transaction.on_commit() raise TypeError when callback is not a callable. 2020-10-19 20:46:13 +02:00
transactions Fixed #32220 -- Added durable argument to transaction.atomic(). 2020-11-27 21:43:15 +01:00
unmanaged_models Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
update Fixed #32645 -- Fixed QuerySet.update() crash when ordered by joined fields on MySQL/MariaDB. 2021-04-14 21:11:17 +02:00
update_only_fields Fixed #31382 -- Made Model.save(update_fields=...) raise ValueError on non-concrete fields. 2020-08-12 21:13:55 +02:00
urlpatterns Refs #31534 -- Removed django.conf.urls.url() per deprecation timeline. 2021-01-14 17:50:04 +01:00
urlpatterns_reverse Fixed #32572 -- Improved ResolverMatch.__repr__(). 2021-03-29 11:28:56 +02:00
user_commands Fixed #32355 -- Dropped support for Python 3.6 and 3.7 2021-02-10 10:20:54 +01:00
utils_tests Fixed #31937 -- Eased translation of time strings in some languages. 2021-04-10 20:23:12 +02:00
validation Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. 2021-01-14 17:50:04 +01:00
validators Fixed #32298 -- Fixed URLValidator hostname length validation. 2021-01-04 09:25:40 +01:00
version Fixed #32316 -- Deferred accessing __file__. 2021-04-01 14:33:30 +02:00
view_tests Refs 32637 -- Made technical 404 debug page display exception message when URL is resolved. 2021-04-27 08:40:52 +02: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 Refs #32609 -- Simplified test_labels_set construction in runtests.py's setup(). 2021-04-19 11:01:48 +02:00
test_sqlite.py Fixed #31007 -- Allowed specifying type of auto-created primary keys. 2020-12-15 11:25:46 +01:00
urls.py

README.rst

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