django/tests
Keryn Knight a697424969 Fixed #32996 -- Cached PathInfos on relations.
PathInfo values are ostensibly static over the lifetime of the object
for which they're requested, so the data can be memoized, quickly
amortising the cost over the process' duration.
2021-11-03 11:27:04 +01:00
..
absolute_url_overrides
admin_autodiscover Used assertRaisesMessage() in various tests. 2020-02-07 12:46:23 +01:00
admin_changelist Fixed #33211 -- Updated tests for Selenium 4.0.0. 2021-10-21 14:37:16 +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 #32499 -- Escaped additional metacharacters in simplify_regex(). 2021-09-22 11:59:59 +02:00
admin_filters Refs #31369 -- Removed models.NullBooleanField per deprecation timeline. 2021-01-14 17:50:04 +01:00
admin_inlines Fixed #33211 -- Updated tests for Selenium 4.0.0. 2021-10-21 14:37:16 +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 Refs #32355 -- Modernized subprocess.run() calls. 2021-09-27 08:20:24 +02:00
admin_utils Fixed #32873 -- Deprecated settings.USE_L10N. 2021-09-14 12:05:43 +02:00
admin_views Fixed isolation of admin_views.tests.ValidXHTMLTests. 2021-11-02 07:03:11 +01:00
admin_widgets Fixed #33211 -- Updated tests for Selenium 4.0.0. 2021-10-21 14:37:16 +02:00
aggregation Fixed #33141 -- Renamed Expression.empty_aggregate_value to empty_result_set_value. 2021-09-29 12:58:01 +02:00
aggregation_regress Fixed #32690 -- Fixed __in lookup crash when combining with filtered aggregates. 2021-05-05 11:41:35 +02:00
annotations Fixed #33018 -- Fixed annotations with empty queryset. 2021-09-29 20:23:29 +02:00
app_loading
apps Refs #31180 -- Removed default_app_config application configuration variable per deprecation timeline. 2021-09-20 21:23:01 +02: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 Fixed #33178 -- Made createsuperuser validate required fields passed in options in interactive mode. 2021-10-12 08:08:05 +02:00
backends Fixed #32672 -- Fixed introspection of primary key constraints on SQLite. 2021-10-26 09:50:23 +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 #33252 -- Made cache middlewares thread-safe. 2021-11-03 09:39:27 +01:00
check_framework Fixed #32987 -- Added system check for template tag modules with the same name. 2021-10-20 11:15:47 +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 #33008 -- Fixed prefetch_related() for deleted GenericForeignKeys. 2021-10-14 12:37:03 +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 Fixed #32365 -- Made zoneinfo the default timezone implementation. 2021-09-16 12:11:05 +02:00
db_functions Fixed #33018 -- Fixed annotations with empty queryset. 2021-09-29 20:23:29 +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 Fixed #33043 -- Made method_decorator() preserve wrapper assignments. 2021-10-20 16:48:00 +02: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 Fixed #32873 -- Deprecated settings.USE_L10N. 2021-09-14 12:05:43 +02: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 #33224 -- Removed DatabaseFeatures.supports_mixed_date_datetime_comparisons. 2021-11-02 07:30:38 +01: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 #32996 -- Cached PathInfos on relations. 2021-11-03 11:27:04 +01:00
forms_tests Fixed #33211 -- Updated tests for Selenium 4.0.0. 2021-10-21 14:37:16 +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 Refs #32956 -- Capitalized HTTP/HTTPS in comments, docs, and docstrings. 2021-10-20 08:40:19 +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 Refs #32956 -- Changed docs to treat the acronym HTTP phonetically. 2021-10-18 21:00:28 +02:00
get_or_create Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
gis_tests Fixed #33215 -- Confirmed support for GEOS 3.10. 2021-10-21 20:23:58 +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 #32873 -- Deprecated settings.USE_L10N. 2021-09-14 12:05:43 +02:00
i18n Fixed #32873 -- Deprecated settings.USE_L10N. 2021-09-14 12:05:43 +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 #33187 -- Made inspectdb handle ForeignKey.to_field attribute. 2021-11-02 18:53:11 +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 #33131 -- Improved error messages for clashing reverse accessor names. 2021-10-06 12:33:15 +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 #32691 -- Made Exact lookup on BooleanFields compare directly to a boolean value on MySQL. 2021-11-02 21:30:21 +01: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 #32074 -- Removed usage of deprecated asyncore and smtpd modules. 2021-10-15 09:58:35 +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 Refs #32191 -- Removed for the pre-Django 3.2 format of messages in CookieStorage. 2021-09-20 21:23:01 +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 #33234 -- Fixed autodetector crash for proxy models inheriting from non-model class. 2021-11-02 15:34:08 +01:00
migrations2
model_enums Refs #32074 -- Backported Enum.__repr__() from Python 3.10. 2021-04-07 10:28:40 +02:00
model_fields Fixed #33033 -- Prevented models.DecimalField from accepting NaN values. 2021-09-28 13:20:14 +02:00
model_forms Fixed #33155 -- Made ModelChoiceIteratorValue instances hashable. 2021-09-30 12:07:50 +02:00
model_formsets Fixed #31026 -- Switched form rendering to template engine. 2021-09-20 15:50:18 +02: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 #33131 -- Improved error messages for clashing reverse accessor names. 2021-10-06 12:33:15 +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 Refs #27694 -- Added more tests for chaining lookups with HStoreField key transforms. 2021-10-04 07:18:16 +02:00
prefetch_related Fixed #33008 -- Fixed prefetch_related() for deleted GenericForeignKeys. 2021-10-14 12:37:03 +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 #25467 -- Added test for excluding one-to-one relation with unsaved objects. 2021-10-08 06:26:19 +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 Refs #32074 -- Removed usage of deprecated asyncore and smtpd modules. 2021-10-15 09:58:35 +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 #30509 -- Adjusted FileResponse test to close file earlier. 2021-10-14 15:05:27 +02:00
reverse_lookup Removed unused __str__() methods in tests models. 2020-04-30 09:13:23 +02:00
save_delete_hooks
schema Fixed #33125 -- Avoided redundant unique constraint when converting a non-unique field to primary key on MySQL and PostgreSQL. 2021-09-28 06:20:37 +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 #27079 -- Avoided multiple setUpClass()/tearDownClass() calls in LiveServerTestCase tests. 2021-10-26 07:47:40 +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 #32365 -- Made zoneinfo the default timezone implementation. 2021-09-16 12:11:05 +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 #25916 -- Added lastmod support to sitemap index view. 2021-10-21 15:26:22 +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 Fixed #27079 -- Avoided multiple setUpClass()/tearDownClass() calls in LiveServerTestCase tests. 2021-10-26 07:47:40 +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 #32873 -- Deprecated settings.USE_L10N. 2021-09-14 12:05:43 +02:00
templates Fixed #31080 -- Removed redundant type="text/javascript" attribute from <script> tags. 2019-12-11 09:49:54 +01:00
test_client Refs #32956 -- Capitalized HTTP/HTTPS in comments, docs, and docstrings. 2021-10-20 08:40:19 +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 #33236 -- Fixed assertHTMLEqual() error messages for escaped HTML. 2021-10-29 12:09:23 +02:00
timezones Fixed #32365 -- Made zoneinfo the default timezone implementation. 2021-09-16 12:11:05 +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 #33205 -- Made call_command() raise TypeError when dest with multiple arguments is passed. 2021-10-25 07:48:06 +02:00
utils_tests Fixed #33027 -- Made autoreloader pass -X options. 2021-09-29 11:37:50 +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 #31670 -- Removed whitelist argument and domain_whitelist attribute in EmailValidator per deprecation timeline. 2021-09-20 21:23:01 +02:00
version Fixed #32316 -- Deferred accessing __file__. 2021-04-01 14:33:30 +02:00
view_tests Fixed #33211 -- Updated tests for Selenium 4.0.0. 2021-10-21 14:37:16 +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 Advanced deprecation warnings for Django 4.1. 2021-09-20 21:23:01 +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/.