summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.pre-commit-config.yaml2
-rw-r--r--django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py24
-rw-r--r--tests/admin_views/tests.py5
-rw-r--r--tests/forms_tests/tests/test_forms.py41
-rw-r--r--tests/forms_tests/tests/test_formsets.py101
-rw-r--r--tests/model_forms/tests.py88
6 files changed, 142 insertions, 119 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 494c266f76..3b08b5a998 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -8,7 +8,7 @@ repos:
hooks:
- id: isort
- repo: https://github.com/PyCQA/flake8
- rev: 3.9.2
+ rev: 5.0.0
hooks:
- id: flake8
- repo: https://github.com/pre-commit/mirrors-eslint
diff --git a/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py b/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py
index aa42d0192f..edddaa29a4 100644
--- a/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py
+++ b/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py
@@ -72,18 +72,18 @@ class Command(BaseCommand):
)
content_type_display = "\n".join(ct_info)
self.stdout.write(
- """Some content types in your database are stale and can be deleted.
-Any objects that depend on these content types will also be deleted.
-The content types and dependent objects that would be deleted are:
-
-%s
-
-This list doesn't include any cascade deletions to data outside of Django's
-models (uncommon).
-
-Are you sure you want to delete these content types?
-If you're unsure, answer 'no'."""
- % content_type_display
+ "Some content types in your database are stale and can be "
+ "deleted.\n"
+ "Any objects that depend on these content types will also be "
+ "deleted.\n"
+ "The content types and dependent objects that would be deleted "
+ "are:\n\n"
+ f"{content_type_display}\n\n"
+ "This list doesn't include any cascade deletions to data "
+ "outside of Django's\n"
+ "models (uncommon).\n\n"
+ "Are you sure you want to delete these content types?\n"
+ "If you're unsure, answer 'no'."
)
ok_to_delete = input("Type 'yes' to continue, or 'no' to cancel: ")
else:
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index e7ff999b5d..e59bf7adb9 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -800,8 +800,9 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
self.assertIs(response.context["cl"].has_related_field_in_list_display(), False)
def test_limited_filter(self):
- """Ensure admin changelist filters do not contain objects excluded via limit_choices_to.
- This also tests relation-spanning filters (e.g. 'color__value').
+ """
+ Admin changelist filters do not contain objects excluded via
+ limit_choices_to.
"""
response = self.client.get(reverse("admin:admin_views_thing_changelist"))
self.assertContains(
diff --git a/tests/forms_tests/tests/test_forms.py b/tests/forms_tests/tests/test_forms.py
index 1972d34685..d1b5f8468d 100644
--- a/tests/forms_tests/tests/test_forms.py
+++ b/tests/forms_tests/tests/test_forms.py
@@ -129,9 +129,12 @@ class FormsTestCase(SimpleTestCase):
self.assertHTMLEqual(
"\n".join(form_output),
- """<input type="text" name="first_name" value="John" id="id_first_name" required>
-<input type="text" name="last_name" value="Lennon" id="id_last_name" required>
-<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required>""",
+ '<input type="text" name="first_name" value="John" id="id_first_name" '
+ "required>"
+ '<input type="text" name="last_name" value="Lennon" id="id_last_name" '
+ "required>"
+ '<input type="text" name="birthday" value="1940-10-9" id="id_birthday" '
+ "required>",
)
form_output = []
@@ -828,10 +831,12 @@ class FormsTestCase(SimpleTestCase):
f = BeatleForm(auto_id=False)
self.assertHTMLEqual(
"\n".join(str(bf) for bf in f["name"]),
- """<label><input type="radio" name="name" value="john" required> John</label>
-<label><input type="radio" name="name" value="paul" required> Paul</label>
-<label><input type="radio" name="name" value="george" required> George</label>
-<label><input type="radio" name="name" value="ringo" required> Ringo</label>""",
+ '<label><input type="radio" name="name" value="john" required> John</label>'
+ '<label><input type="radio" name="name" value="paul" required> Paul</label>'
+ '<label><input type="radio" name="name" value="george" required> George'
+ "</label>"
+ '<label><input type="radio" name="name" value="ringo" required> Ringo'
+ "</label>",
)
self.assertHTMLEqual(
"\n".join("<div>%s</div>" % bf for bf in f["name"]),
@@ -2034,8 +2039,10 @@ class FormsTestCase(SimpleTestCase):
p = UserRegistration(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" maxlength="10" required></li>
-<li>Password: <input type="password" name="password" maxlength="10" required></li>""",
+ '<li>Username: <input type="text" name="username" maxlength="10" required>'
+ "</li>"
+ '<li>Password: <input type="password" name="password" maxlength="10" '
+ "required></li>",
)
def test_specifying_labels(self):
@@ -2125,8 +2132,9 @@ class FormsTestCase(SimpleTestCase):
p = UserRegistration(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" maxlength="10" required></li>
-<li>Password: <input type="password" name="password" required></li>""",
+ '<li>Username: <input type="text" name="username" maxlength="10" required>'
+ "</li>"
+ '<li>Password: <input type="password" name="password" required></li>',
)
p = UserRegistration(auto_id="id_%s")
self.assertHTMLEqual(
@@ -2743,11 +2751,12 @@ Options: <select multiple name="options" required>
p = UserRegistration({"username": "foo"}, auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" value="foo" maxlength="10" required>
-<span class="helptext">e.g., user@example.com</span></li>
-<li><ul class="errorlist"><li>This field is required.</li></ul>
-Password: <input type="password" name="password" required>
-<span class="helptext">Wählen Sie mit Bedacht.</span></li>""",
+ '<li>Username: <input type="text" name="username" value="foo" '
+ 'maxlength="10" required>'
+ '<span class="helptext">e.g., user@example.com</span></li>'
+ '<li><ul class="errorlist"><li>This field is required.</li></ul>'
+ 'Password: <input type="password" name="password" required>'
+ '<span class="helptext">Wählen Sie mit Bedacht.</span></li>',
)
# help_text is not displayed for hidden fields. It can be used for documentation
diff --git a/tests/forms_tests/tests/test_formsets.py b/tests/forms_tests/tests/test_formsets.py
index 31abbdf9f8..0ae0bb18cf 100644
--- a/tests/forms_tests/tests/test_formsets.py
+++ b/tests/forms_tests/tests/test_formsets.py
@@ -227,10 +227,11 @@ class FormsFormsetTestCase(SimpleTestCase):
)
self.assertHTMLEqual(
"\n".join(form.as_ul() for form in formset.forms),
- """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico"></li>
-<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>
-<li>Choice: <input type="text" name="choices-1-choice"></li>
-<li>Votes: <input type="number" name="choices-1-votes"></li>""",
+ '<li>Choice: <input type="text" name="choices-0-choice" value="Calexico">'
+ "</li>"
+ '<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>'
+ '<li>Choice: <input type="text" name="choices-1-choice"></li>'
+ '<li>Votes: <input type="number" name="choices-1-votes"></li>',
)
def test_blank_form_unfilled(self):
@@ -484,14 +485,15 @@ class FormsFormsetTestCase(SimpleTestCase):
formset = ChoiceFormSet(initial=initial, auto_id=False, prefix="choices")
self.assertHTMLEqual(
"\n".join(form.as_ul() for form in formset.forms),
- """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico"></li>
-<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>
-<li>Choice: <input type="text" name="choices-1-choice"></li>
-<li>Votes: <input type="number" name="choices-1-votes"></li>
-<li>Choice: <input type="text" name="choices-2-choice"></li>
-<li>Votes: <input type="number" name="choices-2-votes"></li>
-<li>Choice: <input type="text" name="choices-3-choice"></li>
-<li>Votes: <input type="number" name="choices-3-votes"></li>""",
+ '<li>Choice: <input type="text" name="choices-0-choice" value="Calexico">'
+ "</li>"
+ '<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>'
+ '<li>Choice: <input type="text" name="choices-1-choice"></li>'
+ '<li>Votes: <input type="number" name="choices-1-votes"></li>'
+ '<li>Choice: <input type="text" name="choices-2-choice"></li>'
+ '<li>Votes: <input type="number" name="choices-2-votes"></li>'
+ '<li>Choice: <input type="text" name="choices-3-choice"></li>'
+ '<li>Votes: <input type="number" name="choices-3-votes"></li>',
)
# Retrieving an empty form works. Tt shows up in the form list.
self.assertTrue(formset.empty_form.empty_permitted)
@@ -515,15 +517,17 @@ class FormsFormsetTestCase(SimpleTestCase):
formset = ChoiceFormSet(initial=initial, auto_id=False, prefix="choices")
self.assertHTMLEqual(
"\n".join(form.as_ul() for form in formset.forms),
- """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico"></li>
-<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>
-<li>Delete: <input type="checkbox" name="choices-0-DELETE"></li>
-<li>Choice: <input type="text" name="choices-1-choice" value="Fergie"></li>
-<li>Votes: <input type="number" name="choices-1-votes" value="900"></li>
-<li>Delete: <input type="checkbox" name="choices-1-DELETE"></li>
-<li>Choice: <input type="text" name="choices-2-choice"></li>
-<li>Votes: <input type="number" name="choices-2-votes"></li>
-<li>Delete: <input type="checkbox" name="choices-2-DELETE"></li>""",
+ '<li>Choice: <input type="text" name="choices-0-choice" value="Calexico">'
+ "</li>"
+ '<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>'
+ '<li>Delete: <input type="checkbox" name="choices-0-DELETE"></li>'
+ '<li>Choice: <input type="text" name="choices-1-choice" value="Fergie">'
+ "</li>"
+ '<li>Votes: <input type="number" name="choices-1-votes" value="900"></li>'
+ '<li>Delete: <input type="checkbox" name="choices-1-DELETE"></li>'
+ '<li>Choice: <input type="text" name="choices-2-choice"></li>'
+ '<li>Votes: <input type="number" name="choices-2-votes"></li>'
+ '<li>Delete: <input type="checkbox" name="choices-2-DELETE"></li>',
)
# To delete something, set that form's special delete field to 'on'.
# Let's go ahead and delete Fergie.
@@ -658,15 +662,17 @@ class FormsFormsetTestCase(SimpleTestCase):
formset = ChoiceFormSet(initial=initial, auto_id=False, prefix="choices")
self.assertHTMLEqual(
"\n".join(form.as_ul() for form in formset.forms),
- """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico"></li>
-<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>
-<li>Order: <input type="number" name="choices-0-ORDER" value="1"></li>
-<li>Choice: <input type="text" name="choices-1-choice" value="Fergie"></li>
-<li>Votes: <input type="number" name="choices-1-votes" value="900"></li>
-<li>Order: <input type="number" name="choices-1-ORDER" value="2"></li>
-<li>Choice: <input type="text" name="choices-2-choice"></li>
-<li>Votes: <input type="number" name="choices-2-votes"></li>
-<li>Order: <input type="number" name="choices-2-ORDER"></li>""",
+ '<li>Choice: <input type="text" name="choices-0-choice" value="Calexico">'
+ "</li>"
+ '<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>'
+ '<li>Order: <input type="number" name="choices-0-ORDER" value="1"></li>'
+ '<li>Choice: <input type="text" name="choices-1-choice" value="Fergie">'
+ "</li>"
+ '<li>Votes: <input type="number" name="choices-1-votes" value="900"></li>'
+ '<li>Order: <input type="number" name="choices-1-ORDER" value="2"></li>'
+ '<li>Choice: <input type="text" name="choices-2-choice"></li>'
+ '<li>Votes: <input type="number" name="choices-2-votes"></li>'
+ '<li>Order: <input type="number" name="choices-2-ORDER"></li>',
)
data = {
"choices-TOTAL_FORMS": "3", # the number of forms rendered
@@ -784,22 +790,25 @@ class FormsFormsetTestCase(SimpleTestCase):
formset = ChoiceFormSet(initial=initial, auto_id=False, prefix="choices")
self.assertHTMLEqual(
"\n".join(form.as_ul() for form in formset.forms),
- """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico"></li>
-<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>
-<li>Order: <input type="number" name="choices-0-ORDER" value="1"></li>
-<li>Delete: <input type="checkbox" name="choices-0-DELETE"></li>
-<li>Choice: <input type="text" name="choices-1-choice" value="Fergie"></li>
-<li>Votes: <input type="number" name="choices-1-votes" value="900"></li>
-<li>Order: <input type="number" name="choices-1-ORDER" value="2"></li>
-<li>Delete: <input type="checkbox" name="choices-1-DELETE"></li>
-<li>Choice: <input type="text" name="choices-2-choice" value="The Decemberists"></li>
-<li>Votes: <input type="number" name="choices-2-votes" value="500"></li>
-<li>Order: <input type="number" name="choices-2-ORDER" value="3"></li>
-<li>Delete: <input type="checkbox" name="choices-2-DELETE"></li>
-<li>Choice: <input type="text" name="choices-3-choice"></li>
-<li>Votes: <input type="number" name="choices-3-votes"></li>
-<li>Order: <input type="number" name="choices-3-ORDER"></li>
-<li>Delete: <input type="checkbox" name="choices-3-DELETE"></li>""",
+ '<li>Choice: <input type="text" name="choices-0-choice" value="Calexico">'
+ "</li>"
+ '<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>'
+ '<li>Order: <input type="number" name="choices-0-ORDER" value="1"></li>'
+ '<li>Delete: <input type="checkbox" name="choices-0-DELETE"></li>'
+ '<li>Choice: <input type="text" name="choices-1-choice" value="Fergie">'
+ "</li>"
+ '<li>Votes: <input type="number" name="choices-1-votes" value="900"></li>'
+ '<li>Order: <input type="number" name="choices-1-ORDER" value="2"></li>'
+ '<li>Delete: <input type="checkbox" name="choices-1-DELETE"></li>'
+ '<li>Choice: <input type="text" name="choices-2-choice" '
+ 'value="The Decemberists"></li>'
+ '<li>Votes: <input type="number" name="choices-2-votes" value="500"></li>'
+ '<li>Order: <input type="number" name="choices-2-ORDER" value="3"></li>'
+ '<li>Delete: <input type="checkbox" name="choices-2-DELETE"></li>'
+ '<li>Choice: <input type="text" name="choices-3-choice"></li>'
+ '<li>Votes: <input type="number" name="choices-3-votes"></li>'
+ '<li>Order: <input type="number" name="choices-3-ORDER"></li>'
+ '<li>Delete: <input type="checkbox" name="choices-3-DELETE"></li>',
)
# Let's delete Fergie, and put The Decemberists ahead of Calexico.
data = {
diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py
index a615d4516d..1b024f5d18 100644
--- a/tests/model_forms/tests.py
+++ b/tests/model_forms/tests.py
@@ -1916,26 +1916,28 @@ class ModelFormBasicTests(TestCase):
f = ArticleForm(auto_id=False)
self.assertHTMLEqual(
f.as_ul(),
- """<li>Headline: <input type="text" name="headline" maxlength="50" required></li>
-<li>Slug: <input type="text" name="slug" maxlength="50" required></li>
-<li>Pub date: <input type="text" name="pub_date" required></li>
-<li>Writer: <select name="writer" required>
-<option value="" selected>---------</option>
-<option value="%s">Bob Woodward</option>
-<option value="%s">Mike Royko</option>
-</select></li>
-<li>Article: <textarea rows="10" cols="40" name="article" required></textarea></li>
-<li>Categories: <select multiple name="categories">
-<option value="%s">Entertainment</option>
-<option value="%s">It&#x27;s a test</option>
-<option value="%s">Third test</option>
-</select> </li>
-<li>Status: <select name="status">
-<option value="" selected>---------</option>
-<option value="1">Draft</option>
-<option value="2">Pending</option>
-<option value="3">Live</option>
-</select></li>"""
+ '<li>Headline: <input type="text" name="headline" maxlength="50" required>'
+ "</li>"
+ '<li>Slug: <input type="text" name="slug" maxlength="50" required></li>'
+ '<li>Pub date: <input type="text" name="pub_date" required></li>'
+ '<li>Writer: <select name="writer" required>'
+ '<option value="" selected>---------</option>'
+ '<option value="%s">Bob Woodward</option>'
+ '<option value="%s">Mike Royko</option>'
+ "</select></li>"
+ '<li>Article: <textarea rows="10" cols="40" name="article" required>'
+ "</textarea></li>"
+ '<li>Categories: <select multiple name="categories">'
+ '<option value="%s">Entertainment</option>'
+ '<option value="%s">It&#x27;s a test</option>'
+ '<option value="%s">Third test</option>'
+ "</select> </li>"
+ '<li>Status: <select name="status">'
+ '<option value="" selected>---------</option>'
+ '<option value="1">Draft</option>'
+ '<option value="2">Pending</option>'
+ '<option value="3">Live</option>'
+ "</select></li>"
% (self.w_woodward.pk, self.w_royko.pk, self.c1.pk, self.c2.pk, self.c3.pk),
)
@@ -1943,28 +1945,30 @@ class ModelFormBasicTests(TestCase):
w_bernstein = Writer.objects.create(name="Carl Bernstein")
self.assertHTMLEqual(
f.as_ul(),
- """<li>Headline: <input type="text" name="headline" maxlength="50" required></li>
-<li>Slug: <input type="text" name="slug" maxlength="50" required></li>
-<li>Pub date: <input type="text" name="pub_date" required></li>
-<li>Writer: <select name="writer" required>
-<option value="" selected>---------</option>
-<option value="%s">Bob Woodward</option>
-<option value="%s">Carl Bernstein</option>
-<option value="%s">Mike Royko</option>
-</select></li>
-<li>Article: <textarea rows="10" cols="40" name="article" required></textarea></li>
-<li>Categories: <select multiple name="categories">
-<option value="%s">Entertainment</option>
-<option value="%s">It&#x27;s a test</option>
-<option value="%s">Third test</option>
-<option value="%s">Fourth</option>
-</select></li>
-<li>Status: <select name="status">
-<option value="" selected>---------</option>
-<option value="1">Draft</option>
-<option value="2">Pending</option>
-<option value="3">Live</option>
-</select></li>"""
+ '<li>Headline: <input type="text" name="headline" maxlength="50" required>'
+ "</li>"
+ '<li>Slug: <input type="text" name="slug" maxlength="50" required></li>'
+ '<li>Pub date: <input type="text" name="pub_date" required></li>'
+ '<li>Writer: <select name="writer" required>'
+ '<option value="" selected>---------</option>'
+ '<option value="%s">Bob Woodward</option>'
+ '<option value="%s">Carl Bernstein</option>'
+ '<option value="%s">Mike Royko</option>'
+ "</select></li>"
+ '<li>Article: <textarea rows="10" cols="40" name="article" required>'
+ "</textarea></li>"
+ '<li>Categories: <select multiple name="categories">'
+ '<option value="%s">Entertainment</option>'
+ '<option value="%s">It&#x27;s a test</option>'
+ '<option value="%s">Third test</option>'
+ '<option value="%s">Fourth</option>'
+ "</select></li>"
+ '<li>Status: <select name="status">'
+ '<option value="" selected>---------</option>'
+ '<option value="1">Draft</option>'
+ '<option value="2">Pending</option>'
+ '<option value="3">Live</option>'
+ "</select></li>"
% (
self.w_woodward.pk,
w_bernstein.pk,