django/tests
Tim Graham 623139b5d1 Refs #29147 --- Added JSONField serialization tests. 2018-03-21 20:11:06 -04:00
..
absolute_url_overrides Fixed #26125 -- Fixed E731 flake warnings. 2016-01-25 14:23:43 -05:00
admin_autodiscover
admin_changelist Refs #23919 -- Removed obsolete comments about u'' prefixes. 2018-03-21 08:15:07 -04:00
admin_checks Fixed #28776 -- Fixed a/an/and typos in docs and comments. 2017-11-06 22:41:03 -05:00
admin_custom_urls Refs #23919 -- Replaced super(ClassName, self) with super(). 2017-01-25 12:23:46 -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 #29038 -- Removed closing slash from HTML void tags. 2018-01-21 02:09:10 -05:00
admin_filters Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
admin_inlines Fixed #29184 -- Made TabularInline respect model form's Meta.labels and help_texts. 2018-03-17 20:51:24 -04:00
admin_ordering Removed unnecessary trailing commas and spaces in various code. 2017-12-28 21:07:29 +01:00
admin_registration Used assertRaisesMessage() to test Django's error messages. 2017-07-29 19:07:23 -04:00
admin_scripts Fixed #28398 -- Added suggestions for mistyped management commands. 2018-02-21 09:00:49 -05:00
admin_utils Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
admin_views Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
admin_widgets Fixed #29221 -- Corrected admin's autocomplete widget to add a space after custom classes. 2018-03-15 10:55:34 -04:00
aggregation Simplified aggregation.tests. 2018-02-02 08:47:32 +01:00
aggregation_regress Fixed #29067 -- Fixed regression in QuerySet.values_list(..., flat=True) followed by annotate(). 2018-01-26 09:35:50 -05:00
annotations Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
app_loading Refs #23919 -- Removed django.utils._os.upath()/npath()/abspathu() usage. 2017-01-20 08:01:02 -05:00
apps Added test for Apps.get_models() when models_ready=False. 2018-01-30 10:44:58 -05:00
auth_tests Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
backends Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
base Sorted imports per isort 4.2.9. 2017-06-01 13:23:48 -04:00
bash_completion Refs #23919 -- Removed obsolete __init__.py files in management command directories. 2018-01-03 11:02:26 -05:00
basic Fixed #29076 -- Made Model.refresh_from_db() clear cached relationships even if the related id doesn't change. 2018-01-30 10:43:53 -05:00
builtin_server Refs #23919 -- Replaced super(ClassName, self) with super(). 2017-01-25 12:23:46 -05:00
bulk_create Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
cache Refs #17476 -- Removed obsolete simplification of timezone names in cache key generation. 2018-03-03 14:56:39 -05:00
check_framework Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
choices Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
conditional_processing Fixed #28104 -- Prevented condition decorator from setting ETag/Last-Modified headers for non-safe requests. 2017-06-06 15:37:14 -04:00
contenttypes_tests Fixed imports per isort 4.3.1. 2018-02-02 14:44:07 -05:00
context_processors Added multi_db=True to test cases that access the 'other' db connection. 2017-02-10 08:19:32 -05:00
csrf_tests Fixed #28693 -- Fixed crash in CsrfViewMiddleware when an HTTPS request has an invalid host. 2018-02-14 20:24:01 -05:00
custom_columns Used assertRaisesMessage() to test Django's error messages. 2017-07-29 19:07:23 -04:00
custom_lookups Fixed #24747 -- Allowed transforms in QuerySet.order_by() and distinct(*fields). 2018-02-10 19:08:55 -05: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 Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
custom_migration_operations
custom_pk Used assertRaisesMessage() to test Django's error messages. 2017-07-29 19:07:23 -04:00
datatypes Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
dates Fixed #28650 -- Added TruncWeek database function. 2018-01-27 09:59:13 -05:00
datetimes Fixed #28650 -- Added TruncWeek database function. 2018-01-27 09:59:13 -05:00
db_functions Refs #28643 -- Added LPad and RPad database functions. 2018-03-19 17:35:16 +01:00
db_typecasts Refs #27804 -- Used subTest() in several tests. 2017-05-24 08:36:34 -04:00
db_utils Fixed #28853 -- Updated connection.cursor() uses to use a context manager. 2017-11-28 11:28:09 -05:00
dbshell Fixed #28322 -- Added dbshell support for MySQL client TLS certs. 2017-06-19 18:11:25 -04:00
decorators Fixed spelling of "nonexistent". 2017-02-03 08:01:45 -05:00
defer Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
defer_regress Decreased max_length for char fields unless absolutely needed. (#8485) 2017-05-10 17:33:46 +02:00
delete Fixed incorrect integer division in DeletionTests.test_large_delete_related. 2017-10-02 10:11:20 -04:00
delete_regress Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
deprecation Refs #23919 -- Replaced super(ClassName, self) with super(). 2017-01-25 12:23:46 -05:00
dispatch Refs #23919 -- Stopped inheriting from object to define new style classes. 2017-01-19 08:39:46 +01:00
distinct_on_fields Fixed #24747 -- Allowed transforms in QuerySet.order_by() and distinct(*fields). 2018-02-10 19:08:55 -05:00
empty
expressions Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
expressions_case Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
expressions_window Fixed #29172 -- Fixed crash with Window expression in a subquery. 2018-03-01 10:24:14 -05:00
extra_regress Refs #7070 -- Improved test for extra(), values(), distinct() and ordering() all together. 2017-08-08 14:38:43 -04:00
field_deconstruction Fixed #28937 -- Allowed BinaryField to be editable=True. 2017-12-22 16:31:46 -05:00
field_defaults Refs #23919 -- Removed six.<various>_types usage 2017-01-18 20:18:46 +01:00
field_subclassing Refs #23919 -- Removed encoding preambles and future imports 2017-01-18 09:55:19 +01:00
file_storage Refs #23968 -- Removed unnecessary lists, generators, and tuple calls. 2017-06-01 19:08:59 -04:00
file_uploads Refs #27795 -- Removed force_bytes/text() usage in tests. 2018-02-07 14:20:04 -05:00
files Fixed #29188 -- Fixed ContentFile.size after a write(). 2018-03-08 14:07:29 -05:00
filtered_relation Refs #28010 -- Allowed reverse related fields in SELECT FOR UPDATE .. OF. 2017-10-28 20:33:42 -04:00
fixtures Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
fixtures_model_package Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
fixtures_regress Fixed spelling of "nonexistent". 2017-02-03 08:01:45 -05:00
flatpages_tests Removed unnecessary trailing commas and spaces in various code. 2017-12-28 21:07:29 +01:00
force_insert_update Used assertRaisesMessage() to test Django's error messages. 2017-07-29 19:07:23 -04:00
foreign_object Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
forms_tests Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
from_db_value Fixed #28370 -- Deprecated the context arg of Field.from_db_value() and Expression.convert_value(). 2017-07-20 16:30:08 -04:00
generic_inline_admin Moved generic_inlineformset_factory() tests to a separate file. 2017-12-28 17:17:47 -05:00
generic_relations Fixed #29038 -- Removed closing slash from HTML void tags. 2018-01-21 02:09:10 -05:00
generic_relations_regress Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
generic_views Improved generic detail view error message for when pk or slug is missing. 2018-01-17 10:58:05 -05:00
get_earliest_or_latest Fixed #11557 -- Added support for a list of fields in Meta.get_latest_by and QuerySet.earliest()/latest(). 2017-09-05 20:14:54 -04: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 Fixed #29126 -- Doc'd the behavior of QuerySet.update_or_create() with manually specified pks. 2018-02-15 13:17:37 -05:00
gis_tests Fixed #28981 -- Added an exception if GeoIP database can't be loaded from the path. 2018-03-05 12:20:30 -05:00
handlers Fixed #27857 -- Dropped support for Python 3.4. 2017-09-25 17:11:03 -04:00
httpwrappers Refs #27308, #27753 -- Removed obsolete cookie test mixing bytes with str. 2017-06-03 21:07:11 -04:00
humanize_tests Converted usage of ugettext* functions to their gettext* aliases 2017-02-07 09:04:04 +01:00
i18n Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
import_error_package
indexes Refs #25530 -- Tracked references of deferred SQL statements. 2017-06-21 00:03:31 -04:00
inline_formsets Refs #23919 -- Replaced super(ClassName, self) with super(). 2017-01-25 12:23:46 -05:00
inspectdb Fixed #27533 -- Fixed inspectdb crash if a unique constraint uses an unsupported type. 2018-03-21 12:28:16 -04:00
introspection Removed DatabaseFeatures.can_introspect_null. 2018-03-16 11:43:41 -04:00
invalid_models_tests Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
known_related_objects Refs #23968 -- Removed unnecessary lists, generators, and tuple calls. 2017-06-01 19:08:59 -04:00
logging_tests Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
lookup Refs #29155 -- Fixed LookupTests.test_pattern_lookups_with_substr() crash on Oracle. 2018-03-15 09:54:24 -04:00
m2m_and_m2o Refs #23919, #27778 -- Removed obsolete mentions of unicode. 2017-01-26 08:19:27 -05:00
m2m_intermediary Refs #23919 -- Removed six.<various>_types usage 2017-01-18 20:18:46 +01:00
m2m_multiple Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
m2m_recursive Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
m2m_regress Used assertRaisesMessage() to test Django's error messages. 2017-07-29 19:07:23 -04:00
m2m_signals Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
m2m_through Removed unnecessary trailing commas and spaces in various code. 2017-12-28 21:07:29 +01:00
m2m_through_regress Fixed #28776 -- Fixed a/an/and typos in docs and comments. 2017-11-06 22:41:03 -05:00
m2o_recursive Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
mail Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
managers_regress Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
many_to_many Fixed typo in tests/many_to_many/tests.py. 2017-10-31 10:21:02 -04:00
many_to_one Fixed #27710 -- Made Model.save() invalidate cached, stale relations after a primary key assignment. 2017-11-09 11:40:34 -05:00
many_to_one_null Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
max_lengths Refs #23919 -- Removed encoding preambles and future imports 2017-01-18 09:55:19 +01:00
messages_tests Fixed imports per isort 4.3.0. 2018-02-01 09:29:46 +01:00
middleware Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
middleware_exceptions Imported django.http classes instead of django.http. 2017-02-27 14:47:11 -05:00
migrate_signals Refs #23919 -- Stopped inheriting from object to define new style classes. 2017-01-19 08:39:46 +01:00
migration_test_data_persistence Refs #23919 -- Removed encoding preambles and future imports 2017-01-18 09:55:19 +01:00
migrations Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
migrations2 Refs #23919 -- Removed encoding preambles and future imports 2017-01-18 09:55:19 +01:00
model_fields Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
model_forms Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
model_formsets Fixed #29038 -- Removed closing slash from HTML void tags. 2018-01-21 02:09:10 -05:00
model_formsets_regress Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
model_indexes Fixed #29178 -- Allowed Index.fields to accept a tuple. 2018-03-08 10:56:55 -05:00
model_inheritance Fixed #28834 -- Followed ancestor links on field cache lookup failure. 2017-11-29 01:28:39 -05:00
model_inheritance_regress Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
model_meta Fixed #28750 -- Allowed models to define Meta.manager_inheritance_from_future for backwards compatibility. 2017-10-31 13:22:27 -04:00
model_options Refs #25530 -- Tracked references of deferred SQL statements. 2017-06-21 00:03:31 -04:00
model_package Refs #23919 -- Removed encoding preambles and future imports 2017-01-18 09:55:19 +01:00
model_regress Fixed #28776 -- Fixed a/an/and typos in docs and comments. 2017-11-06 22:41:03 -05:00
modeladmin Fixed #17962 -- Added ModelAdmin.get_deleted_objects(). 2018-02-24 20:41:43 -05:00
multiple_database Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
mutually_referential Fixed #21127 -- Started deprecation toward requiring on_delete for ForeignKey/OneToOneField 2015-07-27 18:28:13 -04:00
nested_foreign_keys Refs #23919 -- Removed encoding preambles and future imports 2017-01-18 09:55:19 +01:00
no_models Refs #27392 -- Removed "Tests that", "Ensures that", etc. from test docstrings. 2016-11-10 21:30:21 -05:00
null_fk Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
null_fk_ordering Removed unnecessary trailing commas and spaces in various code. 2017-12-28 21:07:29 +01:00
null_queries Used assertRaisesMessage() to test Django's error messages. 2017-07-29 19:07:23 -04:00
one_to_one Fixed typo in tests/one_to_one/tests.py docstring. 2018-02-12 08:44:49 -05:00
or_lookups Removed obsolete references to add_to_query(). 2017-07-25 07:52:05 -04:00
order_with_respect_to Replaced type-specific assertions with assertEqual(). 2017-03-17 07:51:48 -04:00
ordering Fixed #28848 -- Fixed SQLite/MySQL crash when ordering by a filtered subquery that uses nulls_first/nulls_last. 2017-11-27 11:35:44 -05:00
pagination Fixed #28032 -- Added Paginator.get_page(). 2017-09-06 14:17:19 -04:00
postgres_tests Refs #29147 --- Added JSONField serialization tests. 2018-03-21 20:11:06 -04:00
prefetch_related Refs #28723 -- Fixed stale prefetch_related cache after add/remove. 2018-02-05 11:02:57 -05:00
project_template Fixed #26755 -- Fixed test_middleware_classes_headers if Django source isn't writable. 2017-05-31 10:25:09 -04:00
properties Refs #23919 -- Removed encoding preambles and future imports 2017-01-18 09:55:19 +01:00
proxy_model_inheritance Refs #23919 -- Removed django.utils._os.upath()/npath()/abspathu() usage. 2017-01-20 08:01:02 -05:00
proxy_models Fixed #28820 -- Eliminated an extra query with QuerySet.update() on proxy models. 2017-11-21 12:11:47 -05:00
queries Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
queryset_pickle Removed unnecessary trailing commas and spaces in various code. 2017-12-28 21:07:29 +01:00
raw_query Fixed #28206 -- Fixed RawQuerySet crash on a model with a mixed case db_column pk on Oracle. 2017-05-18 19:11:23 +02:00
redirects_tests Used assertRaisesMessage() to test Django's error messages. 2017-07-29 19:07:23 -04:00
requests Added more tests for HttpRequest.build_absolute_uri(). 2018-01-10 11:32:19 -05:00
requirements Switched test requirement to new psycopg2-binary package. 2018-02-08 20:02:35 -05:00
reserved_names Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
resolve_url Refs #23919 -- Removed six.<various>_types usage 2017-01-18 20:18:46 +01:00
responses Fixed #28989 -- Fixed HttpResponse.delete_cookie() for cookies that use __Secure/Host prefixes. 2018-01-08 12:32:47 -05:00
reverse_lookup Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
save_delete_hooks Refs #23919 -- Replaced super(ClassName, self) with super(). 2017-01-25 12:23:46 -05:00
schema Refs #29227 -- Made inspectdb generate BooleanField(null=True) rather than NullBooleanField. 2018-03-20 12:10:10 -04:00
select_for_update Fixed #28944 -- Fixed crash when chaining values()/values_list() after QuerySet.select_for_update(of=()). 2017-12-26 11:41:17 -05:00
select_related Added a test for QuerySet.select_related() reverse caching. 2017-09-21 14:25:42 -04:00
select_related_onetoone Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
select_related_regress Refs #23919 -- Removed six.<various>_types usage 2017-01-18 20:18:46 +01:00
serializers Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
servers Refs #28440 -- Fixed server connection closing test on macOS. 2017-10-13 13:29:29 -04:00
sessions_tests Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
settings_tests Used assertRaisesMessage() to test Django's error messages. 2017-07-29 19:07:23 -04:00
shell Refs #23919 -- Removed django.test.mock Python 2 compatibility shim. 2017-01-20 08:17:20 -05:00
shortcuts Fixed #25978 -- Deprecated shorcuts.render_to_response(). 2017-02-11 05:49:04 -05:00
signals Refs #23919 -- Replaced super(ClassName, self) with super(). 2017-01-25 12:23:46 -05:00
signed_cookies_tests Refs #23919 -- Removed encoding preambles and future imports 2017-01-18 09:55:19 +01:00
signing Refs #23919 -- Removed default 'utf-8' argument for str.encode()/decode(). 2017-02-09 09:03:47 -05:00
sitemaps_tests Used assertRaisesMessage() to test Django's error messages. 2017-07-29 19:07:23 -04:00
sites_framework Refs #23919 -- Removed python_2_unicode_compatible decorator usage 2017-01-18 13:44:34 +01:00
sites_tests Added tests for RequestSite.__init__() and __str__(). 2017-09-28 08:16:21 -04:00
staticfiles_tests Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
str Fixed #27953 -- Added instance's pk to Model.__str__(). 2017-06-09 13:42:53 -04:00
string_lookup Refs #27795 -- Removed unneeded force_text calls 2017-03-04 18:18:21 +01:00
swappable_models Refs #27790 -- Reverted "Removed available_apps on TestCase subclasses." 2017-01-28 10:01:13 -05:00
syndication_tests Refs #27804 -- Used subTest() in a syndication test. 2017-09-03 20:40:50 -04:00
template_backends Fixed #29038 -- Removed closing slash from HTML void tags. 2018-01-21 02:09:10 -05:00
template_loader Fixed #25788 -- Enabled the cached template loader if debug is False. 2016-09-03 09:06:33 -04:00
template_tests Increased test coverage for i18n template tags. 2018-03-21 08:38:07 -04:00
templates Fixed #29038 -- Removed closing slash from HTML void tags. 2018-01-21 02:09:10 -05:00
test_client Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
test_client_regress Decoupled test client encoding tests from JSON handling 2017-03-09 22:15:10 +01:00
test_exceptions
test_runner Fixed #29106 -- Made DiscoverRunner display selected test tags. 2018-02-13 12:56:31 -05:00
test_runner_apps Fixed #28869 -- Made tagged test classes and methods inherit tags from parents. 2018-01-08 20:57:33 -05:00
test_utils Fixed #27857 -- Dropped support for Python 3.4. 2017-09-25 17:11:03 -04:00
timezones Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
transaction_hooks Reverted "Fixed #27818 -- Replaced try/except/pass with contextlib.suppress()." 2017-09-07 08:16:21 -04:00
transactions Used assertRaisesMessage() to test Django's error messages. 2017-07-29 19:07:23 -04:00
unmanaged_models Sorted imports per isort 4.2.9. 2017-06-01 13:23:48 -04:00
update Fixed hanging indentation in various code. 2018-03-16 10:54:34 +01:00
update_only_fields Used assertRaisesMessage() to test Django's error messages. 2017-07-29 19:07:23 -04:00
urlpatterns Fixed #28947 -- Fixed crash when coercing a translatable URL pattern to str. 2017-12-20 20:36:41 -05:00
urlpatterns_reverse Fixed imports per isort 4.3.0. 2018-02-01 09:29:46 +01:00
user_commands Fixed #29133 -- Fixed call_command() crash if a required option is passed in options. 2018-03-02 12:25:08 -05:00
utils_tests Added more tests for django.utils.html.urlize(). 2018-03-06 08:30:41 -05:00
validation Fixed #29227 -- Allowed BooleanField to be null=True. 2018-03-20 12:10:10 -04:00
validators Fixed #29007 -- Fixed DecimalValidator crash on NaN, SNan, Inf, and Infinity values. 2018-01-10 21:43:32 -05:00
version Fixed #27830 -- Used distutils.version.LooseVersion for version parsing. 2017-06-13 10:53:39 -04:00
view_tests Refs #27795 -- Removed force_bytes/text() usage in tests. 2018-02-07 14:20:04 -05:00
wsgi Refs #23919 -- Stopped inheriting from object to define new style classes. 2017-01-19 08:39:46 +01:00
.coveragerc Fixed #25209 -- Removed parallel=True coverage option 2015-08-04 09:32:12 -04:00
README.rst Refs #23919 -- Removed misc Python 2/3 references. 2017-01-25 13:59:25 -05:00
runtests.py Fixed #28996 -- Simplified some boolean constructs and removed trivial continue statements. 2018-01-12 12:44:50 -05:00
test_sqlite.py
urls.py Fixed "URLconf" spelling in code comments. 2015-10-22 14:46:42 -04:00

README.rst

To run the test suite, first, create and activate a virtual environment. Then
install some requirements and run the tests::

    $ cd tests
    $ pip install -e ..
    $ 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/.