diff options
Diffstat (limited to 'tests')
139 files changed, 332 insertions, 354 deletions
diff --git a/tests/admin_changelist/admin.py b/tests/admin_changelist/admin.py index 39494e99d3..915dc32ef0 100644 --- a/tests/admin_changelist/admin.py +++ b/tests/admin_changelist/admin.py @@ -12,7 +12,7 @@ site.register(User, UserAdmin) class CustomPaginator(Paginator): def __init__(self, queryset, page_size, orphans=0, allow_empty_first_page=True): - super(CustomPaginator, self).__init__(queryset, 5, orphans=2, allow_empty_first_page=allow_empty_first_page) + super().__init__(queryset, 5, orphans=2, allow_empty_first_page=allow_empty_first_page) class EventAdmin(admin.ModelAdmin): @@ -39,7 +39,7 @@ class ChildAdmin(admin.ModelAdmin): list_filter = ['parent', 'age'] def get_queryset(self, request): - return super(ChildAdmin, self).get_queryset(request).select_related("parent") + return super().get_queryset(request).select_related("parent") class CustomPaginationAdmin(ChildAdmin): @@ -51,8 +51,7 @@ class FilteredChildAdmin(admin.ModelAdmin): list_per_page = 10 def get_queryset(self, request): - return super(FilteredChildAdmin, self).get_queryset(request).filter( - name__contains='filtered') + return super().get_queryset(request).filter(name__contains='filtered') class BandAdmin(admin.ModelAdmin): @@ -85,7 +84,7 @@ class DynamicListDisplayChildAdmin(admin.ModelAdmin): list_display = ('parent', 'name', 'age') def get_list_display(self, request): - my_list_display = super(DynamicListDisplayChildAdmin, self).get_list_display(request) + my_list_display = super().get_list_display(request) if request.user.username == 'noparents': my_list_display = list(my_list_display) my_list_display.remove('parent') @@ -124,7 +123,7 @@ class DynamicListFilterChildAdmin(admin.ModelAdmin): list_filter = ('parent', 'name', 'age') def get_list_filter(self, request): - my_list_filter = super(DynamicListFilterChildAdmin, self).get_list_filter(request) + my_list_filter = super().get_list_filter(request) if request.user.username == 'noparents': my_list_filter = list(my_list_filter) my_list_filter.remove('parent') @@ -135,7 +134,7 @@ class DynamicSearchFieldsChildAdmin(admin.ModelAdmin): search_fields = ('name',) def get_search_fields(self, request): - search_fields = super(DynamicSearchFieldsChildAdmin, self).get_search_fields(request) + search_fields = super().get_search_fields(request) search_fields += ('age',) return search_fields diff --git a/tests/admin_changelist/models.py b/tests/admin_changelist/models.py index 0abb061548..1cec7b8a82 100644 --- a/tests/admin_changelist/models.py +++ b/tests/admin_changelist/models.py @@ -94,7 +94,7 @@ class UnorderedObject(models.Model): class OrderedObjectManager(models.Manager): def get_queryset(self): - return super(OrderedObjectManager, self).get_queryset().order_by('number') + return super().get_queryset().order_by('number') class OrderedObject(models.Model): diff --git a/tests/admin_checks/tests.py b/tests/admin_checks/tests.py index e8714fe1a8..e081caeca1 100644 --- a/tests/admin_checks/tests.py +++ b/tests/admin_checks/tests.py @@ -106,7 +106,7 @@ class SystemChecksTestCase(SimpleTestCase): def test_allows_checks_relying_on_other_modeladmins(self): class MyBookAdmin(admin.ModelAdmin): def check(self, **kwargs): - errors = super(MyBookAdmin, self).check(**kwargs) + errors = super().check(**kwargs) author_admin = self.admin_site._registry.get(Author) if author_admin is None: errors.append('AuthorAdmin missing!') diff --git a/tests/admin_custom_urls/models.py b/tests/admin_custom_urls/models.py index 840d9b9f38..1fc30ec18c 100644 --- a/tests/admin_custom_urls/models.py +++ b/tests/admin_custom_urls/models.py @@ -28,7 +28,7 @@ class ActionAdmin(admin.ModelAdmin): Remove all entries named 'name' from the ModelAdmin instance URL patterns list """ - return [url for url in super(ActionAdmin, self).get_urls() if url.name != name] + return [url for url in super().get_urls() if url.name != name] def get_urls(self): # Add the URL of our custom 'add_view' view to the front of the URLs @@ -71,8 +71,10 @@ class Car(models.Model): class CarAdmin(admin.ModelAdmin): def response_add(self, request, obj, post_url_continue=None): - return super(CarAdmin, self).response_add( - request, obj, post_url_continue=reverse('admin:admin_custom_urls_car_history', args=[obj.pk])) + return super().response_add( + request, obj, + post_url_continue=reverse('admin:admin_custom_urls_car_history', args=[obj.pk]), + ) site = admin.AdminSite(name='admin_custom_urls') diff --git a/tests/admin_filters/tests.py b/tests/admin_filters/tests.py index 4dc6c3365a..3f2f33bf3c 100644 --- a/tests/admin_filters/tests.py +++ b/tests/admin_filters/tests.py @@ -168,12 +168,12 @@ class BookAdminWithCustomQueryset(ModelAdmin): def __init__(self, user, *args, **kwargs): self.user = user - super(BookAdminWithCustomQueryset, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) list_filter = ('year',) def get_queryset(self, request): - return super(BookAdminWithCustomQueryset, self).get_queryset(request).filter(author=self.user) + return super().get_queryset(request).filter(author=self.user) class BookAdminRelatedOnlyFilter(ModelAdmin): diff --git a/tests/admin_inlines/admin.py b/tests/admin_inlines/admin.py index c3bc8d7698..f9e50d1b91 100644 --- a/tests/admin_inlines/admin.py +++ b/tests/admin_inlines/admin.py @@ -193,7 +193,7 @@ class SomeChildModelForm(forms.ModelForm): } def __init__(self, *args, **kwargs): - super(SomeChildModelForm, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.fields['name'].label = 'new label' diff --git a/tests/admin_inlines/models.py b/tests/admin_inlines/models.py index 31e692b60e..2c2601961e 100644 --- a/tests/admin_inlines/models.py +++ b/tests/admin_inlines/models.py @@ -53,7 +53,7 @@ class NonAutoPKBook(models.Model): test_pk = random.randint(1, 99999) if not NonAutoPKBook.objects.filter(rand_pk=test_pk).exists(): self.rand_pk = test_pk - super(NonAutoPKBook, self).save(*args, **kwargs) + super().save(*args, **kwargs) class EditablePKBook(models.Model): diff --git a/tests/admin_ordering/tests.py b/tests/admin_ordering/tests.py index 77597d0fb5..0398616d2e 100644 --- a/tests/admin_ordering/tests.py +++ b/tests/admin_ordering/tests.py @@ -161,12 +161,12 @@ class TestRelatedFieldsAdminOrdering(TestCase): def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == 'band': kwargs["queryset"] = Band.objects.filter(rank__gt=2) - return super(SongAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) + return super().formfield_for_foreignkey(db_field, request, **kwargs) def formfield_for_manytomany(self, db_field, request, **kwargs): if db_field.name == 'other_interpreters': kwargs["queryset"] = Band.objects.filter(rank__gt=2) - return super(SongAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) + return super().formfield_for_foreignkey(db_field, request, **kwargs) class StaticOrderingBandAdmin(admin.ModelAdmin): ordering = ('rank',) diff --git a/tests/admin_scripts/management/commands/custom_startproject.py b/tests/admin_scripts/management/commands/custom_startproject.py index 3fa19d98cc..b258e4b80d 100644 --- a/tests/admin_scripts/management/commands/custom_startproject.py +++ b/tests/admin_scripts/management/commands/custom_startproject.py @@ -3,5 +3,5 @@ from django.core.management.commands.startproject import Command as BaseCommand class Command(BaseCommand): def add_arguments(self, parser): - super(Command, self).add_arguments(parser) + super().add_arguments(parser) parser.add_argument('--extra', help='An arbitrary extra value passed to the context') diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py index 88a0260358..ad7d9ef742 100644 --- a/tests/admin_scripts/tests.py +++ b/tests/admin_scripts/tests.py @@ -38,7 +38,7 @@ class AdminScriptTestCase(unittest.TestCase): @classmethod def setUpClass(cls): - super(AdminScriptTestCase, cls).setUpClass() + super().setUpClass() cls.test_dir = os.path.realpath(os.path.join( tempfile.gettempdir(), cls.__name__, @@ -52,7 +52,7 @@ class AdminScriptTestCase(unittest.TestCase): @classmethod def tearDownClass(cls): shutil.rmtree(cls.test_dir) - super(AdminScriptTestCase, cls).tearDownClass() + super().tearDownClass() def write_settings(self, filename, apps=None, is_dir=False, sdict=None, extra=None): if is_dir: diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py index 3a5f750309..1827039266 100644 --- a/tests/admin_views/admin.py +++ b/tests/admin_views/admin.py @@ -107,11 +107,7 @@ class ArticleAdmin(admin.ModelAdmin): ) def changelist_view(self, request): - return super(ArticleAdmin, self).changelist_view( - request, extra_context={ - 'extra_var': 'Hello!' - } - ) + return super().changelist_view(request, extra_context={'extra_var': 'Hello!'}) def modeladmin_year(self, obj): return obj.date.year @@ -125,7 +121,7 @@ class ArticleAdmin(admin.ModelAdmin): 'from@example.com', ['to@example.com'] ).send() - return super(ArticleAdmin, self).delete_model(request, obj) + return super().delete_model(request, obj) def save_model(self, request, obj, form, change=True): EmailMessage( @@ -134,7 +130,7 @@ class ArticleAdmin(admin.ModelAdmin): 'from@example.com', ['to@example.com'] ).send() - return super(ArticleAdmin, self).save_model(request, obj, form, change) + return super().save_model(request, obj, form, change) class ArticleAdmin2(admin.ModelAdmin): @@ -162,11 +158,7 @@ class CustomArticleAdmin(admin.ModelAdmin): popup_response_template = 'custom_admin/popup_response.html' def changelist_view(self, request): - return super(CustomArticleAdmin, self).changelist_view( - request, extra_context={ - 'extra_var': 'Hello!' - } - ) + return super().changelist_view(request, extra_context={'extra_var': 'Hello!'}) class ThingAdmin(admin.ModelAdmin): @@ -207,12 +199,12 @@ class PersonAdmin(admin.ModelAdmin): save_as = True def get_changelist_formset(self, request, **kwargs): - return super(PersonAdmin, self).get_changelist_formset(request, formset=BasePersonModelFormSet, **kwargs) + return super().get_changelist_formset(request, formset=BasePersonModelFormSet, **kwargs) def get_queryset(self, request): # Order by a field that isn't in list display, to be able to test # whether ordering is preserved. - return super(PersonAdmin, self).get_queryset(request).order_by('age') + return super().get_queryset(request).order_by('age') class FooAccountAdmin(admin.StackedInline): @@ -312,7 +304,7 @@ class ParentAdmin(admin.ModelAdmin): list_editable = ('name',) def save_related(self, request, form, formsets, change): - super(ParentAdmin, self).save_related(request, form, formsets, change) + super().save_related(request, form, formsets, change) first_name, last_name = form.instance.name.split() for child in form.instance.child_set.all(): if len(child.name.split()) < 2: @@ -322,7 +314,7 @@ class ParentAdmin(admin.ModelAdmin): class EmptyModelAdmin(admin.ModelAdmin): def get_queryset(self, request): - return super(EmptyModelAdmin, self).get_queryset(request).filter(pk__gt=1) + return super().get_queryset(request).filter(pk__gt=1) class OldSubscriberAdmin(admin.ModelAdmin): @@ -521,7 +513,7 @@ class CoverLetterAdmin(admin.ModelAdmin): """ def get_queryset(self, request): - return super(CoverLetterAdmin, self).get_queryset(request).defer('date_written') + return super().get_queryset(request).defer('date_written') class PaperAdmin(admin.ModelAdmin): @@ -533,7 +525,7 @@ class PaperAdmin(admin.ModelAdmin): """ def get_queryset(self, request): - return super(PaperAdmin, self).get_queryset(request).only('title') + return super().get_queryset(request).only('title') class ShortMessageAdmin(admin.ModelAdmin): @@ -545,7 +537,7 @@ class ShortMessageAdmin(admin.ModelAdmin): """ def get_queryset(self, request): - return super(ShortMessageAdmin, self).get_queryset(request).defer('timestamp') + return super().get_queryset(request).defer('timestamp') class TelegramAdmin(admin.ModelAdmin): @@ -557,7 +549,7 @@ class TelegramAdmin(admin.ModelAdmin): """ def get_queryset(self, request): - return super(TelegramAdmin, self).get_queryset(request).only('title') + return super().get_queryset(request).only('title') class StoryForm(forms.ModelForm): @@ -594,9 +586,7 @@ class PluggableSearchPersonAdmin(admin.ModelAdmin): search_fields = ('name',) def get_search_results(self, request, queryset, search_term): - queryset, use_distinct = super(PluggableSearchPersonAdmin, self).get_search_results( - request, queryset, search_term - ) + queryset, use_distinct = super().get_search_results(request, queryset, search_term) try: search_term_as_int = int(search_term) except ValueError: @@ -713,13 +703,13 @@ class UnorderedObjectAdmin(admin.ModelAdmin): class UndeletableObjectAdmin(admin.ModelAdmin): def change_view(self, *args, **kwargs): kwargs['extra_context'] = {'show_delete': False} - return super(UndeletableObjectAdmin, self).change_view(*args, **kwargs) + return super().change_view(*args, **kwargs) class UnchangeableObjectAdmin(admin.ModelAdmin): def get_urls(self): # Disable change_view, but leave other urls untouched - urlpatterns = super(UnchangeableObjectAdmin, self).get_urls() + urlpatterns = super().get_urls() return [p for p in urlpatterns if p.name and not p.name.endswith("_change")] @@ -775,7 +765,7 @@ class DependentChildAdminForm(forms.ModelForm): if parent.family_name and parent.family_name != self.cleaned_data.get('family_name'): raise ValidationError("Children must share a family name with their parents " + "in this contrived test case") - return super(DependentChildAdminForm, self).clean() + return super().clean() class DependentChildInline(admin.TabularInline): @@ -883,18 +873,18 @@ class GetFormsetsArgumentCheckingAdmin(admin.ModelAdmin): def add_view(self, request, *args, **kwargs): request.is_add_view = True - return super(GetFormsetsArgumentCheckingAdmin, self).add_view(request, *args, **kwargs) + return super().add_view(request, *args, **kwargs) def change_view(self, request, *args, **kwargs): request.is_add_view = False - return super(GetFormsetsArgumentCheckingAdmin, self).change_view(request, *args, **kwargs) + return super().change_view(request, *args, **kwargs) def get_formsets_with_inlines(self, request, obj=None): if request.is_add_view and obj is not None: raise Exception("'obj' passed to get_formsets_with_inlines wasn't None during add_view") if not request.is_add_view and obj is None: raise Exception("'obj' passed to get_formsets_with_inlines was None during change_view") - return super(GetFormsetsArgumentCheckingAdmin, self).get_formsets_with_inlines(request, obj) + return super().get_formsets_with_inlines(request, obj) site = admin.AdminSite(name="admin") diff --git a/tests/admin_views/customadmin.py b/tests/admin_views/customadmin.py index 5eb1f2baa2..2fbbb78595 100644 --- a/tests/admin_views/customadmin.py +++ b/tests/admin_views/customadmin.py @@ -21,24 +21,24 @@ class Admin2(admin.AdminSite): # A custom index view. def index(self, request, extra_context=None): - return super(Admin2, self).index(request, {'foo': '*bar*'}) + return super().index(request, {'foo': '*bar*'}) def get_urls(self): return [ url(r'^my_view/$', self.admin_view(self.my_view), name='my_view'), - ] + super(Admin2, self).get_urls() + ] + super().get_urls() def my_view(self, request): return HttpResponse("Django is a magical pony!") def password_change(self, request, extra_context=None): - return super(Admin2, self).password_change(request, {'spam': 'eggs'}) + return super().password_change(request, {'spam': 'eggs'}) class UserLimitedAdmin(UserAdmin): # used for testing password change on a user not in queryset def get_queryset(self, request): - qs = super(UserLimitedAdmin, self).get_queryset(request) + qs = super().get_queryset(request) return qs.filter(is_superuser=False) diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py index 89373f6ed3..4364260ef7 100644 --- a/tests/admin_views/models.py +++ b/tests/admin_views/models.py @@ -805,7 +805,7 @@ class DependentChild(models.Model): class _Manager(models.Manager): def get_queryset(self): - return super(_Manager, self).get_queryset().filter(pk__gt=1) + return super().get_queryset().filter(pk__gt=1) class FilteredManager(models.Model): diff --git a/tests/admin_widgets/models.py b/tests/admin_widgets/models.py index fcc86ddeb8..422f8b0286 100644 --- a/tests/admin_widgets/models.py +++ b/tests/admin_widgets/models.py @@ -37,7 +37,7 @@ class Album(models.Model): class HiddenInventoryManager(models.Manager): def get_queryset(self): - return super(HiddenInventoryManager, self).get_queryset().filter(hidden=False) + return super().get_queryset().filter(hidden=False) class Inventory(models.Model): diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py index b9462498cc..b0ec18968e 100644 --- a/tests/admin_widgets/tests.py +++ b/tests/admin_widgets/tests.py @@ -407,7 +407,7 @@ class AdminFileWidgetTests(TestDataMixin, TestCase): @classmethod def setUpTestData(cls): - super(AdminFileWidgetTests, cls).setUpTestData() + super().setUpTestData() band = Band.objects.create(name='Linkin Park') cls.album = band.album_set.create( name='Hybrid Theory', cover_art=r'albums\hybrid_theory.jpg' @@ -854,7 +854,7 @@ class DateTimePickerAltTimezoneSeleniumTests(DateTimePickerShortcutsSeleniumTest class HorizontalVerticalFilterSeleniumTests(AdminWidgetSeleniumTestCase): def setUp(self): - super(HorizontalVerticalFilterSeleniumTests, self).setUp() + super().setUp() self.lisa = Student.objects.create(name='Lisa') self.john = Student.objects.create(name='John') self.bob = Student.objects.create(name='Bob') @@ -1171,7 +1171,7 @@ class HorizontalVerticalFilterSeleniumTests(AdminWidgetSeleniumTestCase): class AdminRawIdWidgetSeleniumTests(AdminWidgetSeleniumTestCase): def setUp(self): - super(AdminRawIdWidgetSeleniumTests, self).setUp() + super().setUp() Band.objects.create(id=42, name='Bogey Blues') Band.objects.create(id=98, name='Green Potatoes') diff --git a/tests/admin_widgets/widgetadmin.py b/tests/admin_widgets/widgetadmin.py index a03e044b9d..a471a362fb 100644 --- a/tests/admin_widgets/widgetadmin.py +++ b/tests/admin_widgets/widgetadmin.py @@ -20,7 +20,7 @@ class CarTireAdmin(admin.ModelAdmin): if db_field.name == "car": kwargs["queryset"] = Car.objects.filter(owner=request.user) return db_field.formfield(**kwargs) - return super(CarTireAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) + return super().formfield_for_foreignkey(db_field, request, **kwargs) class EventAdmin(admin.ModelAdmin): diff --git a/tests/aggregation/tests.py b/tests/aggregation/tests.py index 25a1e00827..8178cb8bcc 100644 --- a/tests/aggregation/tests.py +++ b/tests/aggregation/tests.py @@ -1088,7 +1088,7 @@ class AggregateTestCase(TestCase): class MyMax(Max): def as_sql(self, compiler, connection): self.set_source_expressions(self.get_source_expressions()[0:1]) - return super(MyMax, self).as_sql(compiler, connection) + return super().as_sql(compiler, connection) with self.assertRaisesMessage(FieldError, "Cannot compute Max('id__max'): 'id__max' is an aggregate"): Book.objects.annotate(Max('id')).annotate(my_max=MyMax('id__max', 'price')) @@ -1097,7 +1097,7 @@ class AggregateTestCase(TestCase): class MyMax(Max): def as_sql(self, compiler, connection): self.set_source_expressions(self.get_source_expressions()[0:1]) - return super(MyMax, self).as_sql(compiler, connection) + return super().as_sql(compiler, connection) with self.assertRaisesMessage(TypeError, 'Complex aggregates require an alias'): Book.objects.aggregate(MyMax('pages', 'price')) @@ -1172,7 +1172,7 @@ class AggregateTestCase(TestCase): function = 'GREATEST' def as_sqlite(self, compiler, connection): - return super(Greatest, self).as_sql(compiler, connection, function='MAX') + return super().as_sql(compiler, connection, function='MAX') qs = Publisher.objects.annotate( price_or_median=Greatest(Avg('book__rating'), Avg('book__price')) diff --git a/tests/auth_tests/client.py b/tests/auth_tests/client.py index 004101108b..8f09f115cd 100644 --- a/tests/auth_tests/client.py +++ b/tests/auth_tests/client.py @@ -34,8 +34,8 @@ class PasswordResetConfirmClient(Client): def get(self, path, *args, **kwargs): redirect_url = self._get_password_reset_confirm_redirect_url(path) - return super(PasswordResetConfirmClient, self).get(redirect_url, *args, **kwargs) + return super().get(redirect_url, *args, **kwargs) def post(self, path, *args, **kwargs): redirect_url = self._get_password_reset_confirm_redirect_url(path) - return super(PasswordResetConfirmClient, self).post(redirect_url, *args, **kwargs) + return super().post(redirect_url, *args, **kwargs) diff --git a/tests/auth_tests/test_auth_backends.py b/tests/auth_tests/test_auth_backends.py index 3d929698c9..0c516dda34 100644 --- a/tests/auth_tests/test_auth_backends.py +++ b/tests/auth_tests/test_auth_backends.py @@ -27,7 +27,7 @@ class CountingMD5PasswordHasher(MD5PasswordHasher): def encode(self, *args, **kwargs): type(self).calls += 1 - return super(CountingMD5PasswordHasher, self).encode(*args, **kwargs) + return super().encode(*args, **kwargs) class BaseModelBackendTest: diff --git a/tests/auth_tests/test_deprecated_views.py b/tests/auth_tests/test_deprecated_views.py index 285638027e..ba43140ebe 100644 --- a/tests/auth_tests/test_deprecated_views.py +++ b/tests/auth_tests/test_deprecated_views.py @@ -332,7 +332,7 @@ class UUIDUserPasswordResetTest(CustomUserPasswordResetTest): username='foo', password='foo', ) - return super(UUIDUserPasswordResetTest, self)._test_confirm_start() + return super()._test_confirm_start() @ignore_warnings(category=RemovedInDjango21Warning) diff --git a/tests/auth_tests/test_forms.py b/tests/auth_tests/test_forms.py index abd5b0f8df..24343ea5f5 100644 --- a/tests/auth_tests/test_forms.py +++ b/tests/auth_tests/test_forms.py @@ -564,7 +564,7 @@ class UserChangeFormTest(TestDataMixin, TestCase): class MyUserForm(UserChangeForm): def __init__(self, *args, **kwargs): - super(MyUserForm, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.fields['groups'].help_text = 'These groups give users different permissions' class Meta(UserChangeForm.Meta): @@ -645,7 +645,7 @@ class PasswordResetFormTest(TestDataMixin, TestCase): @classmethod def setUpClass(cls): - super(PasswordResetFormTest, cls).setUpClass() + super().setUpClass() # This cleanup is necessary because contrib.sites cache # makes tests interfere with each other, see #11505 Site.objects.clear_cache() diff --git a/tests/auth_tests/test_remote_user.py b/tests/auth_tests/test_remote_user.py index e03e0a3b95..2a1ebbb569 100644 --- a/tests/auth_tests/test_remote_user.py +++ b/tests/auth_tests/test_remote_user.py @@ -218,7 +218,7 @@ class RemoteUserCustomTest(RemoteUserTest): The strings passed in REMOTE_USER should be cleaned and the known users should not have been configured with an email address. """ - super(RemoteUserCustomTest, self).test_known_user() + super().test_known_user() self.assertEqual(User.objects.get(username='knownuser').email, '') self.assertEqual(User.objects.get(username='knownuser2').email, '') @@ -226,7 +226,7 @@ class RemoteUserCustomTest(RemoteUserTest): """ The unknown user created should be configured with an email address. """ - super(RemoteUserCustomTest, self).test_unknown_user() + super().test_unknown_user() newuser = User.objects.get(username='newuser') self.assertEqual(newuser.email, 'user@example.com') diff --git a/tests/auth_tests/test_views.py b/tests/auth_tests/test_views.py index 1e18e0c73b..76d167fa40 100644 --- a/tests/auth_tests/test_views.py +++ b/tests/auth_tests/test_views.py @@ -411,7 +411,7 @@ class UUIDUserPasswordResetTest(CustomUserPasswordResetTest): username='foo', password='foo', ) - return super(UUIDUserPasswordResetTest, self)._test_confirm_start() + return super()._test_confirm_start() class ChangePasswordTest(AuthViewsTestCase): diff --git a/tests/auth_tests/urls.py b/tests/auth_tests/urls.py index 35bdbbb3a8..392355f9b3 100644 --- a/tests/auth_tests/urls.py +++ b/tests/auth_tests/urls.py @@ -15,7 +15,7 @@ from django.views.decorators.cache import never_cache class CustomRequestAuthenticationForm(AuthenticationForm): def __init__(self, request, *args, **kwargs): assert isinstance(request, HttpRequest) - super(CustomRequestAuthenticationForm, self).__init__(request, *args, **kwargs) + super().__init__(request, *args, **kwargs) @never_cache diff --git a/tests/auth_tests/urls_custom_user_admin.py b/tests/auth_tests/urls_custom_user_admin.py index 94039dfa57..59b80d04d7 100644 --- a/tests/auth_tests/urls_custom_user_admin.py +++ b/tests/auth_tests/urls_custom_user_admin.py @@ -12,7 +12,7 @@ class CustomUserAdmin(UserAdmin): # integer manually to avoid causing an error. original_pk = request.user.pk request.user.pk = 1 - super(CustomUserAdmin, self).log_change(request, object, message) + super().log_change(request, object, message) request.user.pk = original_pk diff --git a/tests/basic/tests.py b/tests/basic/tests.py index 544a862766..571088da40 100644 --- a/tests/basic/tests.py +++ b/tests/basic/tests.py @@ -641,7 +641,7 @@ class SelectOnSaveTests(TestCase): def _update(self, *args, **kwargs): FakeQuerySet.called = True - super(FakeQuerySet, self)._update(*args, **kwargs) + super()._update(*args, **kwargs) return 0 try: diff --git a/tests/builtin_server/tests.py b/tests/builtin_server/tests.py index a294339f85..73e3d0c07e 100644 --- a/tests/builtin_server/tests.py +++ b/tests/builtin_server/tests.py @@ -34,7 +34,7 @@ class ServerHandler(simple_server.ServerHandler): self._flush() def error_output(self, environ, start_response): - super(ServerHandler, self).error_output(environ, start_response) + super().error_output(environ, start_response) return ['\n'.join(traceback.format_exception(*sys.exc_info()))] @@ -45,7 +45,7 @@ class DummyHandler: class FileWrapperHandler(ServerHandler): def __init__(self, *args, **kwargs): - super(FileWrapperHandler, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.request_handler = DummyHandler() self._used_sendfile = False @@ -97,13 +97,13 @@ class WriteChunkCounterHandler(ServerHandler): """ def __init__(self, *args, **kwargs): - super(WriteChunkCounterHandler, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.request_handler = DummyHandler() self.headers_written = False self.write_chunk_counter = 0 def send_headers(self): - super(WriteChunkCounterHandler, self).send_headers() + super().send_headers() self.headers_written = True def _write(self, data): diff --git a/tests/cache/tests.py b/tests/cache/tests.py index 7c61837ab0..d519080c9a 100644 --- a/tests/cache/tests.py +++ b/tests/cache/tests.py @@ -949,12 +949,12 @@ class DBCacheTests(BaseCacheTests, TransactionTestCase): def setUp(self): # The super calls needs to happen first for the settings override. - super(DBCacheTests, self).setUp() + super().setUp() self.create_table() def tearDown(self): # The super call needs to happen first because it uses the database. - super(DBCacheTests, self).tearDown() + super().tearDown() self.drop_table() def create_table(self): @@ -1074,7 +1074,7 @@ class PicklingSideEffect: class LocMemCacheTests(BaseCacheTests, TestCase): def setUp(self): - super(LocMemCacheTests, self).setUp() + super().setUp() # LocMem requires a hack to make the other caches # share a data store with the 'normal' cache. @@ -1321,7 +1321,7 @@ class FileBasedCacheTests(BaseCacheTests, TestCase): """ def setUp(self): - super(FileBasedCacheTests, self).setUp() + super().setUp() self.dirname = tempfile.mkdtemp() # Caches location cannot be modified through override_settings / modify_settings, # hence settings are manipulated directly here and the setting_changed signal @@ -1331,7 +1331,7 @@ class FileBasedCacheTests(BaseCacheTests, TestCase): setting_changed.send(self.__class__, setting='CACHES', enter=False) def tearDown(self): - super(FileBasedCacheTests, self).tearDown() + super().tearDown() # Call parent first, as cache.clear() may recreate cache base directory shutil.rmtree(self.dirname) @@ -1962,7 +1962,7 @@ def csrf_view(request): class CacheMiddlewareTest(SimpleTestCase): def setUp(self): - super(CacheMiddlewareTest, self).setUp() + super().setUp() self.factory = RequestFactory() self.default_cache = caches['default'] self.other_cache = caches['other'] @@ -1970,7 +1970,7 @@ class CacheMiddlewareTest(SimpleTestCase): def tearDown(self): self.default_cache.clear() self.other_cache.clear() - super(CacheMiddlewareTest, self).tearDown() + super().tearDown() def test_constructor(self): """ diff --git a/tests/check_framework/test_templates.py b/tests/check_framework/test_templates.py index 918e0fcbdf..494dab0192 100644 --- a/tests/check_framework/test_templates.py +++ b/tests/check_framework/test_templates.py @@ -59,7 +59,7 @@ class CheckTemplateStringIfInvalidTest(SimpleTestCase): @classmethod def setUpClass(cls): - super(CheckTemplateStringIfInvalidTest, cls).setUpClass() + super().setUpClass() cls.error1 = copy(E002) cls.error2 = copy(E002) string_if_invalid1 = cls.TEMPLATES_STRING_IF_INVALID[0]['OPTIONS']['string_if_invalid'] diff --git a/tests/csrf_tests/tests.py b/tests/csrf_tests/tests.py index f68b0f037b..3531939a73 100644 --- a/tests/csrf_tests/tests.py +++ b/tests/csrf_tests/tests.py @@ -27,7 +27,7 @@ class TestingHttpRequest(HttpRequest): more easily """ def __init__(self): - super(TestingHttpRequest, self).__init__() + super().__init__() # A real session backend isn't needed. self.session = {} @@ -432,7 +432,7 @@ class CsrfViewMiddlewareTestMixin: HttpRequest that can raise an IOError when accessing POST data """ def __init__(self, token, raise_error): - super(CsrfPostRequest, self).__init__() + super().__init__() self.method = 'POST' self.raise_error = False diff --git a/tests/custom_lookups/tests.py b/tests/custom_lookups/tests.py index 7b8cca6646..4a477b4687 100644 --- a/tests/custom_lookups/tests.py +++ b/tests/custom_lookups/tests.py @@ -145,13 +145,13 @@ class SQLFuncMixin: class SQLFuncLookup(SQLFuncMixin, models.Lookup): def __init__(self, name, *args, **kwargs): - super(SQLFuncLookup, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.name = name class SQLFuncTransform(SQLFuncMixin, models.Transform): def __init__(self, name, *args, **kwargs): - super(SQLFuncTransform, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.name = name @@ -173,13 +173,13 @@ class CustomField(models.TextField): if lookup_name.startswith('lookupfunc_'): key, name = lookup_name.split('_', 1) return SQLFuncFactory(key, name) - return super(CustomField, self).get_lookup(lookup_name) + return super().get_lookup(lookup_name) def get_transform(self, lookup_name): if lookup_name.startswith('transformfunc_'): key, name = lookup_name.split('_', 1) return SQLFuncFactory(key, name) - return super(CustomField, self).get_transform(lookup_name) + return super().get_transform(lookup_name) class CustomModel(models.Model): @@ -490,11 +490,11 @@ class TrackCallsYearTransform(YearTransform): def get_lookup(self, lookup_name): self.call_order.append('lookup') - return super(TrackCallsYearTransform, self).get_lookup(lookup_name) + return super().get_lookup(lookup_name) def get_transform(self, lookup_name): self.call_order.append('transform') - return super(TrackCallsYearTransform, self).get_transform(lookup_name) + return super().get_transform(lookup_name) class LookupTransformCallOrderTests(TestCase): diff --git a/tests/custom_managers/models.py b/tests/custom_managers/models.py index c5f224ea51..f90425db3c 100644 --- a/tests/custom_managers/models.py +++ b/tests/custom_managers/models.py @@ -22,12 +22,12 @@ class PersonManager(models.Manager): class PublishedBookManager(models.Manager): def get_queryset(self): - return super(PublishedBookManager, self).get_queryset().filter(is_published=True) + return super().get_queryset().filter(is_published=True) class CustomQuerySet(models.QuerySet): def filter(self, *args, **kwargs): - queryset = super(CustomQuerySet, self).filter(fun=True) + queryset = super().filter(fun=True) queryset._filter_CustomQuerySet = True return queryset @@ -48,11 +48,11 @@ class CustomQuerySet(models.QuerySet): class BaseCustomManager(models.Manager): def __init__(self, arg): - super(BaseCustomManager, self).__init__() + super().__init__() self.init_arg = arg def filter(self, *args, **kwargs): - queryset = super(BaseCustomManager, self).filter(fun=True) + queryset = super().filter(fun=True) queryset._filter_CustomManager = True return queryset @@ -66,23 +66,23 @@ CustomManager = BaseCustomManager.from_queryset(CustomQuerySet) class CustomInitQuerySet(models.QuerySet): # QuerySet with an __init__() method that takes an additional argument. def __init__(self, custom_optional_arg=None, model=None, query=None, using=None, hints=None): - super(CustomInitQuerySet, self).__init__(model=model, query=query, using=using, hints=hints) + super().__init__(model=model, query=query, using=using, hints=hints) class DeconstructibleCustomManager(BaseCustomManager.from_queryset(CustomQuerySet)): def __init__(self, a, b, c=1, d=2): - super(DeconstructibleCustomManager, self).__init__(a) + super().__init__(a) class FunPeopleManager(models.Manager): def get_queryset(self): - return super(FunPeopleManager, self).get_queryset().filter(fun=True) + return super().get_queryset().filter(fun=True) class BoringPeopleManager(models.Manager): def get_queryset(self): - return super(BoringPeopleManager, self).get_queryset().filter(fun=False) + return super().get_queryset().filter(fun=False) class Person(models.Model): @@ -151,7 +151,7 @@ class Book(models.Model): class FastCarManager(models.Manager): def get_queryset(self): - return super(FastCarManager, self).get_queryset().filter(top_speed__gt=150) + return super().get_queryset().filter(top_speed__gt=150) class Car(models.Model): @@ -179,7 +179,7 @@ class FastCarAsDefault(Car): class RestrictedManager(models.Manager): def get_queryset(self): - return super(RestrictedManager, self).get_queryset().filter(is_public=True) + return super().get_queryset().filter(is_public=True) class RelatedModel(models.Model): diff --git a/tests/custom_pk/fields.py b/tests/custom_pk/fields.py index 2be2288ed8..78bb463fce 100644 --- a/tests/custom_pk/fields.py +++ b/tests/custom_pk/fields.py @@ -24,7 +24,7 @@ class MyAutoField(models.CharField): def __init__(self, *args, **kwargs): kwargs['max_length'] = 10 - super(MyAutoField, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) def pre_save(self, instance, add): value = getattr(instance, self.attname, None) diff --git a/tests/defer/models.py b/tests/defer/models.py index dbdce0b025..fc14f43393 100644 --- a/tests/defer/models.py +++ b/tests/defer/models.py @@ -43,4 +43,4 @@ class RefreshPrimaryProxy(Primary): deferred_fields = self.get_deferred_fields() if fields.intersection(deferred_fields): fields = fields.union(deferred_fields) - super(RefreshPrimaryProxy, self).refresh_from_db(using, fields, **kwargs) + super().refresh_from_db(using, fields, **kwargs) diff --git a/tests/deprecation/tests.py b/tests/deprecation/tests.py index 1afd52f943..ef0284b378 100644 --- a/tests/deprecation/tests.py +++ b/tests/deprecation/tests.py @@ -85,7 +85,7 @@ class RenameMethodsTests(SimpleTestCase): class Deprecated(Renamed): def old(self): - super(Deprecated, self).old() + super().old() warnings.simplefilter('always') deprecated = Deprecated() deprecated.new() @@ -115,7 +115,7 @@ class RenameMethodsTests(SimpleTestCase): class Renamed(Deprecated): def new(self): - super(Renamed, self).new() + super().new() warnings.simplefilter('always') renamed = Renamed() renamed.new() @@ -140,11 +140,11 @@ class RenameMethodsTests(SimpleTestCase): class RenamedMixin: def new(self): - super(RenamedMixin, self).new() + super().new() class DeprecatedMixin: def old(self): - super(DeprecatedMixin, self).old() + super().old() class Deprecated(DeprecatedMixin, RenamedMixin, Renamed): pass diff --git a/tests/extra_regress/models.py b/tests/extra_regress/models.py index 1a5c2dedeb..b069affccd 100644 --- a/tests/extra_regress/models.py +++ b/tests/extra_regress/models.py @@ -14,12 +14,12 @@ class RevisionableModel(models.Model): return "%s (%s, %s)" % (self.title, self.id, self.base.id) def save(self, *args, **kwargs): - super(RevisionableModel, self).save(*args, **kwargs) + super().save(*args, **kwargs) if not self.base: self.base = self kwargs.pop('force_insert', None) kwargs.pop('force_update', None) - super(RevisionableModel, self).save(*args, **kwargs) + super().save(*args, **kwargs) def new_revision(self): new_revision = copy.copy(self) diff --git a/tests/file_storage/tests.py b/tests/file_storage/tests.py index ba77622067..baa6098b09 100644 --- a/tests/file_storage/tests.py +++ b/tests/file_storage/tests.py @@ -564,7 +564,7 @@ class CustomStorageTests(FileStorageTests): class DiscardingFalseContentStorage(FileSystemStorage): def _save(self, name, content): if content: - return super(DiscardingFalseContentStorage, self)._save(name, content) + return super()._save(name, content) return '' @@ -804,7 +804,7 @@ class FileFieldStorageTests(TestCase): class SlowFile(ContentFile): def chunks(self): time.sleep(1) - return super(ContentFile, self).chunks() + return super().chunks() class FileSaveRaceConditionTest(SimpleTestCase): diff --git a/tests/file_uploads/tests.py b/tests/file_uploads/tests.py index 827083412e..44a7272753 100644 --- a/tests/file_uploads/tests.py +++ b/tests/file_uploads/tests.py @@ -28,14 +28,14 @@ class FileUploadTests(TestCase): @classmethod def setUpClass(cls): - super(FileUploadTests, cls).setUpClass() + super().setUpClass() if not os.path.isdir(MEDIA_ROOT): os.makedirs(MEDIA_ROOT) @classmethod def tearDownClass(cls): shutil.rmtree(MEDIA_ROOT) - super(FileUploadTests, cls).tearDownClass() + super().tearDownClass() def test_simple_upload(self): with open(__file__, 'rb') as fp: @@ -475,7 +475,7 @@ class FileUploadTests(TestCase): class POSTAccessingHandler(client.ClientHandler): """A handler that'll access POST during an exception.""" def handle_uncaught_exception(self, request, resolver, exc_info): - ret = super(POSTAccessingHandler, self).handle_uncaught_exception(request, resolver, exc_info) + ret = super().handle_uncaught_exception(request, resolver, exc_info) request.POST # evaluate return ret @@ -546,14 +546,14 @@ class DirectoryCreationTests(SimpleTestCase): """ @classmethod def setUpClass(cls): - super(DirectoryCreationTests, cls).setUpClass() + super().setUpClass() if not os.path.isdir(MEDIA_ROOT): os.makedirs(MEDIA_ROOT) @classmethod def tearDownClass(cls): shutil.rmtree(MEDIA_ROOT) - super(DirectoryCreationTests, cls).tearDownClass() + super().tearDownClass() def setUp(self): self.obj = FileModel() diff --git a/tests/file_uploads/uploadhandler.py b/tests/file_uploads/uploadhandler.py index b69cc751cb..7c6199fd16 100644 --- a/tests/file_uploads/uploadhandler.py +++ b/tests/file_uploads/uploadhandler.py @@ -14,7 +14,7 @@ class QuotaUploadHandler(FileUploadHandler): QUOTA = 5 * 2 ** 20 # 5 MB def __init__(self, request=None): - super(QuotaUploadHandler, self).__init__(request) + super().__init__(request) self.total_upload = 0 def receive_data_chunk(self, raw_data, start): diff --git a/tests/fixtures/models.py b/tests/fixtures/models.py index b3ebb8fc5d..07ef1587d9 100644 --- a/tests/fixtures/models.py +++ b/tests/fixtures/models.py @@ -80,7 +80,7 @@ class Person(models.Model): class SpyManager(PersonManager): def get_queryset(self): - return super(SpyManager, self).get_queryset().filter(cover_blown=False) + return super().get_queryset().filter(cover_blown=False) class Spy(Person): diff --git a/tests/flatpages_tests/test_sitemaps.py b/tests/flatpages_tests/test_sitemaps.py index 10076798c0..62522b343e 100644 --- a/tests/flatpages_tests/test_sitemaps.py +++ b/tests/flatpages_tests/test_sitemaps.py @@ -17,7 +17,7 @@ class FlatpagesSitemapTests(TestCase): @classmethod def setUpClass(cls): - super(FlatpagesSitemapTests, cls).setUpClass() + super().setUpClass() # This cleanup is necessary because contrib.sites cache # makes tests interfere with each other, see #11505 Site.objects.clear_cache() diff --git a/tests/foreign_object/models/article.py b/tests/foreign_object/models/article.py index 940ec003fb..851029efa1 100644 --- a/tests/foreign_object/models/article.py +++ b/tests/foreign_object/models/article.py @@ -39,7 +39,7 @@ class ActiveTranslationField(models.ForeignObject): return {'lang': get_language()} def contribute_to_class(self, cls, name): - super(ActiveTranslationField, self).contribute_to_class(cls, name) + super().contribute_to_class(cls, name) setattr(cls, self.name, ArticleTranslationDescriptor(self)) diff --git a/tests/foreign_object/models/empty_join.py b/tests/foreign_object/models/empty_join.py index 5b58ffdafc..4ad1ad688b 100644 --- a/tests/foreign_object/models/empty_join.py +++ b/tests/foreign_object/models/empty_join.py @@ -36,7 +36,7 @@ class StartsWithRelation(models.ForeignObject): def __init__(self, *args, **kwargs): kwargs['on_delete'] = models.DO_NOTHING - super(StartsWithRelation, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) @property def field(self): @@ -64,7 +64,7 @@ class StartsWithRelation(models.ForeignObject): return [PathInfo(from_opts, to_opts, (to_opts.pk,), self.remote_field, False, False)] def contribute_to_class(self, cls, name, private_only=False): - super(StartsWithRelation, self).contribute_to_class(cls, name, private_only) + super().contribute_to_class(cls, name, private_only) setattr(cls, self.name, ReverseManyToOneDescriptor(self)) diff --git a/tests/forms_tests/field_tests/test_base.py b/tests/forms_tests/field_tests/test_base.py index 721c0a935a..4ddbea3414 100644 --- a/tests/forms_tests/field_tests/test_base.py +++ b/tests/forms_tests/field_tests/test_base.py @@ -12,11 +12,11 @@ class BasicFieldsTests(SimpleTestCase): class A: def __init__(self): self.class_a_var = True - super(A, self).__init__() + super().__init__() class ComplexField(Field, A): def __init__(self): - super(ComplexField, self).__init__() + super().__init__() f = ComplexField() self.assertTrue(f.class_a_var) diff --git a/tests/forms_tests/field_tests/test_multivaluefield.py b/tests/forms_tests/field_tests/test_multivaluefield.py index e7d161fb5b..1395be6cd0 100644 --- a/tests/forms_tests/field_tests/test_multivaluefield.py +++ b/tests/forms_tests/field_tests/test_multivaluefield.py @@ -17,7 +17,7 @@ class ComplexMultiWidget(MultiWidget): SelectMultiple(choices=beatles), SplitDateTimeWidget(), ) - super(ComplexMultiWidget, self).__init__(widgets, attrs) + super().__init__(widgets, attrs) def decompress(self, value): if value: @@ -40,7 +40,7 @@ class ComplexField(MultiValueField): MultipleChoiceField(choices=beatles), SplitDateTimeField(), ) - super(ComplexField, self).__init__(fields, required, widget, label, initial) + super().__init__(fields, required, widget, label, initial) def compress(self, data_list): if data_list: @@ -57,7 +57,7 @@ class MultiValueFieldTest(SimpleTestCase): @classmethod def setUpClass(cls): cls.field = ComplexField(widget=ComplexMultiWidget()) - super(MultiValueFieldTest, cls).setUpClass() + super().setUpClass() def test_clean(self): self.assertEqual( diff --git a/tests/forms_tests/tests/test_forms.py b/tests/forms_tests/tests/test_forms.py index 2a1ec44f66..19f1927824 100644 --- a/tests/forms_tests/tests/test_forms.py +++ b/tests/forms_tests/tests/test_forms.py @@ -1231,7 +1231,7 @@ value="Should escape < & > and <script>alert('xss')</ last_name = CharField() def __init__(self, *args, **kwargs): - super(Person, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.fields['birthday'] = DateField() p = Person(auto_id=False) @@ -1302,7 +1302,7 @@ value="Should escape < & > and <script>alert('xss')</ last_name = CharField(required=False) def __init__(self, names_required=False, *args, **kwargs): - super(Person, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) if names_required: self.fields['first_name'].required = True @@ -1329,7 +1329,7 @@ value="Should escape < & > and <script>alert('xss')</ last_name = CharField(max_length=30) def __init__(self, name_max_length=None, *args, **kwargs): - super(Person, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) if name_max_length: self.fields['first_name'].max_length = name_max_length @@ -1350,7 +1350,7 @@ value="Should escape < & > and <script>alert('xss')</ gender = ChoiceField(choices=(('f', 'Female'), ('m', 'Male'))) def __init__(self, allow_unspec_gender=False, *args, **kwargs): - super(Person, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) if allow_unspec_gender: self.fields['gender'].choices += (('u', 'Unspecified'),) @@ -1540,7 +1540,7 @@ value="Should escape < & > and <script>alert('xss')</ field_order = None def __init__(self, **kwargs): - super(TestFormInit, self).__init__(**kwargs) + super().__init__(**kwargs) self.order_fields(field_order=TestForm.field_order) p = TestFormParent() @@ -2818,7 +2818,7 @@ Good luck picking a username that doesn't already exist.</p> def __init__(self, fields=(), *args, **kwargs): fields = (CharField(label='First name', max_length=10), CharField(label='Last name', max_length=10)) - super(NameField, self).__init__(fields=fields, *args, **kwargs) + super().__init__(fields=fields, *args, **kwargs) def compress(self, data_list): return ' '.join(data_list) @@ -2849,7 +2849,7 @@ Good luck picking a username that doesn't already exist.</p> ChoiceField(label='Rank', choices=((1, 1), (2, 2))), CharField(label='Name', max_length=10), ) - super(ChoicesField, self).__init__(fields=fields, *args, **kwargs) + super().__init__(fields=fields, *args, **kwargs) field = ChoicesField() field2 = copy.deepcopy(field) @@ -2864,7 +2864,7 @@ Good luck picking a username that doesn't already exist.</p> class DateAgeField(MultiValueField): def __init__(self, fields=(), *args, **kwargs): fields = (DateField(label="Date"), IntegerField(label="Age")) - super(DateAgeField, self).__init__(fields=fields, *args, **kwargs) + super().__init__(fields=fields, *args, **kwargs) class DateAgeForm(Form): date_age = DateAgeField() @@ -2883,7 +2883,7 @@ Good luck picking a username that doesn't already exist.</p> CharField(label='Extension', error_messages={'incomplete': 'Enter an extension.'}), CharField(label='Label', required=False, help_text='E.g. home, work.'), ) - super(PhoneField, self).__init__(fields, *args, **kwargs) + super().__init__(fields, *args, **kwargs) def compress(self, data_list): if data_list: @@ -2964,7 +2964,7 @@ Good luck picking a username that doesn't already exist.</p> # Fake json.loads if value == '{}': return {} - return super(CustomJSONField, self).to_python(value) + return super().to_python(value) class JSONForm(forms.Form): json = CustomJSONField() diff --git a/tests/forms_tests/tests/test_formsets.py b/tests/forms_tests/tests/test_formsets.py index 3c3228fafc..26d9e15605 100644 --- a/tests/forms_tests/tests/test_formsets.py +++ b/tests/forms_tests/tests/test_formsets.py @@ -58,7 +58,7 @@ SplitDateTimeFormSet = formset_factory(SplitDateTimeForm) class CustomKwargForm(Form): def __init__(self, *args, **kwargs): self.custom_kwarg = kwargs.pop('custom_kwarg') - super(CustomKwargForm, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) class FormsFormsetTestCase(SimpleTestCase): @@ -1056,7 +1056,7 @@ class FormsFormsetTestCase(SimpleTestCase): return reversed(self.forms) def __getitem__(self, idx): - return super(BaseReverseFormSet, self).__getitem__(len(self) - idx - 1) + return super().__getitem__(len(self) - idx - 1) ReverseChoiceFormset = formset_factory(Choice, BaseReverseFormSet, extra=3) reverse_formset = ReverseChoiceFormset() @@ -1106,7 +1106,7 @@ class FormsFormsetTestCase(SimpleTestCase): class AnotherChoice(Choice): def is_valid(self): self.is_valid_called = True - return super(AnotherChoice, self).is_valid() + return super().is_valid() AnotherChoiceFormSet = formset_factory(AnotherChoice) data = { diff --git a/tests/forms_tests/tests/test_media.py b/tests/forms_tests/tests/test_media.py index 72db13ef21..488fe190b2 100644 --- a/tests/forms_tests/tests/test_media.py +++ b/tests/forms_tests/tests/test_media.py @@ -164,7 +164,7 @@ class FormsMediaTestCase(SimpleTestCase): # Media properties can reference the media of their parents class MyWidget5(MyWidget4): def _media(self): - return super(MyWidget5, self).media + Media(css={'all': ('/other/path',)}, js=('/other/js',)) + return super().media + Media(css={'all': ('/other/path',)}, js=('/other/js',)) media = property(_media) w5 = MyWidget5() @@ -185,7 +185,7 @@ class FormsMediaTestCase(SimpleTestCase): class MyWidget6(MyWidget1): def _media(self): - return super(MyWidget6, self).media + Media(css={'all': ('/other/path',)}, js=('/other/js',)) + return super().media + Media(css={'all': ('/other/path',)}, js=('/other/js',)) media = property(_media) w6 = MyWidget6() @@ -405,7 +405,7 @@ class FormsMediaTestCase(SimpleTestCase): class MyMultiWidget(MultiWidget): def __init__(self, attrs=None): widgets = [MyWidget1, MyWidget2, MyWidget3] - super(MyMultiWidget, self).__init__(widgets, attrs) + super().__init__(widgets, attrs) mymulti = MyMultiWidget() self.assertEqual( diff --git a/tests/forms_tests/widget_tests/base.py b/tests/forms_tests/widget_tests/base.py index 490f033bad..7222910479 100644 --- a/tests/forms_tests/widget_tests/base.py +++ b/tests/forms_tests/widget_tests/base.py @@ -15,7 +15,7 @@ class WidgetTest(SimpleTestCase): cls.django_renderer = DjangoTemplates() cls.jinja2_renderer = Jinja2() if jinja2 else None cls.renderers = [cls.django_renderer] + ([cls.jinja2_renderer] if cls.jinja2_renderer else []) - super(WidgetTest, cls).setUpClass() + super().setUpClass() def check_html(self, widget, name, value, html='', attrs=None, strict=False, **kwargs): assertEqual = self.assertEqual if strict else self.assertHTMLEqual diff --git a/tests/forms_tests/widget_tests/test_multiwidget.py b/tests/forms_tests/widget_tests/test_multiwidget.py index bf9ef38a6b..b19b5ce9cf 100644 --- a/tests/forms_tests/widget_tests/test_multiwidget.py +++ b/tests/forms_tests/widget_tests/test_multiwidget.py @@ -24,7 +24,7 @@ class ComplexMultiWidget(MultiWidget): SelectMultiple(choices=WidgetTest.beatles), SplitDateTimeWidget(), ) - super(ComplexMultiWidget, self).__init__(widgets, attrs) + super().__init__(widgets, attrs) def decompress(self, value): if value: @@ -45,9 +45,7 @@ class ComplexField(MultiValueField): MultipleChoiceField(choices=WidgetTest.beatles), SplitDateTimeField(), ) - super(ComplexField, self).__init__( - fields, required, widget, label, initial, - ) + super().__init__(fields, required, widget, label, initial) def compress(self, data_list): if data_list: @@ -66,7 +64,7 @@ class DeepCopyWidget(MultiWidget): RadioSelect(choices=choices), TextInput, ] - super(DeepCopyWidget, self).__init__(widgets) + super().__init__(widgets) def _set_choices(self, choices): """ diff --git a/tests/from_db_value/models.py b/tests/from_db_value/models.py index fae9565a02..2f2304ff0a 100644 --- a/tests/from_db_value/models.py +++ b/tests/from_db_value/models.py @@ -7,7 +7,7 @@ class Cash(decimal.Decimal): currency = 'USD' def __str__(self): - s = super(Cash, self).__str__(self) + s = super().__str__(self) return '%s %s' % (s, self.currency) @@ -15,7 +15,7 @@ class CashField(models.DecimalField): def __init__(self, **kwargs): kwargs['max_digits'] = 20 kwargs['decimal_places'] = 2 - super(CashField, self).__init__(**kwargs) + super().__init__(**kwargs) def from_db_value(self, value, expression, connection, context): cash = Cash(value) diff --git a/tests/generic_relations/models.py b/tests/generic_relations/models.py index a2f68ff05a..eec40e87a4 100644 --- a/tests/generic_relations/models.py +++ b/tests/generic_relations/models.py @@ -97,7 +97,7 @@ class Mineral(models.Model): class GeckoManager(models.Manager): def get_queryset(self): - return super(GeckoManager, self).get_queryset().filter(has_tail=True) + return super().get_queryset().filter(has_tail=True) class Gecko(models.Model): diff --git a/tests/generic_relations/tests.py b/tests/generic_relations/tests.py index 5bfea72cf1..08651adb0e 100644 --- a/tests/generic_relations/tests.py +++ b/tests/generic_relations/tests.py @@ -603,7 +603,7 @@ class GenericInlineFormsetTest(TestCase): class SaveTestForm(forms.ModelForm): def save(self, *args, **kwargs): self.instance.saved_by = "custom method" - return super(SaveTestForm, self).save(*args, **kwargs) + return super().save(*args, **kwargs) Formset = generic_inlineformset_factory(ForProxyModelModel, fields='__all__', form=SaveTestForm) diff --git a/tests/generic_relations_regress/models.py b/tests/generic_relations_regress/models.py index fae8aadaa5..6fca154f15 100644 --- a/tests/generic_relations_regress/models.py +++ b/tests/generic_relations_regress/models.py @@ -138,7 +138,7 @@ class Board(models.Model): class SpecialGenericRelation(GenericRelation): def __init__(self, *args, **kwargs): - super(SpecialGenericRelation, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.editable = True self.save_form_data_calls = 0 diff --git a/tests/generic_views/test_base.py b/tests/generic_views/test_base.py index be89592dbc..88c376dddc 100644 --- a/tests/generic_views/test_base.py +++ b/tests/generic_views/test_base.py @@ -41,7 +41,7 @@ class DecoratedDispatchView(SimpleView): @decorator def dispatch(self, request, *args, **kwargs): - return super(DecoratedDispatchView, self).dispatch(request, *args, **kwargs) + return super().dispatch(request, *args, **kwargs) class AboutTemplateView(TemplateView): diff --git a/tests/generic_views/views.py b/tests/generic_views/views.py index 05d5ec2f00..9041ad81a1 100644 --- a/tests/generic_views/views.py +++ b/tests/generic_views/views.py @@ -12,7 +12,7 @@ class CustomTemplateView(generic.TemplateView): template_name = 'generic_views/about.html' def get_context_data(self, **kwargs): - context = super(CustomTemplateView, self).get_context_data(**kwargs) + context = super().get_context_data(**kwargs) context.update({'key': 'value'}) return context @@ -72,22 +72,14 @@ class BookList(generic.ListView): class CustomPaginator(Paginator): def __init__(self, queryset, page_size, orphans=0, allow_empty_first_page=True): - super(CustomPaginator, self).__init__( - queryset, - page_size, - orphans=2, - allow_empty_first_page=allow_empty_first_page) + super().__init__(queryset, page_size, orphans=2, allow_empty_first_page=allow_empty_first_page) class AuthorListCustomPaginator(AuthorList): paginate_by = 5 def get_paginator(self, queryset, page_size, orphans=0, allow_empty_first_page=True): - return super(AuthorListCustomPaginator, self).get_paginator( - queryset, - page_size, - orphans=2, - allow_empty_first_page=allow_empty_first_page) + return super().get_paginator(queryset, page_size, orphans=2, allow_empty_first_page=allow_empty_first_page) class ContactView(generic.FormView): @@ -152,7 +144,7 @@ class AuthorUpdate(generic.UpdateView): def get_form(self, *args, **kwargs): self.get_form_called_count += 1 - return super(AuthorUpdate, self).get_form(*args, **kwargs) + return super().get_form(*args, **kwargs) class OneAuthorUpdate(generic.UpdateView): @@ -231,8 +223,7 @@ class AuthorGetQuerySetFormView(generic.edit.ModelFormMixin): class BookDetailGetObjectCustomQueryset(BookDetail): def get_object(self, queryset=None): - return super(BookDetailGetObjectCustomQueryset, self).get_object( - queryset=Book.objects.filter(pk=self.kwargs['pk'])) + return super().get_object(queryset=Book.objects.filter(pk=self.kwargs['pk'])) class CustomMultipleObjectMixinView(generic.list.MultipleObjectMixin, generic.View): @@ -255,7 +246,7 @@ class CustomContextView(generic.detail.SingleObjectMixin, generic.View): def get_context_data(self, **kwargs): context = {'custom_key': 'custom_value'} context.update(kwargs) - return super(CustomContextView, self).get_context_data(**context) + return super().get_context_data(**context) def get_context_object_name(self, obj): return "test_name" diff --git a/tests/get_object_or_404/models.py b/tests/get_object_or_404/models.py index ce74bc04ad..b18918a853 100644 --- a/tests/get_object_or_404/models.py +++ b/tests/get_object_or_404/models.py @@ -22,7 +22,7 @@ class Author(models.Model): class ArticleManager(models.Manager): def get_queryset(self): - return super(ArticleManager, self).get_queryset().filter(authors__name__icontains='sir') + return super().get_queryset().filter(authors__name__icontains='sir') class Article(models.Model): diff --git a/tests/gis_tests/geoapp/models.py b/tests/gis_tests/geoapp/models.py index 83e3242043..363f3deaf0 100644 --- a/tests/gis_tests/geoapp/models.py +++ b/tests/gis_tests/geoapp/models.py @@ -94,7 +94,7 @@ class NonConcreteField(models.IntegerField): return None def get_attname_column(self): - attname, column = super(NonConcreteField, self).get_attname_column() + attname, column = super().get_attname_column() return attname, None diff --git a/tests/gis_tests/geoapp/test_sitemaps.py b/tests/gis_tests/geoapp/test_sitemaps.py index 61e06df728..09df326bc6 100644 --- a/tests/gis_tests/geoapp/test_sitemaps.py +++ b/tests/gis_tests/geoapp/test_sitemaps.py @@ -17,7 +17,7 @@ from .models import City, Country class GeoSitemapTest(TestCase): def setUp(self): - super(GeoSitemapTest, self).setUp() + super().setUp() Site(id=settings.SITE_ID, domain="example.com", name="example.com").save() def assertChildNodes(self, elem, expected): diff --git a/tests/gis_tests/geos_tests/test_geos.py b/tests/gis_tests/geos_tests/test_geos.py index b74d3ab708..c90927c5cc 100644 --- a/tests/gis_tests/geos_tests/test_geos.py +++ b/tests/gis_tests/geos_tests/test_geos.py @@ -1260,7 +1260,7 @@ class GEOSTest(SimpleTestCase, TestDataMixin): class ExtendedPolygon(Polygon): def __init__(self, *args, **kwargs): data = kwargs.pop('data', 0) - super(ExtendedPolygon, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self._data = data def __str__(self): diff --git a/tests/gis_tests/geos_tests/test_mutable_list.py b/tests/gis_tests/geos_tests/test_mutable_list.py index 26bdeb8045..4e6a44223d 100644 --- a/tests/gis_tests/geos_tests/test_mutable_list.py +++ b/tests/gis_tests/geos_tests/test_mutable_list.py @@ -14,7 +14,7 @@ class UserListA(ListMixin): def __init__(self, i_list, *args, **kwargs): self._list = self._mytype(i_list) - super(UserListA, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) def __len__(self): return len(self._list) diff --git a/tests/gis_tests/gis_migrations/test_operations.py b/tests/gis_tests/gis_migrations/test_operations.py index 0c8853a9f3..31301ad4ca 100644 --- a/tests/gis_tests/gis_migrations/test_operations.py +++ b/tests/gis_tests/gis_migrations/test_operations.py @@ -28,7 +28,7 @@ class OperationTestCase(TransactionTestCase): # Delete table after testing if hasattr(self, 'current_state'): self.apply_operations('gis', self.current_state, [migrations.DeleteModel('Neighborhood')]) - super(OperationTestCase, self).tearDown() + super().tearDown() @property def has_spatial_indexes(self): @@ -103,7 +103,7 @@ class OperationTestCase(TransactionTestCase): class OperationTests(OperationTestCase): def setUp(self): - super(OperationTests, self).setUp() + super().setUp() self.set_up_test_model() def test_add_geom_field(self): diff --git a/tests/gis_tests/test_data.py b/tests/gis_tests/test_data.py index 4bec3c677e..adcd57b48b 100644 --- a/tests/gis_tests/test_data.py +++ b/tests/gis_tests/test_data.py @@ -47,7 +47,7 @@ class TestDS(TestObj): # Shapefile is default extension, unless specified otherwise. ext = kwargs.pop('ext', 'shp') self.ds = get_ds_file(name, ext) - super(TestDS, self).__init__(**kwargs) + super().__init__(**kwargs) class TestGeom(TestObj): @@ -72,7 +72,7 @@ class TestGeom(TestObj): ext_ring_cs = tuplize(ext_ring_cs) self.ext_ring_cs = ext_ring_cs - super(TestGeom, self).__init__(**kwargs) + super().__init__(**kwargs) class TestGeomSet: diff --git a/tests/i18n/test_compilation.py b/tests/i18n/test_compilation.py index 7d3215d4a8..db6c813115 100644 --- a/tests/i18n/test_compilation.py +++ b/tests/i18n/test_compilation.py @@ -70,7 +70,7 @@ class MultipleLocaleCompilationTests(MessageCompilationTests): MO_FILE_FR = None def setUp(self): - super(MultipleLocaleCompilationTests, self).setUp() + super().setUp() localedir = os.path.join(self.test_dir, 'locale') self.MO_FILE_HR = os.path.join(localedir, 'hr/LC_MESSAGES/django.mo') self.MO_FILE_FR = os.path.join(localedir, 'fr/LC_MESSAGES/django.mo') @@ -96,7 +96,7 @@ class ExcludedLocaleCompilationTests(MessageCompilationTests): MO_FILE = 'locale/%s/LC_MESSAGES/django.mo' def setUp(self): - super(ExcludedLocaleCompilationTests, self).setUp() + super().setUp() copytree('canned_locale', 'locale') def test_command_help(self): @@ -160,7 +160,7 @@ class ProjectAndAppTests(MessageCompilationTests): class FuzzyTranslationTest(ProjectAndAppTests): def setUp(self): - super(FuzzyTranslationTest, self).setUp() + super().setUp() gettext_module._translations = {} # flush cache or test will be useless def test_nofuzzy_compiling(self): diff --git a/tests/i18n/test_extraction.py b/tests/i18n/test_extraction.py index 585feda3ac..69d0236fad 100644 --- a/tests/i18n/test_extraction.py +++ b/tests/i18n/test_extraction.py @@ -468,7 +468,7 @@ class IgnoredExtractorTests(ExtractorTests): class SymlinkExtractorTests(ExtractorTests): def setUp(self): - super(SymlinkExtractorTests, self).setUp() + super().setUp() self.symlinked_dir = os.path.join(self.test_dir, 'templates_symlinked') def test_symlink(self): @@ -632,7 +632,7 @@ class ExcludedLocaleExtractionTests(ExtractorTests): os.utime(self.PO_FILE % locale, (0, 0)) def setUp(self): - super(ExcludedLocaleExtractionTests, self).setUp() + super().setUp() copytree('canned_locale', 'locale') self._set_times_for_all_po_files() diff --git a/tests/i18n/test_percents.py b/tests/i18n/test_percents.py index bf14e020f5..5ab146a4c2 100644 --- a/tests/i18n/test_percents.py +++ b/tests/i18n/test_percents.py @@ -37,7 +37,7 @@ class ExtractingStringsWithPercentSigns(POFileAssertionMixin, FrenchTestCase): """ def setUp(self): - super(ExtractingStringsWithPercentSigns, self).setUp() + super().setUp() with open(self.PO_FILE, 'r') as fp: self.po_contents = fp.read() diff --git a/tests/i18n/tests.py b/tests/i18n/tests.py index 4f4801ba2c..acff0dfc28 100644 --- a/tests/i18n/tests.py +++ b/tests/i18n/tests.py @@ -233,7 +233,7 @@ class TranslationThreadSafetyTests(SimpleTestCase): class FormattingTests(SimpleTestCase): def setUp(self): - super(FormattingTests, self).setUp() + super().setUp() self.n = decimal.Decimal('66666.666') self.f = 99999.999 self.d = datetime.date(2009, 12, 31) @@ -981,7 +981,7 @@ class FormattingTests(SimpleTestCase): class MiscTests(SimpleTestCase): def setUp(self): - super(MiscTests, self).setUp() + super().setUp() self.rf = RequestFactory() @override_settings(LANGUAGE_CODE='de') @@ -1215,12 +1215,12 @@ class MiscTests(SimpleTestCase): class ResolutionOrderI18NTests(SimpleTestCase): def setUp(self): - super(ResolutionOrderI18NTests, self).setUp() + super().setUp() activate('de') def tearDown(self): deactivate() - super(ResolutionOrderI18NTests, self).tearDown() + super().tearDown() def assertUgettext(self, msgid, msgstr): result = ugettext(msgid) @@ -1430,7 +1430,7 @@ class UnprefixedDefaultLanguageTests(SimpleTestCase): class CountrySpecificLanguageTests(SimpleTestCase): def setUp(self): - super(CountrySpecificLanguageTests, self).setUp() + super().setUp() self.rf = RequestFactory() def test_check_for_language(self): @@ -1480,12 +1480,12 @@ class CountrySpecificLanguageTests(SimpleTestCase): class TranslationFilesMissing(SimpleTestCase): def setUp(self): - super(TranslationFilesMissing, self).setUp() + super().setUp() self.gettext_find_builtin = gettext_module.find def tearDown(self): gettext_module.find = self.gettext_find_builtin - super(TranslationFilesMissing, self).tearDown() + super().tearDown() def patchGettextFind(self): gettext_module.find = lambda *args, **kw: None diff --git a/tests/indexes/models.py b/tests/indexes/models.py index 47d413faee..208da32c6e 100644 --- a/tests/indexes/models.py +++ b/tests/indexes/models.py @@ -13,7 +13,7 @@ class CurrentTranslation(models.ForeignObject): kwargs['related_name'] = '+' # Set unique to enable model cache. kwargs['unique'] = True - super(CurrentTranslation, self).__init__(to, on_delete, from_fields, to_fields, **kwargs) + super().__init__(to, on_delete, from_fields, to_fields, **kwargs) class ArticleTranslation(models.Model): diff --git a/tests/inline_formsets/tests.py b/tests/inline_formsets/tests.py index fd51714cda..1769bc0f49 100644 --- a/tests/inline_formsets/tests.py +++ b/tests/inline_formsets/tests.py @@ -194,7 +194,7 @@ class InlineFormsetFactoryTest(TestCase): class PoemModelForm(ModelForm): def __init__(self, *args, **kwargs): assert 'poet' in self._meta.fields - super(PoemModelForm, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) poet = Poet.objects.create(name='test') poet.poem_set.create(name='first test poem') diff --git a/tests/logging_tests/tests.py b/tests/logging_tests/tests.py index 6033cac289..f084feb514 100644 --- a/tests/logging_tests/tests.py +++ b/tests/logging_tests/tests.py @@ -68,13 +68,13 @@ class SetupDefaultLoggingMixin: @classmethod def setUpClass(cls): - super(SetupDefaultLoggingMixin, cls).setUpClass() + super().setUpClass() cls._logging = settings.LOGGING logging.config.dictConfig(DEFAULT_LOGGING) @classmethod def tearDownClass(cls): - super(SetupDefaultLoggingMixin, cls).tearDownClass() + super().tearDownClass() logging.config.dictConfig(cls._logging) diff --git a/tests/mail/custombackend.py b/tests/mail/custombackend.py index ac631a6e1b..fd57777787 100644 --- a/tests/mail/custombackend.py +++ b/tests/mail/custombackend.py @@ -6,7 +6,7 @@ from django.core.mail.backends.base import BaseEmailBackend class EmailBackend(BaseEmailBackend): def __init__(self, *args, **kwargs): - super(EmailBackend, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.test_outbox = [] def send_messages(self, email_messages): diff --git a/tests/mail/tests.py b/tests/mail/tests.py index f30734d72f..60758a637b 100644 --- a/tests/mail/tests.py +++ b/tests/mail/tests.py @@ -990,7 +990,7 @@ class LocmemBackendTests(BaseEmailBackendTests, SimpleTestCase): mail.outbox = [] def tearDown(self): - super(LocmemBackendTests, self).tearDown() + super().tearDown() mail.outbox = [] def test_locmem_shared_messages(self): @@ -1017,7 +1017,7 @@ class FileBackendTests(BaseEmailBackendTests, SimpleTestCase): email_backend = 'django.core.mail.backends.filebased.EmailBackend' def setUp(self): - super(FileBackendTests, self).setUp() + super().setUp() self.tmp_dir = tempfile.mkdtemp() self.addCleanup(shutil.rmtree, self.tmp_dir) self._settings_override = override_settings(EMAIL_FILE_PATH=self.tmp_dir) @@ -1025,7 +1025,7 @@ class FileBackendTests(BaseEmailBackendTests, SimpleTestCase): def tearDown(self): self._settings_override.disable() - super(FileBackendTests, self).tearDown() + super().tearDown() def flush_mailbox(self): for filename in os.listdir(self.tmp_dir): @@ -1077,7 +1077,7 @@ class ConsoleBackendTests(BaseEmailBackendTests, SimpleTestCase): email_backend = 'django.core.mail.backends.console.EmailBackend' def setUp(self): - super(ConsoleBackendTests, self).setUp() + super().setUp() self.__stdout = sys.stdout self.stream = sys.stdout = StringIO() @@ -1085,7 +1085,7 @@ class ConsoleBackendTests(BaseEmailBackendTests, SimpleTestCase): del self.stream sys.stdout = self.__stdout del self.__stdout - super(ConsoleBackendTests, self).tearDown() + super().tearDown() def flush_mailbox(self): self.stream = sys.stdout = StringIO() @@ -1214,7 +1214,7 @@ class SMTPBackendTestsBase(SimpleTestCase): @classmethod def setUpClass(cls): - super(SMTPBackendTestsBase, cls).setUpClass() + super().setUpClass() cls.server = FakeSMTPServer(('127.0.0.1', 0), None) cls._settings_override = override_settings( EMAIL_HOST="127.0.0.1", @@ -1226,19 +1226,19 @@ class SMTPBackendTestsBase(SimpleTestCase): def tearDownClass(cls): cls._settings_override.disable() cls.server.stop() - super(SMTPBackendTestsBase, cls).tearDownClass() + super().tearDownClass() class SMTPBackendTests(BaseEmailBackendTests, SMTPBackendTestsBase): email_backend = 'django.core.mail.backends.smtp.EmailBackend' def setUp(self): - super(SMTPBackendTests, self).setUp() + super().setUp() self.server.flush_sink() def tearDown(self): self.server.flush_sink() - super(SMTPBackendTests, self).tearDown() + super().tearDown() def flush_mailbox(self): self.server.flush_sink() @@ -1386,7 +1386,7 @@ class SMTPBackendTests(BaseEmailBackendTests, SMTPBackendTestsBase): class MyEmailBackend(smtp.EmailBackend): def __init__(self, *args, **kwargs): kwargs.setdefault('timeout', 42) - super(MyEmailBackend, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) myemailbackend = MyEmailBackend() myemailbackend.open() @@ -1454,7 +1454,7 @@ class SMTPBackendStoppedServerTests(SMTPBackendTestsBase): """ @classmethod def setUpClass(cls): - super(SMTPBackendStoppedServerTests, cls).setUpClass() + super().setUpClass() cls.backend = smtp.EmailBackend(username='', password='') cls.server.stop() diff --git a/tests/managers_regress/models.py b/tests/managers_regress/models.py index 1c274d8704..8d5725c5b7 100644 --- a/tests/managers_regress/models.py +++ b/tests/managers_regress/models.py @@ -11,17 +11,17 @@ from django.db import models class OnlyFred(models.Manager): def get_queryset(self): - return super(OnlyFred, self).get_queryset().filter(name='fred') + return super().get_queryset().filter(name='fred') class OnlyBarney(models.Manager): def get_queryset(self): - return super(OnlyBarney, self).get_queryset().filter(name='barney') + return super().get_queryset().filter(name='barney') class Value42(models.Manager): def get_queryset(self): - return super(Value42, self).get_queryset().filter(value=42) + return super().get_queryset().filter(value=42) class AbstractBase1(models.Model): diff --git a/tests/many_to_one/models.py b/tests/many_to_one/models.py index 93b8029b2f..cfbdb71a44 100644 --- a/tests/many_to_one/models.py +++ b/tests/many_to_one/models.py @@ -97,7 +97,7 @@ class Relation(models.Model): # Test related objects visibility. class SchoolManager(models.Manager): def get_queryset(self): - return super(SchoolManager, self).get_queryset().filter(is_public=True) + return super().get_queryset().filter(is_public=True) class School(models.Model): diff --git a/tests/messages_tests/base.py b/tests/messages_tests/base.py index 8082d468fe..f713d72ab8 100644 --- a/tests/messages_tests/base.py +++ b/tests/messages_tests/base.py @@ -24,7 +24,7 @@ def add_level_messages(storage): class override_settings_tags(override_settings): def enable(self): - super(override_settings_tags, self).enable() + super().enable() # LEVEL_TAGS is a constant defined in the # django.contrib.messages.storage.base module, so after changing # settings.MESSAGE_TAGS, update that constant also. @@ -32,7 +32,7 @@ class override_settings_tags(override_settings): base.LEVEL_TAGS = utils.get_level_tags() def disable(self): - super(override_settings_tags, self).disable() + super().disable() base.LEVEL_TAGS = self.old_level_tags diff --git a/tests/messages_tests/test_api.py b/tests/messages_tests/test_api.py index 3de6b81b7b..86fd5c6838 100644 --- a/tests/messages_tests/test_api.py +++ b/tests/messages_tests/test_api.py @@ -50,7 +50,7 @@ class CustomRequest: def __getattribute__(self, attr): try: - return super(CustomRequest, self).__getattribute__(attr) + return super().__getattribute__(attr) except AttributeError: return getattr(self._request, attr) @@ -61,5 +61,5 @@ class CustomRequestApiTests(ApiTests): one in Django REST framework. """ def setUp(self): - super(CustomRequestApiTests, self).setUp() + super().setUp() self.request = CustomRequest(self.request) diff --git a/tests/messages_tests/test_fallback.py b/tests/messages_tests/test_fallback.py index bfdae79c4a..ea39f32f32 100644 --- a/tests/messages_tests/test_fallback.py +++ b/tests/messages_tests/test_fallback.py @@ -14,7 +14,7 @@ class FallbackTests(BaseTests, SimpleTestCase): def get_request(self): self.session = {} - request = super(FallbackTests, self).get_request() + request = super().get_request() request.session = self.session return request diff --git a/tests/messages_tests/test_session.py b/tests/messages_tests/test_session.py index 3500d60590..e06ba656fa 100644 --- a/tests/messages_tests/test_session.py +++ b/tests/messages_tests/test_session.py @@ -27,7 +27,7 @@ class SessionTests(BaseTests, TestCase): def get_request(self): self.session = {} - request = super(SessionTests, self).get_request() + request = super().get_request() request.session = self.session return request diff --git a/tests/middleware/tests.py b/tests/middleware/tests.py index bd2ba89848..2f8954b4cc 100644 --- a/tests/middleware/tests.py +++ b/tests/middleware/tests.py @@ -406,7 +406,7 @@ class BrokenLinkEmailsMiddlewareTest(SimpleTestCase): def is_ignorable_request(self, request, uri, domain, referer): '''Check user-agent in addition to normal checks.''' - if super(SubclassedMiddleware, self).is_ignorable_request(request, uri, domain, referer): + if super().is_ignorable_request(request, uri, domain, referer): return True user_agent = request.META['HTTP_USER_AGENT'] return any(pattern.search(user_agent) for pattern in self.ignored_user_agent_patterns) diff --git a/tests/migrations/models.py b/tests/migrations/models.py index 51679e56bb..440aa582d6 100644 --- a/tests/migrations/models.py +++ b/tests/migrations/models.py @@ -56,7 +56,7 @@ class FoodQuerySet(models.query.QuerySet): class BaseFoodManager(models.Manager): def __init__(self, a, b, c=1, d=2): - super(BaseFoodManager, self).__init__() + super().__init__() self.args = (a, b, c, d) diff --git a/tests/migrations/test_commands.py b/tests/migrations/test_commands.py index cacbcab743..d5d31b7c7c 100644 --- a/tests/migrations/test_commands.py +++ b/tests/migrations/test_commands.py @@ -628,14 +628,14 @@ class MakeMigrationsTests(MigrationTestBase): """ def setUp(self): - super(MakeMigrationsTests, self).setUp() + super().setUp() self._old_models = apps.app_configs['migrations'].models.copy() def tearDown(self): apps.app_configs['migrations'].models = self._old_models apps.all_models['migrations'] = self._old_models apps.clear_cache() - super(MakeMigrationsTests, self).tearDown() + super().tearDown() def test_files_content(self): self.assertTableNotExists("migrations_unicodemodel") diff --git a/tests/model_fields/models.py b/tests/model_fields/models.py index 4830fb9ed2..134d200be9 100644 --- a/tests/model_fields/models.py +++ b/tests/model_fields/models.py @@ -229,11 +229,11 @@ if Image: """ def __init__(self, *args, **kwargs): self.was_opened = False - super(TestImageFieldFile, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) def open(self): self.was_opened = True - super(TestImageFieldFile, self).open() + super().open() class TestImageField(ImageField): attr_class = TestImageFieldFile diff --git a/tests/model_fields/test_field_flags.py b/tests/model_fields/test_field_flags.py index ff6f595e27..26a345ea5c 100644 --- a/tests/model_fields/test_field_flags.py +++ b/tests/model_fields/test_field_flags.py @@ -75,7 +75,7 @@ FLAG_PROPERTIES_FOR_RELATIONS = ( class FieldFlagsTests(test.SimpleTestCase): @classmethod def setUpClass(cls): - super(FieldFlagsTests, cls).setUpClass() + super().setUpClass() cls.fields = ( list(AllFieldsModel._meta.fields) + list(AllFieldsModel._meta.private_fields) diff --git a/tests/model_forms/models.py b/tests/model_forms/models.py index c1c97270fc..6ed8b2ca06 100644 --- a/tests/model_forms/models.py +++ b/tests/model_forms/models.py @@ -71,7 +71,7 @@ class Article(models.Model): def save(self, *args, **kwargs): if not self.id: self.created = datetime.date.today() - return super(Article, self).save(*args, **kwargs) + return super().save(*args, **kwargs) def __str__(self): return self.headline @@ -322,7 +322,7 @@ class BigInt(models.Model): class MarkupField(models.CharField): def __init__(self, *args, **kwargs): kwargs["max_length"] = 20 - super(MarkupField, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) def formfield(self, **kwargs): # don't allow this field to be used in form (real use-case might be @@ -418,11 +418,11 @@ class Photo(models.Model): # Support code for the tests; this keeps track of how many times save() # gets called on each instance. def __init__(self, *args, **kwargs): - super(Photo, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self._savecount = 0 def save(self, force_insert=False, force_update=False): - super(Photo, self).save(force_insert, force_update) + super().save(force_insert, force_update) self._savecount += 1 @@ -439,7 +439,7 @@ class StrictAssignmentFieldSpecific(models.Model): def __setattr__(self, key, value): if self._should_error is True: raise ValidationError(message={key: "Cannot set attribute"}, code='invalid') - super(StrictAssignmentFieldSpecific, self).__setattr__(key, value) + super().__setattr__(key, value) class StrictAssignmentAll(models.Model): @@ -449,7 +449,7 @@ class StrictAssignmentAll(models.Model): def __setattr__(self, key, value): if self._should_error is True: raise ValidationError(message="Cannot set attribute", code='invalid') - super(StrictAssignmentAll, self).__setattr__(key, value) + super().__setattr__(key, value) # A model with ForeignKey(blank=False, null=True) diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py index 3c8f7ed108..9dd8e79513 100644 --- a/tests/model_forms/tests.py +++ b/tests/model_forms/tests.py @@ -216,7 +216,7 @@ class ModelFormBaseTest(TestCase): fields = '__all__' def __init__(self, *args, **kwargs): - super(FormForTestingIsValid, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.fields['character'].required = False char = Character.objects.create(username='user', @@ -245,7 +245,7 @@ class ModelFormBaseTest(TestCase): fields = '__all__' def __init__(self, *args, **kwargs): - super(AwardForm, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.fields['character'].required = False character = Character.objects.create(username='user', last_action=datetime.datetime.today()) @@ -2947,7 +2947,7 @@ class LocalizedModelFormTest(TestCase): class CustomMetaclass(ModelFormMetaclass): def __new__(cls, name, bases, attrs): - new = super(CustomMetaclass, cls).__new__(cls, name, bases, attrs) + new = super().__new__(cls, name, bases, attrs) new.base_fields = {} return new diff --git a/tests/model_formsets/tests.py b/tests/model_formsets/tests.py index 832dbe63ee..3873cb3b27 100644 --- a/tests/model_formsets/tests.py +++ b/tests/model_formsets/tests.py @@ -454,7 +454,7 @@ class ModelFormsetTest(TestCase): class PoetForm(forms.ModelForm): def save(self, commit=True): # change the name to "Vladimir Mayakovsky" just to be a jerk. - author = super(PoetForm, self).save(commit=False) + author = super().save(commit=False) author.name = "Vladimir Mayakovsky" if commit: author.save() @@ -513,7 +513,7 @@ class ModelFormsetTest(TestCase): class BaseAuthorFormSet(BaseModelFormSet): def __init__(self, *args, **kwargs): - super(BaseAuthorFormSet, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.queryset = Author.objects.filter(name__startswith='Charles') AuthorFormSet = modelformset_factory(Author, fields='__all__', formset=BaseAuthorFormSet) @@ -864,7 +864,7 @@ class ModelFormsetTest(TestCase): class PoemForm(forms.ModelForm): def save(self, commit=True): # change the name to "Brooklyn Bridge" just to be a jerk. - poem = super(PoemForm, self).save(commit=False) + poem = super().save(commit=False) poem.name = "Brooklyn Bridge" if commit: poem.save() @@ -995,7 +995,7 @@ class ModelFormsetTest(TestCase): """ class PoemForm2(forms.ModelForm): def save(self, commit=True): - poem = super(PoemForm2, self).save(commit=False) + poem = super().save(commit=False) poem.name = "%s by %s" % (poem.name, poem.poet.name) if commit: poem.save() @@ -1413,7 +1413,7 @@ class ModelFormsetTest(TestCase): fields = "__all__" def __init__(self, **kwargs): - super(MembershipForm, self).__init__(**kwargs) + super().__init__(**kwargs) self.fields['date_joined'].widget = forms.SplitDateTimeWidget() FormSet = inlineformset_factory( diff --git a/tests/model_formsets_regress/tests.py b/tests/model_formsets_regress/tests.py index 64d933f90c..26ab9c1ae9 100644 --- a/tests/model_formsets_regress/tests.py +++ b/tests/model_formsets_regress/tests.py @@ -375,7 +375,7 @@ class BaseCustomDeleteFormSet(BaseFormSet): form.should_delete() is called. The formset delete field is also suppressed. """ def add_fields(self, form, index): - super(BaseCustomDeleteFormSet, self).add_fields(form, index) + super().add_fields(form, index) self.can_delete = True if DELETION_FIELD_NAME in form.fields: del form.fields[DELETION_FIELD_NAME] diff --git a/tests/model_inheritance/models.py b/tests/model_inheritance/models.py index 62003f032e..86b1cddb8c 100644 --- a/tests/model_inheritance/models.py +++ b/tests/model_inheritance/models.py @@ -160,7 +160,7 @@ class NamedURL(models.Model): class Mixin: def __init__(self): self.other_attr = 1 - super(Mixin, self).__init__() + super().__init__() class MixinModel(models.Model, Mixin): diff --git a/tests/model_regress/test_pickle.py b/tests/model_regress/test_pickle.py index bbbbb4cef0..a3df362e32 100644 --- a/tests/model_regress/test_pickle.py +++ b/tests/model_regress/test_pickle.py @@ -15,7 +15,7 @@ class ModelPickleTestCase(TestCase): title = models.CharField(max_length=10) def __reduce__(self): - reduce_list = super(MissingDjangoVersion, self).__reduce__() + reduce_list = super().__reduce__() data = reduce_list[-1] del data[DJANGO_VERSION_PICKLE_KEY] return reduce_list @@ -34,7 +34,7 @@ class ModelPickleTestCase(TestCase): title = models.CharField(max_length=10) def __reduce__(self): - reduce_list = super(DifferentDjangoVersion, self).__reduce__() + reduce_list = super().__reduce__() data = reduce_list[-1] data[DJANGO_VERSION_PICKLE_KEY] = '1.0' return reduce_list diff --git a/tests/modeladmin/tests.py b/tests/modeladmin/tests.py index 1cded986fa..b85764a290 100644 --- a/tests/modeladmin/tests.py +++ b/tests/modeladmin/tests.py @@ -320,7 +320,7 @@ class ModelAdminTests(TestCase): def get_form(self, request, obj=None, **kwargs): kwargs['exclude'] = ['bio'] - return super(BandAdmin, self).get_form(request, obj, **kwargs) + return super().get_form(request, obj, **kwargs) ma = BandAdmin(Band, self.site) self.assertEqual(list(ma.get_form(request).base_fields), ['name', 'sign_date']) @@ -343,7 +343,7 @@ class ModelAdminTests(TestCase): def get_formset(self, request, obj=None, **kwargs): kwargs['exclude'] = ['opening_band'] - return super(ConcertInline, self).get_formset(request, obj, **kwargs) + return super().get_formset(request, obj, **kwargs) class BandAdmin(ModelAdmin): inlines = [ConcertInline] @@ -420,7 +420,7 @@ class ModelAdminTests(TestCase): class AdminConcertForm(forms.ModelForm): def __init__(self, *args, **kwargs): - super(AdminConcertForm, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.fields["main_band"].queryset = Band.objects.filter(name='The Doors') class ConcertAdminWithForm(ModelAdmin): @@ -455,7 +455,7 @@ class ModelAdminTests(TestCase): def get_formset(self, request, obj=None, **kwargs): if obj: kwargs['form'] = CustomConcertForm - return super(ConcertInline, self).get_formset(request, obj, **kwargs) + return super().get_formset(request, obj, **kwargs) class BandAdmin(ModelAdmin): inlines = [ConcertInline] diff --git a/tests/multiple_database/models.py b/tests/multiple_database/models.py index 55247f6e18..3e93bb67bc 100644 --- a/tests/multiple_database/models.py +++ b/tests/multiple_database/models.py @@ -42,11 +42,11 @@ class Person(models.Model): class BookManager(models.Manager): def create(self, *args, **kwargs): kwargs.pop('extra_arg', None) - return super(BookManager, self).create(*args, **kwargs) + return super().create(*args, **kwargs) def get_or_create(self, *args, **kwargs): kwargs.pop('extra_arg', None) - return super(BookManager, self).get_or_create(*args, **kwargs) + return super().get_or_create(*args, **kwargs) class Book(models.Model): diff --git a/tests/one_to_one/models.py b/tests/one_to_one/models.py index 263633347d..5e8b918f25 100644 --- a/tests/one_to_one/models.py +++ b/tests/one_to_one/models.py @@ -96,7 +96,7 @@ class ToFieldPointer(models.Model): # Test related objects visibility. class SchoolManager(models.Manager): def get_queryset(self): - return super(SchoolManager, self).get_queryset().filter(is_public=True) + return super().get_queryset().filter(is_public=True) class School(models.Model): @@ -106,7 +106,7 @@ class School(models.Model): class DirectorManager(models.Manager): def get_queryset(self): - return super(DirectorManager, self).get_queryset().filter(is_temp=False) + return super().get_queryset().filter(is_temp=False) class Director(models.Model): diff --git a/tests/pagination/custom.py b/tests/pagination/custom.py index 77277dca5b..5f3df3c33c 100644 --- a/tests/pagination/custom.py +++ b/tests/pagination/custom.py @@ -6,12 +6,12 @@ class ValidAdjacentNumsPage(Page): def next_page_number(self): if not self.has_next(): return None - return super(ValidAdjacentNumsPage, self).next_page_number() + return super().next_page_number() def previous_page_number(self): if not self.has_previous(): return None - return super(ValidAdjacentNumsPage, self).previous_page_number() + return super().previous_page_number() class ValidAdjacentNumsPaginator(Paginator): diff --git a/tests/postgres_tests/__init__.py b/tests/postgres_tests/__init__.py index dbb913dbba..49f1220888 100644 --- a/tests/postgres_tests/__init__.py +++ b/tests/postgres_tests/__init__.py @@ -13,4 +13,4 @@ class PostgreSQLTestCase(TestCase): from django.contrib.postgres.signals import register_hstore_handler connection_created.disconnect(register_hstore_handler) - super(PostgreSQLTestCase, cls).tearDownClass() + super().tearDownClass() diff --git a/tests/postgres_tests/fields.py b/tests/postgres_tests/fields.py index 14283ccd61..5892a7f71f 100644 --- a/tests/postgres_tests/fields.py +++ b/tests/postgres_tests/fields.py @@ -14,10 +14,10 @@ try: except ImportError: class DummyArrayField(models.Field): def __init__(self, base_field, size=None, **kwargs): - super(DummyArrayField, self).__init__(**kwargs) + super().__init__(**kwargs) def deconstruct(self): - name, path, args, kwargs = super(DummyArrayField, self).deconstruct() + name, path, args, kwargs = super().deconstruct() kwargs.update({ 'base_field': '', 'size': 1, @@ -26,7 +26,7 @@ except ImportError: class DummyJSONField(models.Field): def __init__(self, encoder=None, **kwargs): - super(DummyJSONField, self).__init__(**kwargs) + super().__init__(**kwargs) ArrayField = DummyArrayField BigIntegerRangeField = models.Field diff --git a/tests/postgres_tests/models.py b/tests/postgres_tests/models.py index a77fc4b152..367a32be74 100644 --- a/tests/postgres_tests/models.py +++ b/tests/postgres_tests/models.py @@ -146,7 +146,7 @@ class JSONModel(models.Model): class ArrayFieldSubclass(ArrayField): def __init__(self, *args, **kwargs): - super(ArrayFieldSubclass, self).__init__(models.IntegerField()) + super().__init__(models.IntegerField()) class AggregateTestModel(models.Model): diff --git a/tests/prefetch_related/models.py b/tests/prefetch_related/models.py index c995acb684..a7ac55ce10 100644 --- a/tests/prefetch_related/models.py +++ b/tests/prefetch_related/models.py @@ -97,7 +97,7 @@ class Qualification(models.Model): class TeacherManager(models.Manager): def get_queryset(self): - return super(TeacherManager, self).get_queryset().prefetch_related('qualifications') + return super().get_queryset().prefetch_related('qualifications') class Teacher(models.Model): diff --git a/tests/proxy_models/models.py b/tests/proxy_models/models.py index 93430d615f..2e4679122d 100644 --- a/tests/proxy_models/models.py +++ b/tests/proxy_models/models.py @@ -12,12 +12,12 @@ from django.db import models class PersonManager(models.Manager): def get_queryset(self): - return super(PersonManager, self).get_queryset().exclude(name="fred") + return super().get_queryset().exclude(name="fred") class SubManager(models.Manager): def get_queryset(self): - return super(SubManager, self).get_queryset().exclude(name="wilma") + return super().get_queryset().exclude(name="wilma") class Person(models.Model): diff --git a/tests/queries/models.py b/tests/queries/models.py index 8c20e76dee..592359c796 100644 --- a/tests/queries/models.py +++ b/tests/queries/models.py @@ -51,7 +51,7 @@ class Note(models.Model): return self.note def __init__(self, *args, **kwargs): - super(Note, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) # Regression for #13227 -- having an attribute that # is unpicklable doesn't stop you from cloning queries # that use objects of that type as an argument. @@ -195,7 +195,7 @@ class LoopZ(models.Model): class CustomManager(models.Manager): def get_queryset(self): - qs = super(CustomManager, self).get_queryset() + qs = super().get_queryset() return qs.filter(public=True, tag__name='t1') @@ -219,7 +219,7 @@ class Detail(models.Model): class MemberManager(models.Manager): def get_queryset(self): - return super(MemberManager, self).get_queryset().select_related("details") + return super().get_queryset().select_related("details") class Member(models.Model): diff --git a/tests/queryset_pickle/models.py b/tests/queryset_pickle/models.py index dbd570a30b..a5c0d15441 100644 --- a/tests/queryset_pickle/models.py +++ b/tests/queryset_pickle/models.py @@ -16,14 +16,14 @@ class Numbers: class PreviousDjangoVersionQuerySet(models.QuerySet): def __getstate__(self): - state = super(PreviousDjangoVersionQuerySet, self).__getstate__() + state = super().__getstate__() state[DJANGO_VERSION_PICKLE_KEY] = '1.0' return state class MissingDjangoVersionQuerySet(models.QuerySet): def __getstate__(self): - state = super(MissingDjangoVersionQuerySet, self).__getstate__() + state = super().__getstate__() del state[DJANGO_VERSION_PICKLE_KEY] return state diff --git a/tests/raw_query/models.py b/tests/raw_query/models.py index 6e996322cc..7e090b7a3f 100644 --- a/tests/raw_query/models.py +++ b/tests/raw_query/models.py @@ -7,7 +7,7 @@ class Author(models.Model): dob = models.DateField() def __init__(self, *args, **kwargs): - super(Author, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) # Protect against annotations being passed to __init__ -- # this'll make the test suite get angry if annotations aren't # treated differently than fields. diff --git a/tests/save_delete_hooks/models.py b/tests/save_delete_hooks/models.py index 3573112cfa..e7c598aeae 100644 --- a/tests/save_delete_hooks/models.py +++ b/tests/save_delete_hooks/models.py @@ -12,7 +12,7 @@ class Person(models.Model): last_name = models.CharField(max_length=20) def __init__(self, *args, **kwargs): - super(Person, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.data = [] def __str__(self): @@ -21,11 +21,11 @@ class Person(models.Model): def save(self, *args, **kwargs): self.data.append("Before save") # Call the "real" save() method - super(Person, self).save(*args, **kwargs) + super().save(*args, **kwargs) self.data.append("After save") def delete(self): self.data.append("Before deletion") # Call the "real" delete() method - super(Person, self).delete() + super().delete() self.data.append("After deletion") diff --git a/tests/schema/fields.py b/tests/schema/fields.py index 5f2b6ba19c..16a61ee5f6 100644 --- a/tests/schema/fields.py +++ b/tests/schema/fields.py @@ -32,13 +32,13 @@ class CustomManyToManyField(RelatedField): self.db_table = kwargs.pop('db_table', None) if kwargs['rel'].through is not None: assert self.db_table is None, "Cannot specify a db_table if an intermediary model is used." - super(CustomManyToManyField, self).__init__(**kwargs) + super().__init__(**kwargs) def contribute_to_class(self, cls, name, **kwargs): if self.remote_field.symmetrical and ( self.remote_field.model == "self" or self.remote_field.model == cls._meta.object_name): self.remote_field.related_name = "%s_rel_+" % name - super(CustomManyToManyField, self).contribute_to_class(cls, name, **kwargs) + super().contribute_to_class(cls, name, **kwargs) if not self.remote_field.through and not cls._meta.abstract and not cls._meta.swapped: self.remote_field.through = create_many_to_many_intermediary_model(self, cls) setattr(cls, self.name, ManyToManyDescriptor(self.remote_field)) diff --git a/tests/serializers/models/base.py b/tests/serializers/models/base.py index 78d832140f..2b7d18d93a 100644 --- a/tests/serializers/models/base.py +++ b/tests/serializers/models/base.py @@ -114,7 +114,7 @@ class Team: class TeamField(models.CharField): def __init__(self): - super(TeamField, self).__init__(max_length=100) + super().__init__(max_length=100) def get_db_prep_save(self, value, connection): return str(value.title) @@ -131,7 +131,7 @@ class TeamField(models.CharField): return self.value_from_object(obj).to_string() def deconstruct(self): - name, path, args, kwargs = super(TeamField, self).deconstruct() + name, path, args, kwargs = super().deconstruct() del kwargs['max_length'] return name, path, args, kwargs diff --git a/tests/serializers/models/data.py b/tests/serializers/models/data.py index f6a1d108f6..14bd644fe1 100644 --- a/tests/serializers/models/data.py +++ b/tests/serializers/models/data.py @@ -277,7 +277,7 @@ class ModifyingSaveData(models.Model): (#4459). """ self.data = 666 - super(ModifyingSaveData, self).save(*args, **kwargs) + super().save(*args, **kwargs) # Tests for serialization of models using inheritance. # Regression for #7202, #7350 diff --git a/tests/serializers/test_json.py b/tests/serializers/test_json.py index 7713e0c3c4..ae671f4847 100644 --- a/tests/serializers/test_json.py +++ b/tests/serializers/test_json.py @@ -86,7 +86,7 @@ class JsonSerializerTestCase(SerializersTestBase, TestCase): def default(self, o): if isinstance(o, decimal.Decimal): return str(o) - return super(CustomJSONEncoder, self).default(o) + return super().default(o) s = serializers.json.Serializer() json_data = s.serialize( diff --git a/tests/serializers/test_yaml.py b/tests/serializers/test_yaml.py index 5a9fa5e873..e876597e9d 100644 --- a/tests/serializers/test_yaml.py +++ b/tests/serializers/test_yaml.py @@ -47,7 +47,7 @@ class NoYamlSerializerTestCase(SimpleTestCase): @classmethod def setUpClass(cls): """Removes imported yaml and stubs importlib.import_module""" - super(NoYamlSerializerTestCase, cls).setUpClass() + super().setUpClass() cls._import_module_mock = YamlImportModuleMock() importlib.import_module = cls._import_module_mock.import_module @@ -58,7 +58,7 @@ class NoYamlSerializerTestCase(SimpleTestCase): @classmethod def tearDownClass(cls): """Puts yaml back if necessary""" - super(NoYamlSerializerTestCase, cls).tearDownClass() + super().tearDownClass() importlib.import_module = cls._import_module_mock._import_module diff --git a/tests/servers/tests.py b/tests/servers/tests.py index d6d0392bcd..27f7f9994f 100644 --- a/tests/servers/tests.py +++ b/tests/servers/tests.py @@ -40,7 +40,7 @@ class LiveServerAddress(LiveServerBase): @classmethod def setUpClass(cls): - super(LiveServerAddress, cls).setUpClass() + super().setUpClass() # put it in a list to prevent descriptor lookups in test cls.live_server_url_test = [cls.live_server_url] diff --git a/tests/sessions_tests/models.py b/tests/sessions_tests/models.py index 7a358595e9..4fa216d9e6 100644 --- a/tests/sessions_tests/models.py +++ b/tests/sessions_tests/models.py @@ -29,7 +29,7 @@ class SessionStore(DBStore): return CustomSession def create_model_instance(self, data): - obj = super(SessionStore, self).create_model_instance(data) + obj = super().create_model_instance(data) try: account_id = int(data.get('_auth_user_id')) diff --git a/tests/sessions_tests/tests.py b/tests/sessions_tests/tests.py index 54b8ac53a5..9654c7d9eb 100644 --- a/tests/sessions_tests/tests.py +++ b/tests/sessions_tests/tests.py @@ -508,10 +508,10 @@ class FileSessionTests(SessionTestsMixin, unittest.TestCase): # Reset the file session backend's internal caches if hasattr(self.backend, '_storage_path'): del self.backend._storage_path - super(FileSessionTests, self).setUp() + super().setUp() def tearDown(self): - super(FileSessionTests, self).tearDown() + super().tearDown() settings.SESSION_FILE_PATH = self.original_session_file_path shutil.rmtree(self.temp_session_store) @@ -845,7 +845,7 @@ class CookieSessionTests(SessionTestsMixin, unittest.TestCase): @unittest.expectedFailure def test_actual_expiry(self): # The cookie backend doesn't handle non-default expiry dates, see #19201 - super(CookieSessionTests, self).test_actual_expiry() + super().test_actual_expiry() def test_unpickling_exception(self): # signed_cookies backend should handle unpickle exceptions gracefully diff --git a/tests/settings_tests/tests.py b/tests/settings_tests/tests.py index fa51c0af20..d34077c395 100644 --- a/tests/settings_tests/tests.py +++ b/tests/settings_tests/tests.py @@ -108,7 +108,7 @@ class ClassDecoratedTestCase(ClassDecoratedTestCaseSuper): @classmethod def setUpClass(cls): - super(ClassDecoratedTestCase, cls).setUpClass() + super().setUpClass() cls.foo = getattr(settings, 'TEST', 'BUG') def test_override(self): @@ -127,7 +127,7 @@ class ClassDecoratedTestCase(ClassDecoratedTestCaseSuper): Overriding a method on a super class and then calling that method on the super class should not trigger infinite recursion. See #17011. """ - super(ClassDecoratedTestCase, self).test_max_recursion_error() + super().test_max_recursion_error() @modify_settings(ITEMS={'append': 'mother'}) diff --git a/tests/signals/tests.py b/tests/signals/tests.py index c6453b83d0..563f3431cc 100644 --- a/tests/signals/tests.py +++ b/tests/signals/tests.py @@ -283,7 +283,7 @@ class SignalTests(BaseSignalTest): class LazyModelRefTest(BaseSignalTest): def setUp(self): - super(LazyModelRefTest, self).setUp() + super().setUp() self.received = [] def receiver(self, **kwargs): diff --git a/tests/sitemaps_tests/base.py b/tests/sitemaps_tests/base.py index 473ced7d3a..af5f78f327 100644 --- a/tests/sitemaps_tests/base.py +++ b/tests/sitemaps_tests/base.py @@ -22,7 +22,7 @@ class SitemapTestsBase(TestCase): @classmethod def setUpClass(cls): - super(SitemapTestsBase, cls).setUpClass() + super().setUpClass() # This cleanup is necessary because contrib.sites cache # makes tests interfere with each other, see #11505 Site.objects.clear_cache() diff --git a/tests/staticfiles_tests/cases.py b/tests/staticfiles_tests/cases.py index 2305b34527..593739d401 100644 --- a/tests/staticfiles_tests/cases.py +++ b/tests/staticfiles_tests/cases.py @@ -62,7 +62,7 @@ class CollectionTestCase(BaseStaticFilesMixin, SimpleTestCase): all these tests. """ def setUp(self): - super(CollectionTestCase, self).setUp() + super().setUp() temp_dir = tempfile.mkdtemp() # Override the STATIC_ROOT for all tests from setUp to tearDown # rather than as a context manager @@ -74,7 +74,7 @@ class CollectionTestCase(BaseStaticFilesMixin, SimpleTestCase): def tearDown(self): self.patched_settings.disable() - super(CollectionTestCase, self).tearDown() + super().tearDown() def run_collectstatic(self, **kwargs): verbosity = kwargs.pop('verbosity', 0) diff --git a/tests/staticfiles_tests/test_finders.py b/tests/staticfiles_tests/test_finders.py index 7df8c50a0d..0b661cb103 100644 --- a/tests/staticfiles_tests/test_finders.py +++ b/tests/staticfiles_tests/test_finders.py @@ -35,7 +35,7 @@ class TestFileSystemFinder(TestFinders, StaticFilesTestCase): Test FileSystemFinder. """ def setUp(self): - super(TestFileSystemFinder, self).setUp() + super().setUp() self.finder = finders.FileSystemFinder() test_file_path = os.path.join(TEST_ROOT, 'project', 'documents', 'test', 'file.txt') self.find_first = (os.path.join('test', 'file.txt'), test_file_path) @@ -47,7 +47,7 @@ class TestAppDirectoriesFinder(TestFinders, StaticFilesTestCase): Test AppDirectoriesFinder. """ def setUp(self): - super(TestAppDirectoriesFinder, self).setUp() + super().setUp() self.finder = finders.AppDirectoriesFinder() test_file_path = os.path.join(TEST_ROOT, 'apps', 'test', 'static', 'test', 'file1.txt') self.find_first = (os.path.join('test', 'file1.txt'), test_file_path) @@ -59,7 +59,7 @@ class TestDefaultStorageFinder(TestFinders, StaticFilesTestCase): Test DefaultStorageFinder. """ def setUp(self): - super(TestDefaultStorageFinder, self).setUp() + super().setUp() self.finder = finders.DefaultStorageFinder( storage=storage.StaticFilesStorage(location=settings.MEDIA_ROOT)) test_file_path = os.path.join(settings.MEDIA_ROOT, 'media-file.txt') diff --git a/tests/staticfiles_tests/test_liveserver.py b/tests/staticfiles_tests/test_liveserver.py index f45a95ba89..264242bbae 100644 --- a/tests/staticfiles_tests/test_liveserver.py +++ b/tests/staticfiles_tests/test_liveserver.py @@ -29,11 +29,11 @@ class LiveServerBase(StaticLiveServerTestCase): # Override settings cls.settings_override = override_settings(**TEST_SETTINGS) cls.settings_override.enable() - super(LiveServerBase, cls).setUpClass() + super().setUpClass() @classmethod def tearDownClass(cls): - super(LiveServerBase, cls).tearDownClass() + super().tearDownClass() # Restore original settings cls.settings_override.disable() @@ -57,14 +57,14 @@ class StaticLiveServerChecks(LiveServerBase): @classmethod def raises_exception(cls): try: - super(StaticLiveServerChecks, cls).setUpClass() + super().setUpClass() raise Exception("The line above should have raised an exception") except ImproperlyConfigured: # This raises ImproperlyConfigured("You're using the staticfiles # app without having set the required STATIC_URL setting.") pass finally: - super(StaticLiveServerChecks, cls).tearDownClass() + super().tearDownClass() def test_test_test(self): # Intentionally empty method so that the test is picked up by the diff --git a/tests/staticfiles_tests/test_management.py b/tests/staticfiles_tests/test_management.py index 5e1f49a5d3..ea58f9afb6 100644 --- a/tests/staticfiles_tests/test_management.py +++ b/tests/staticfiles_tests/test_management.py @@ -161,14 +161,14 @@ class TestCollectionClear(CollectionTestCase): clear_filepath = os.path.join(settings.STATIC_ROOT, 'cleared.txt') with open(clear_filepath, 'w') as f: f.write('should be cleared') - super(TestCollectionClear, self).run_collectstatic(clear=True) + super().run_collectstatic(clear=True) def test_cleared_not_found(self): self.assertFileNotFound('cleared.txt') def test_dir_not_exists(self, **kwargs): shutil.rmtree(settings.STATIC_ROOT) - super(TestCollectionClear, self).run_collectstatic(clear=True) + super().run_collectstatic(clear=True) @override_settings(STATICFILES_STORAGE='staticfiles_tests.storage.PathNotImplementedStorage') def test_handle_path_notimplemented(self): @@ -234,8 +234,7 @@ class TestCollectionExcludeNoDefaultIgnore(TestDefaults, CollectionTestCase): ``collectstatic`` management command. """ def run_collectstatic(self): - super(TestCollectionExcludeNoDefaultIgnore, self).run_collectstatic( - use_default_ignore_patterns=False) + super().run_collectstatic(use_default_ignore_patterns=False) def test_no_common_ignore_patterns(self): """ @@ -266,7 +265,7 @@ class TestCollectionDryRun(TestNoFilesCreated, CollectionTestCase): Test ``--dry-run`` option for ``collectstatic`` management command. """ def run_collectstatic(self): - super(TestCollectionDryRun, self).run_collectstatic(dry_run=True) + super().run_collectstatic(dry_run=True) class TestCollectionFilesOverride(CollectionTestCase): @@ -308,10 +307,10 @@ class TestCollectionFilesOverride(CollectionTestCase): with extend_sys_path(self.temp_dir): self.settings_with_test_app.enable() - super(TestCollectionFilesOverride, self).setUp() + super().setUp() def tearDown(self): - super(TestCollectionFilesOverride, self).tearDown() + super().tearDown() self.settings_with_test_app.disable() def test_ordering_override(self): @@ -422,7 +421,7 @@ class TestCollectionLinks(TestDefaults, CollectionTestCase): ``--link`` does not change the file-selection semantics. """ def run_collectstatic(self, clear=False, link=True, **kwargs): - super(TestCollectionLinks, self).run_collectstatic(link=link, clear=clear, **kwargs) + super().run_collectstatic(link=link, clear=clear, **kwargs) def test_links_created(self): """ diff --git a/tests/staticfiles_tests/test_storage.py b/tests/staticfiles_tests/test_storage.py index 2bbe912507..7e7b31fa67 100644 --- a/tests/staticfiles_tests/test_storage.py +++ b/tests/staticfiles_tests/test_storage.py @@ -27,7 +27,7 @@ class TestHashedFiles: def setUp(self): self._max_post_process_passes = storage.staticfiles_storage.max_post_process_passes - super(TestHashedFiles, self).setUp() + super().setUp() def tearDown(self): # Clear hashed files to avoid side effects among tests. @@ -305,7 +305,7 @@ class TestExtraPatternsCachedStorage(CollectionTestCase): def setUp(self): storage.staticfiles_storage.hashed_files.clear() # avoid cache interference - super(TestExtraPatternsCachedStorage, self).setUp() + super().setUp() def cached_file_path(self, path): fullpath = self.render_template(self.static_template_snippet(path)) @@ -338,7 +338,7 @@ class TestCollectionManifestStorage(TestHashedFiles, CollectionTestCase): Tests for the Cache busting storage """ def setUp(self): - super(TestCollectionManifestStorage, self).setUp() + super().setUp() temp_dir = tempfile.mkdtemp() os.makedirs(os.path.join(temp_dir, 'test')) @@ -359,7 +359,7 @@ class TestCollectionManifestStorage(TestHashedFiles, CollectionTestCase): os.unlink(self._clear_filename) storage.staticfiles_storage.manifest_strict = self._manifest_strict - super(TestCollectionManifestStorage, self).tearDown() + super().tearDown() def assertPostCondition(self): hashed_files = storage.staticfiles_storage.hashed_files @@ -446,7 +446,7 @@ class TestCollectionSimpleCachedStorage(CollectionTestCase): def setUp(self): storage.staticfiles_storage.hashed_files.clear() # avoid cache interference - super(TestCollectionSimpleCachedStorage, self).setUp() + super().setUp() def test_template_tag_return(self): """ @@ -474,7 +474,7 @@ class CustomStaticFilesStorage(storage.StaticFilesStorage): def __init__(self, *args, **kwargs): kwargs['file_permissions_mode'] = 0o640 kwargs['directory_permissions_mode'] = 0o740 - super(CustomStaticFilesStorage, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) @unittest.skipIf(sys.platform.startswith('win'), "Windows only partially supports chmod.") @@ -489,11 +489,11 @@ class TestStaticFilePermissions(CollectionTestCase): def setUp(self): self.umask = 0o027 self.old_umask = os.umask(self.umask) - super(TestStaticFilePermissions, self).setUp() + super().setUp() def tearDown(self): os.umask(self.old_umask) - super(TestStaticFilePermissions, self).tearDown() + super().tearDown() # Don't run collectstatic command in this test class. def run_collectstatic(self, **kwargs): @@ -556,12 +556,12 @@ class TestCollectionHashedFilesCache(CollectionTestCase): ) with open(self.testimage_path, 'r+b') as f: self._orig_image_content = f.read() - super(TestCollectionHashedFilesCache, self).setUp() + super().setUp() def tearDown(self): with open(self.testimage_path, 'w+b') as f: f.write(self._orig_image_content) - super(TestCollectionHashedFilesCache, self).tearDown() + super().tearDown() def test_file_change_after_collectstatic(self): finders.get_finder.cache_clear() diff --git a/tests/syndication_tests/feeds.py b/tests/syndication_tests/feeds.py index 87c8d962b7..0805258138 100644 --- a/tests/syndication_tests/feeds.py +++ b/tests/syndication_tests/feeds.py @@ -131,7 +131,7 @@ class TemplateContextFeed(TestRss2Feed): description_template = 'syndication/description_context.html' def get_context_data(self, **kwargs): - context = super(TemplateContextFeed, self).get_context_data(**kwargs) + context = super().get_context_data(**kwargs) context['foo'] = 'bar' return context @@ -164,21 +164,21 @@ class MyCustomAtom1Feed(feedgenerator.Atom1Feed): Test of a custom feed generator class. """ def root_attributes(self): - attrs = super(MyCustomAtom1Feed, self).root_attributes() + attrs = super().root_attributes() attrs['django'] = 'rocks' return attrs def add_root_elements(self, handler): - super(MyCustomAtom1Feed, self).add_root_elements(handler) + super().add_root_elements(handler) handler.addQuickElement('spam', 'eggs') def item_attributes(self, item): - attrs = super(MyCustomAtom1Feed, self).item_attributes(item) + attrs = super().item_attributes(item) attrs['bacon'] = 'yum' return attrs def add_item_elements(self, handler, item): - super(MyCustomAtom1Feed, self).add_item_elements(handler, item) + super().add_item_elements(handler, item) handler.addQuickElement('ministry', 'silly walks') diff --git a/tests/syndication_tests/tests.py b/tests/syndication_tests/tests.py index c9baa6537b..0563fd444c 100644 --- a/tests/syndication_tests/tests.py +++ b/tests/syndication_tests/tests.py @@ -64,7 +64,7 @@ class SyndicationFeedTest(FeedTestCase): """ @classmethod def setUpClass(cls): - super(SyndicationFeedTest, cls).setUpClass() + super().setUpClass() # This cleanup is necessary because contrib.sites cache # makes tests interfere with each other, see #11505 Site.objects.clear_cache() diff --git a/tests/template_backends/test_dummy.py b/tests/template_backends/test_dummy.py index dededfe390..5e1639cd80 100644 --- a/tests/template_backends/test_dummy.py +++ b/tests/template_backends/test_dummy.py @@ -18,7 +18,7 @@ class TemplateStringsTests(SimpleTestCase): @classmethod def setUpClass(cls): - super(TemplateStringsTests, cls).setUpClass() + super().setUpClass() params = { 'DIRS': [], 'APP_DIRS': True, diff --git a/tests/template_tests/syntax_tests/test_cache.py b/tests/template_tests/syntax_tests/test_cache.py index 7f7a6cd2cb..7dec02eb10 100644 --- a/tests/template_tests/syntax_tests/test_cache.py +++ b/tests/template_tests/syntax_tests/test_cache.py @@ -128,7 +128,7 @@ class CacheTests(SimpleTestCase): @classmethod def setUpClass(cls): cls.engine = Engine(libraries={'cache': 'django.templatetags.cache'}) - super(CacheTests, cls).setUpClass() + super().setUpClass() def test_cache_regression_20130(self): t = self.engine.from_string('{% load cache %}{% cache 1 regression_20130 %}foo{% endcache %}') diff --git a/tests/template_tests/syntax_tests/test_if_changed.py b/tests/template_tests/syntax_tests/test_if_changed.py index bf8a95d8a4..889a24fcd8 100644 --- a/tests/template_tests/syntax_tests/test_if_changed.py +++ b/tests/template_tests/syntax_tests/test_if_changed.py @@ -161,7 +161,7 @@ class IfChangedTests(SimpleTestCase): @classmethod def setUpClass(cls): cls.engine = Engine() - super(IfChangedTests, cls).setUpClass() + super().setUpClass() def test_ifchanged_concurrency(self): """ diff --git a/tests/template_tests/test_callables.py b/tests/template_tests/test_callables.py index 6a361e8409..b72b122deb 100644 --- a/tests/template_tests/test_callables.py +++ b/tests/template_tests/test_callables.py @@ -8,7 +8,7 @@ class CallableVariablesTests(TestCase): @classmethod def setUpClass(cls): cls.engine = Engine() - super(CallableVariablesTests, cls).setUpClass() + super().setUpClass() def test_callable(self): diff --git a/tests/template_tests/test_custom.py b/tests/template_tests/test_custom.py index 8eec22504c..5b788468b5 100644 --- a/tests/template_tests/test_custom.py +++ b/tests/template_tests/test_custom.py @@ -31,7 +31,7 @@ class TagTestCase(SimpleTestCase): @classmethod def setUpClass(cls): cls.engine = Engine(app_dirs=True, libraries=LIBRARIES) - super(TagTestCase, cls).setUpClass() + super().setUpClass() def verify_tag(self, tag, name): self.assertEqual(tag.__name__, name) @@ -307,7 +307,7 @@ class TemplateTagLoadingTests(SimpleTestCase): @classmethod def setUpClass(cls): cls.egg_dir = os.path.join(ROOT, 'eggs') - super(TemplateTagLoadingTests, cls).setUpClass() + super().setUpClass() def test_load_error(self): msg = ( diff --git a/tests/template_tests/test_loaders.py b/tests/template_tests/test_loaders.py index c36e1ba6be..b90586a078 100644 --- a/tests/template_tests/test_loaders.py +++ b/tests/template_tests/test_loaders.py @@ -99,7 +99,7 @@ class FileSystemLoaderTests(SimpleTestCase): @classmethod def setUpClass(cls): cls.engine = Engine(dirs=[TEMPLATE_DIR], loaders=['django.template.loaders.filesystem.Loader']) - super(FileSystemLoaderTests, cls).setUpClass() + super().setUpClass() @contextmanager def set_dirs(self, dirs): @@ -213,7 +213,7 @@ class AppDirectoriesLoaderTests(SimpleTestCase): cls.engine = Engine( loaders=['django.template.loaders.app_directories.Loader'], ) - super(AppDirectoriesLoaderTests, cls).setUpClass() + super().setUpClass() @override_settings(INSTALLED_APPS=['template_tests']) def test_get_template(self): @@ -237,7 +237,7 @@ class LocmemLoaderTests(SimpleTestCase): 'index.html': 'index', })], ) - super(LocmemLoaderTests, cls).setUpClass() + super().setUpClass() def test_get_template(self): template = self.engine.get_template('index.html') diff --git a/tests/template_tests/test_logging.py b/tests/template_tests/test_logging.py index e03809d864..802015cf97 100644 --- a/tests/template_tests/test_logging.py +++ b/tests/template_tests/test_logging.py @@ -7,7 +7,7 @@ from django.utils.deprecation import RemovedInDjango21Warning class TestHandler(logging.Handler): def __init__(self): - super(TestHandler, self).__init__() + super().__init__() self.log_record = None def emit(self, record): @@ -88,7 +88,7 @@ class IncludeNodeLoggingTests(BaseTemplateLoggingTestCase): @classmethod def setUpClass(cls): - super(IncludeNodeLoggingTests, cls).setUpClass() + super().setUpClass() cls.engine = Engine(loaders=[ ('django.template.loaders.locmem.Loader', { 'child': '{{ raises_exception }}', diff --git a/tests/template_tests/test_nodelist.py b/tests/template_tests/test_nodelist.py index b69e7c063b..35f382a163 100644 --- a/tests/template_tests/test_nodelist.py +++ b/tests/template_tests/test_nodelist.py @@ -9,7 +9,7 @@ class NodelistTest(TestCase): @classmethod def setUpClass(cls): cls.engine = Engine() - super(NodelistTest, cls).setUpClass() + super().setUpClass() def test_for(self): template = self.engine.from_string('{% for i in 1 %}{{ a }}{% endfor %}') diff --git a/tests/test_client_regress/session.py b/tests/test_client_regress/session.py index 461f66b624..ab374d37f0 100644 --- a/tests/test_client_regress/session.py +++ b/tests/test_client_regress/session.py @@ -9,7 +9,7 @@ class SessionStore(SessionBase): This means that saving the session will change the session key. """ def __init__(self, session_key=None): - super(SessionStore, self).__init__(session_key) + super().__init__(session_key) def exists(self, session_key): return False diff --git a/tests/test_runner/runner.py b/tests/test_runner/runner.py index e61de58a93..ac95aac403 100644 --- a/tests/test_runner/runner.py +++ b/tests/test_runner/runner.py @@ -5,9 +5,7 @@ class CustomOptionsTestRunner(DiscoverRunner): def __init__(self, verbosity=1, interactive=True, failfast=True, option_a=None, option_b=None, option_c=None, **kwargs): - super(CustomOptionsTestRunner, self).__init__( - verbosity=verbosity, interactive=interactive, failfast=failfast, - ) + super().__init__(verbosity=verbosity, interactive=interactive, failfast=failfast) self.option_a = option_a self.option_b = option_b self.option_c = option_c diff --git a/tests/test_runner/test_parallel.py b/tests/test_runner/test_parallel.py index 08731f68eb..0b575a606a 100644 --- a/tests/test_runner/test_parallel.py +++ b/tests/test_runner/test_parallel.py @@ -15,7 +15,7 @@ class ExceptionThatFailsUnpickling(Exception): arguments passed to __init__(). """ def __init__(self, arg): - super(ExceptionThatFailsUnpickling, self).__init__() + super().__init__() class ParallelTestRunnerTest(SimpleTestCase): diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py index ea094bbd55..19ef405852 100644 --- a/tests/test_utils/tests.py +++ b/tests/test_utils/tests.py @@ -799,7 +799,7 @@ class SkippingExtraTests(TestCase): def __call__(self, result=None): # Detect fixture loading by counting SQL queries, should be zero with self.assertNumQueries(0): - super(SkippingExtraTests, self).__call__(result) + super().__call__(result) @unittest.skip("Fixture loading should not be performed for skipped tests.") def test_fixtures_are_skipped(self): @@ -1017,7 +1017,7 @@ class TestBadSetUpTestData(TestCase): @classmethod def setUpClass(cls): try: - super(TestBadSetUpTestData, cls).setUpClass() + super().setUpClass() except cls.MyException: cls._in_atomic_block = connection.in_atomic_block diff --git a/tests/timezones/tests.py b/tests/timezones/tests.py index e5a67f745e..586a2a3b47 100644 --- a/tests/timezones/tests.py +++ b/tests/timezones/tests.py @@ -596,7 +596,7 @@ class ForcedTimeZoneDatabaseTests(TransactionTestCase): if not connection.features.test_db_allows_multiple_connections: raise SkipTest("Database doesn't support feature(s): test_db_allows_multiple_connections") - super(ForcedTimeZoneDatabaseTests, cls).setUpClass() + super().setUpClass() @contextmanager def override_database_connection_timezone(self, timezone): diff --git a/tests/utils_tests/test_lazyobject.py b/tests/utils_tests/test_lazyobject.py index 11bf163747..4a4e929cda 100644 --- a/tests/utils_tests/test_lazyobject.py +++ b/tests/utils_tests/test_lazyobject.py @@ -366,7 +366,7 @@ class BaseBaz: def __reduce__(self): self.baz = 'right' - return super(BaseBaz, self).__reduce__() + return super().__reduce__() def __eq__(self, other): if self.__class__ != other.__class__: @@ -385,11 +385,11 @@ class Baz(BaseBaz): """ def __init__(self, bar): self.bar = bar - super(Baz, self).__init__() + super().__init__() def __reduce_ex__(self, proto): self.quux = 'quux' - return super(Baz, self).__reduce_ex__(proto) + return super().__reduce_ex__(proto) class BazProxy(Baz): @@ -401,6 +401,7 @@ class BazProxy(Baz): def __init__(self, baz): self.__dict__ = baz.__dict__ self._baz = baz + # Grandparent super super(BaseBaz, self).__init__() diff --git a/tests/utils_tests/test_module_loading.py b/tests/utils_tests/test_module_loading.py index ad1135aa19..f66c167974 100644 --- a/tests/utils_tests/test_module_loading.py +++ b/tests/utils_tests/test_module_loading.py @@ -235,10 +235,10 @@ class CustomLoader(EggLoader): into one class, this isn't required. """ def setUp(self): - super(CustomLoader, self).setUp() + super().setUp() sys.path_hooks.insert(0, TestFinder) sys.path_importer_cache.clear() def tearDown(self): - super(CustomLoader, self).tearDown() + super().tearDown() sys.path_hooks.pop(0) diff --git a/tests/utils_tests/test_numberformat.py b/tests/utils_tests/test_numberformat.py index dd6057bb64..f78fc91087 100644 --- a/tests/utils_tests/test_numberformat.py +++ b/tests/utils_tests/test_numberformat.py @@ -64,7 +64,7 @@ class TestNumberFormat(TestCase): Wrapper for Decimal which prefixes each amount with the € symbol. """ def __format__(self, specifier, **kwargs): - amount = super(EuroDecimal, self).__format__(specifier, **kwargs) + amount = super().__format__(specifier, **kwargs) return '€ {}'.format(amount) price = EuroDecimal('1.23') diff --git a/tests/validation/models.py b/tests/validation/models.py index 043aa4ded7..f954cc3a4f 100644 --- a/tests/validation/models.py +++ b/tests/validation/models.py @@ -33,7 +33,7 @@ class ModelToValidate(models.Model): slug = models.SlugField(blank=True) def clean(self): - super(ModelToValidate, self).clean() + super().clean() if self.number == 11: raise ValidationError('Invalid number supplied!') diff --git a/tests/view_tests/tests/test_csrf.py b/tests/view_tests/tests/test_csrf.py index d0dd07b9e1..d5da576758 100644 --- a/tests/view_tests/tests/test_csrf.py +++ b/tests/view_tests/tests/test_csrf.py @@ -10,7 +10,7 @@ from django.views.csrf import CSRF_FAILURE_TEMPLATE_NAME, csrf_failure class CsrfViewTests(SimpleTestCase): def setUp(self): - super(CsrfViewTests, self).setUp() + super().setUp() self.client = Client(enforce_csrf_checks=True) @override_settings( diff --git a/tests/view_tests/tests/test_static.py b/tests/view_tests/tests/test_static.py index f1a992789f..e2d22eb54c 100644 --- a/tests/view_tests/tests/test_static.py +++ b/tests/view_tests/tests/test_static.py @@ -116,12 +116,12 @@ class StaticHelperTest(StaticTests): Test case to make sure the static URL pattern helper works as expected """ def setUp(self): - super(StaticHelperTest, self).setUp() + super().setUp() self._old_views_urlpatterns = urls.urlpatterns[:] urls.urlpatterns += static('/media/', document_root=media_dir) def tearDown(self): - super(StaticHelperTest, self).tearDown() + super().tearDown() urls.urlpatterns = self._old_views_urlpatterns |