django1/tests
Jan Schär 06e59d97a3 Fixed #33096 -- Fixed <form> nesting in technical 500 template.
This also prevents sending <form> tags in emails.
2021-09-10 06:44:39 +02:00
..
absolute_url_overrides
admin_autodiscover Used assertRaisesMessage() in various tests. 2020-02-07 12:46:23 +01:00
admin_changelist Refs #24121 -- Added __repr__() to ChangeList and BaseStorage. 2021-06-07 06:31:50 +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 Fixed #32771 -- Used IS_POPUP_VAR constant instead of hard-coded value. 2021-05-20 07:04:26 +02:00
admin_default_site Refs #24121 -- Added __repr__() to AdminSite, DefaultAdminSite, and ModelAdmin. 2021-07-05 08:15:58 +02:00
admin_docs Fixed CVE-2021-33203 -- Fixed potential path-traversal via admindocs' TemplateDetailView. 2021-06-02 10:58:39 +02:00
admin_filters Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. 2021-01-14 17:50:04 +01:00
admin_inlines Fixed #32219 -- Made InlineModelAdmin.verbose_name_plural fallback to its verbose_name. 2021-09-08 13:20:13 +02: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 #32309 -- Added --exclude option to startapp/startproject management commands. 2021-09-01 12:08:02 +02:00
admin_utils Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. 2021-01-14 17:50:04 +01:00
admin_views Fixed #33051 -- Fixed highlighting the current model in admin's sidebar with non-ASCII model names. 2021-08-27 07:31:05 +02:00
admin_widgets Fixed capitalization of "ECMAScript" and "JavaScript". 2021-04-29 20:29:08 +02:00
aggregation Fixed #33073 -- Fixed queryset crash with aggregation and empty/extra queryset annotation. 2021-09-01 20:59:16 +02:00
aggregation_regress Fixed #32690 -- Fixed __in lookup crash when combining with filtered aggregates. 2021-05-05 11:41:35 +02:00
annotations Used more specific unittest assertions in tests. 2021-07-07 10:51:38 +02: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 Fixed #32889 -- Allowed per-request sync_to_async context in ASGIHandler . 2021-07-01 12:13:19 +02:00
async Refs #31224 -- Added autoconversion of test async methods. 2020-03-05 14:29:21 +01:00
auth_tests Refs #32508 -- Raised TypeError/ValueError instead of using "assert" in encode() methods of remaining password hashers. 2021-09-06 07:47:53 +02:00
backends Fixed #33017 -- Fixed storage engine introspection on MySQL. 2021-08-20 11:05:21 +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 #32508 -- Raised Type/ValueError instead of using "assert" in django.db.models. 2021-07-15 11:43:33 +02:00
cache Fixed #32076 -- Added async methods to BaseCache. 2021-09-07 20:14:25 +02:00
check_framework Fixed #32863 -- Skipped system check for specifying type of auto-created primary keys on models with invalid app_label. 2021-06-22 20:47:15 +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 Refs #32800 -- Added test_masked_secret_accepted_and_not_replaced(). 2021-08-17 12:23:54 +02:00
custom_columns Fixed 32956 -- Lowercased spelling of "web" and "web framework" where appropriate. 2021-07-29 06:24:12 +02: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 Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.db.models. 2021-07-15 11:43:33 +02:00
datetimes Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.db.models. 2021-07-15 11:43:33 +02:00
db_functions Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.db.models. 2021-07-15 11:43:33 +02:00
db_typecasts
db_utils Fixed #32233 -- Cleaned-up duplicate connection functionality. 2020-12-08 08:55:44 +01:00
dbshell Fixed #32732 -- Removed usage of deprecated 'db' and 'passwd' connection options in MySQL backend. 2021-05-12 12:21:57 +02:00
decorators Refs #32468 -- Added error message on invalid usage of cache decorators. 2021-02-24 10:13:51 +01:00
defer Fixed #32704 -- Fixed list of deferred fields when chaining QuerySet.defer() after only(). 2021-07-20 12:15:29 +02:00
defer_regress Removed hardcoded pk in defer_regress test. 2020-11-04 06:41:47 +01:00
delete Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.db.models. 2021-07-15 11:43:33 +02: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 Refs #32508 -- Raised ImproperlyConfigured/TypeError instead of using "assert" in various code. 2021-06-25 06:55:47 +02:00
distinct_on_fields Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.db.models. 2021-07-15 11:43:33 +02:00
empty
empty_models Added assertions for an empty stdout to CoreCommandsNoOutputTests. 2020-04-20 11:32:03 +02:00
expressions Fixed #32793 -- Fixed loss of precision for temporal operations with DecimalFields on MySQL. 2021-06-01 15:11:42 +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 #32983 -- Removed unneeded related_name from test model definitions. 2021-08-06 11:57:02 +02: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 Fixed 32956 -- Lowercased spelling of "web" and "web framework" where appropriate. 2021-07-29 06:24:12 +02:00
file_uploads Fixed isolation of test_filename_traversal_upload(). 2021-07-05 12:05:13 +02:00
files Fixed #33079 -- Fixed get_image_dimensions() on nonexistent images. 2021-09-02 07:08:50 +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 #32951 -- Removed Query.where_class & co. 2021-07-22 08:49:20 +02:00
forms_tests Refs #32338 -- Made RadioSelect/CheckboxSelectMultiple render in <div> tags. 2021-08-27 06:14:01 +02: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 isolation of GenericRelationTests.test_filter_targets_related_pk(). 2021-07-08 13:13:40 +02:00
generic_views Fixed #21936 -- Allowed DeleteView to work with custom Forms and SuccessMessageMixin. 2021-07-14 09:47:03 +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 #33030 -- Fixed broken links to GDAL docs. 2021-08-23 06:22:07 +02:00
handlers Refs CVE-2021-23336 -- Updated tests and release notes for affected versions. 2021-02-19 09:03:06 +01:00
httpwrappers Refs #24121 -- Added __repr__() to StreamingHttpResponse and subclasses. 2021-06-22 21:28:48 +02:00
humanize_tests Fixed #31363 -- Added support for negative integers to intword template filter. 2020-03-16 08:44:43 +01:00
i18n Fixed #30086, Refs #32873 -- Made floatformat template filter independent of USE_L10N. 2021-09-08 08:37: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 #33084 -- Removed incorrect system check for ManyToManyField with limit_choices_to. 2021-09-09 12:07:59 +02:00
known_related_objects
logging_tests Fixed #33096 -- Fixed <form> nesting in technical 500 template. 2021-09-10 06:44:39 +02:00
lookup Fixed #27021 -- Allowed lookup expressions in annotations, aggregations, and QuerySet.filter(). 2021-07-09 11:43:06 +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 #32947 -- Fixed hash() crash on reverse M2M relation when through_fields is a list. 2021-07-26 06:09:29 +02: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 #32355 -- Used addClassCleanup() in tests. 2021-06-04 12:53:11 +02: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 32956 -- Lowercased spelling of "web" and "web framework" where appropriate. 2021-07-29 06:24:12 +02: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
messages_tests Fixed #21936 -- Allowed DeleteView to work with custom Forms and SuccessMessageMixin. 2021-07-14 09:47:03 +02:00
middleware Fixed 32956 -- Lowercased spelling of "web" and "web framework" where appropriate. 2021-07-29 06:24:12 +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 #33057 -- Fixed recreation of foreign key constraints in m2m tables when altering type of referenced primary key on Oracle. 2021-08-31 13:43:10 +02:00
migrations2
model_enums Refs #32074 -- Backported Enum.__repr__() from Python 3.10. 2021-04-07 10:28:40 +02:00
model_fields Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.db.models. 2021-07-15 11:43:33 +02:00
model_forms Fixed #33084 -- Removed incorrect system check for ManyToManyField with limit_choices_to. 2021-09-09 12:07:59 +02: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 Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.db.models. 2021-07-15 11:43:33 +02:00
model_inheritance Fixed 32956 -- Lowercased spelling of "web" and "web framework" where appropriate. 2021-07-29 06:24:12 +02:00
model_inheritance_regress Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
model_meta Refs #32983 -- Removed unneeded related_name from test model definitions. 2021-08-06 11:57:02 +02: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
model_utils Fixed #32812 -- Restored immutability of named values from QuerySet.values_list(). 2021-06-04 07:23:16 +02:00
modeladmin Fixed #32975 -- Fixed admin system check for inlines with foreign keys to proxy models. 2021-09-03 06:48:32 +02:00
multiple_database Fixed isolation of RouterTestCase.test_m2m_cross_database_protection(). 2021-07-05 15:22:08 +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 Refs #32956 -- Changed "afterwards" to "afterward" in docs and comments. 2021-07-27 10:41:51 +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 #32906 -- Added docs and tests for using key and index lookups on JSONBAgg results. 2021-07-26 11:23:51 +02:00
prefetch_related Fixed #32812 -- Restored immutability of named values from QuerySet.values_list(). 2021-06-04 07:23:16 +02: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 Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.db.models. 2021-07-15 11:43:33 +02:00
queryset_pickle Refs #32548 -- Added tests for passing conditional expressions to Q(). 2021-03-17 21:53:36 +01:00
raw_query Refs #32956 -- Corrected spelling of "gray". 2021-08-02 07:51:24 +02: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 #32698 -- Moved HttpRequest.get_raw_uri() to ExceptionReporter._get_raw_insecure_uri(). 2021-04-30 08:05:42 +02: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 Refs #24121 -- Added __repr__() to StreamingHttpResponse and subclasses. 2021-06-22 21:28:48 +02:00
reverse_lookup Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
save_delete_hooks
schema Fixed #33080 -- Preserved nullability of textual fields on Oracle. 2021-09-01 20:54:12 +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 Refs #33012 -- Moved PickleSerializer to django.core.serializers.base and added tests. 2021-09-02 11:24:55 +02: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 #32379 -- Started deprecation toward changing default USE_TZ to True. 2021-05-18 20:26:44 +02:00
shell Refs #32956 -- Updated words ending in -wards. 2021-07-30 20:34:50 +02: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 Fixed #32712 -- Deprecated django.utils.baseconv module. 2021-05-07 11:57:40 +02:00
sitemaps_tests Fixed #32375 -- Started deprecation toward changing the default sitemap protocol to https. 2021-05-21 11:00:54 +02:00
sites_framework Removed unused __str__() methods in tests models. 2020-04-15 20:20:32 +02:00
sites_tests Refs #32956 -- Changed "afterwards" to "afterward" in docs and comments. 2021-07-27 10:41:51 +02:00
staticfiles_tests Removed reference to nonexistent collectstatic --exclude-dirs option. 2021-08-19 12:49:46 +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 Fixed #32789 -- Made feeds emit elements with no content as self-closing tags. 2021-05-27 21:05:28 +02:00
template_backends Refs #32800 -- Renamed _compare_masked_tokens() to _does_token_match(). 2021-08-03 07:10:31 +02:00
template_loader
template_tests Fixed #30086, Refs #32873 -- Made floatformat template filter independent of USE_L10N. 2021-09-08 08:37:27 +02:00
templates Fixed #31080 -- Removed redundant type="text/javascript" attribute from <script> tags. 2019-12-11 09:49:54 +01:00
test_client Fixed #32929 -- Fixed handling query strings in AsyncRequestFactory. 2021-07-15 13:09:29 +02: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 #32552 -- Added logger argument to DiscoverRunner. 2021-08-24 09:23:01 +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 #33054 -- Made TestCase.captureOnCommitCallbacks() capture callbacks recursively. 2021-08-30 07:06:22 +02:00
timezones Refs #32956 -- Corrected spelling of daylight saving time. 2021-08-06 13:00:24 +02: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 isolation of NonAutocommitTests.test_orm_query_after_error_and_rollback(). 2021-07-09 07:38:31 +02: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 Fixed #32195 -- Added system check for invalid view in path() and improved error messages. 2021-06-09 09:06:42 +02:00
urlpatterns_reverse Fixed #23895 -- Prevented pickling of ResolverMatch. 2021-07-29 07:04:56 +02:00
user_commands Fixed #33082 -- Fixed CommandTests.test_subparser_invalid_option on Python 3.9.7+. 2021-09-02 10:56:56 +02:00
utils_tests Fixed #32992 -- Restored offset extraction for fixed offset timezones. 2021-08-30 10:12:46 +02:00
validation Refs #32508 -- Raised Type/ValueError instead of using "assert" in django.db.models. 2021-07-15 11:43:33 +02:00
validators Refs #22123 -- Added more URLValidator test for invalid IPv6 literals. 2021-08-06 12:58:55 +02:00
version Fixed #32316 -- Deferred accessing __file__. 2021-04-01 14:33:30 +02:00
view_tests Fixed 32956 -- Lowercased spelling of "web" and "web framework" where appropriate. 2021-07-29 06:24:12 +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
runtests.py Refs #31621 -- Fixed handling --parallel option in test management command and runtests.py. 2021-08-19 09:18:32 +02:00
test_sqlite.py Fixed #32379 -- Started deprecation toward changing default USE_TZ to True. 2021-05-18 20:26:44 +02: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/.