diff --git a/src/Pipfile b/src/Pipfile index a0ada646a..51417d578 100644 --- a/src/Pipfile +++ b/src/Pipfile @@ -4,7 +4,7 @@ verify_ssl = true name = "pypi" [packages] -django = "4.2.3" +django = "4.2.10" cfenv = "*" django-cors-headers = "*" pycryptodomex = "*" diff --git a/src/Pipfile.lock b/src/Pipfile.lock index 528408952..7d511a0e5 100644 --- a/src/Pipfile.lock +++ b/src/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "8db8d1bdb9c343c50771fc8bd001c555037dc3606a48dcafb3800d743fb95f3e" + "sha256": "a672aeb8951fd850e90ad87c6f03cf71e2fc2b387d56fd3942361cb0b45bb449" }, "pipfile-spec": 6, "requires": {}, @@ -288,12 +288,12 @@ }, "django": { "hashes": [ - "sha256:45a747e1c5b3d6df1b141b1481e193b033fd1fdbda3ff52677dc81afdaacbaed", - "sha256:f7c7852a5ac5a3da5a8d5b35cc6168f31b605971441798dac845f17ca8028039" + "sha256:a2d4c4d4ea0b6f0895acde632071aff6400bfc331228fc978b05452a0ff3e9f1", + "sha256:b1260ed381b10a11753c73444408e19869f3241fc45c985cd55a30177c789d13" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==4.2.3" + "version": "==4.2.10" }, "django-allow-cidr": { "hashes": [ @@ -1230,12 +1230,12 @@ }, "django": { "hashes": [ - "sha256:45a747e1c5b3d6df1b141b1481e193b033fd1fdbda3ff52677dc81afdaacbaed", - "sha256:f7c7852a5ac5a3da5a8d5b35cc6168f31b605971441798dac845f17ca8028039" + "sha256:a2d4c4d4ea0b6f0895acde632071aff6400bfc331228fc978b05452a0ff3e9f1", + "sha256:b1260ed381b10a11753c73444408e19869f3241fc45c985cd55a30177c789d13" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==4.2.3" + "version": "==4.2.10" }, "django-debug-toolbar": { "hashes": [ diff --git a/src/api/tests/test_available.py b/src/api/tests/test_available.py index fa9dadcd4..b85ea6335 100644 --- a/src/api/tests/test_available.py +++ b/src/api/tests/test_available.py @@ -19,7 +19,6 @@ API_BASE_PATH = "/api/v1/available/?domain=" class AvailableViewTest(MockEppLib): - """Test that the view function works as expected.""" def setUp(self): @@ -123,7 +122,6 @@ class AvailableViewTest(MockEppLib): class AvailableAPITest(MockEppLib): - """Test that the API can be called as expected.""" def setUp(self): diff --git a/src/api/views.py b/src/api/views.py index f9fa2d1ea..2199e15ac 100644 --- a/src/api/views.py +++ b/src/api/views.py @@ -1,4 +1,5 @@ """Internal API views""" + from django.apps import apps from django.views.decorators.http import require_http_methods from django.http import HttpResponse diff --git a/src/registrar/admin.py b/src/registrar/admin.py index 4034bf35b..c5f5be276 100644 --- a/src/registrar/admin.py +++ b/src/registrar/admin.py @@ -739,7 +739,6 @@ class DomainApplicationAdminForm(forms.ModelForm): class DomainApplicationAdmin(ListHeaderAdmin): - """Custom domain applications admin class.""" class InvestigatorFilter(admin.SimpleListFilter): diff --git a/src/registrar/apps.py b/src/registrar/apps.py index 9f1b186ad..fcb5c17fd 100644 --- a/src/registrar/apps.py +++ b/src/registrar/apps.py @@ -2,7 +2,6 @@ from django.apps import AppConfig class RegistrarConfig(AppConfig): - """Configure signal handling for our registrar Django application.""" name = "registrar" diff --git a/src/registrar/config/settings.py b/src/registrar/config/settings.py index 372434887..009baa1c6 100644 --- a/src/registrar/config/settings.py +++ b/src/registrar/config/settings.py @@ -16,6 +16,7 @@ $ docker-compose exec app python manage.py shell ``` """ + import environs from base64 import b64decode from cfenv import AppEnv # type: ignore diff --git a/src/registrar/fixtures_applications.py b/src/registrar/fixtures_applications.py index 659a3040e..3e4e0e362 100644 --- a/src/registrar/fixtures_applications.py +++ b/src/registrar/fixtures_applications.py @@ -201,7 +201,6 @@ class DomainApplicationFixture: class DomainFixture(DomainApplicationFixture): - """Create one domain and permissions on it for each user.""" @classmethod diff --git a/src/registrar/management/commands/cat_files_into_getgov.py b/src/registrar/management/commands/cat_files_into_getgov.py index 4ccb1301b..4fb7ad5b8 100644 --- a/src/registrar/management/commands/cat_files_into_getgov.py +++ b/src/registrar/management/commands/cat_files_into_getgov.py @@ -1,4 +1,5 @@ """Loads files from /tmp into our sandboxes""" + import glob import logging diff --git a/src/registrar/management/commands/generate_current_federal_report.py b/src/registrar/management/commands/generate_current_federal_report.py index 1a123bf5b..6516bf99b 100644 --- a/src/registrar/management/commands/generate_current_federal_report.py +++ b/src/registrar/management/commands/generate_current_federal_report.py @@ -1,4 +1,5 @@ """Generates current-full.csv and current-federal.csv then uploads them to the desired URL.""" + import logging import os diff --git a/src/registrar/management/commands/generate_current_full_report.py b/src/registrar/management/commands/generate_current_full_report.py index 80c031605..be810ee10 100644 --- a/src/registrar/management/commands/generate_current_full_report.py +++ b/src/registrar/management/commands/generate_current_full_report.py @@ -1,4 +1,5 @@ """Generates current-full.csv and current-federal.csv then uploads them to the desired URL.""" + import logging import os diff --git a/src/registrar/management/commands/patch_federal_agency_info.py b/src/registrar/management/commands/patch_federal_agency_info.py index 35642c1bf..b286f1516 100644 --- a/src/registrar/management/commands/patch_federal_agency_info.py +++ b/src/registrar/management/commands/patch_federal_agency_info.py @@ -1,4 +1,5 @@ """Loops through each valid DomainInformation object and updates its agency value""" + import argparse import csv import logging diff --git a/src/registrar/management/commands/utility/epp_data_containers.py b/src/registrar/management/commands/utility/epp_data_containers.py index 1f370dca7..9e5769751 100644 --- a/src/registrar/management/commands/utility/epp_data_containers.py +++ b/src/registrar/management/commands/utility/epp_data_containers.py @@ -5,6 +5,7 @@ Regarding our dataclasses: Not intended to be used as models but rather as an alternative to storing as a dictionary. By keeping it as a dataclass instead of a dictionary, we can maintain data consistency. """ # noqa + from dataclasses import dataclass, field from datetime import date from enum import Enum diff --git a/src/registrar/management/commands/utility/extra_transition_domain_helper.py b/src/registrar/management/commands/utility/extra_transition_domain_helper.py index c082552eb..5c3573fb1 100644 --- a/src/registrar/management/commands/utility/extra_transition_domain_helper.py +++ b/src/registrar/management/commands/utility/extra_transition_domain_helper.py @@ -1,4 +1,5 @@ """""" + import csv from dataclasses import dataclass from datetime import datetime diff --git a/src/registrar/models/contact.py b/src/registrar/models/contact.py index ff7389780..d316cde4c 100644 --- a/src/registrar/models/contact.py +++ b/src/registrar/models/contact.py @@ -6,7 +6,6 @@ from .utility.time_stamped_model import TimeStampedModel class Contact(TimeStampedModel): - """Contact information follows a similar pattern for each contact.""" user = models.OneToOneField( diff --git a/src/registrar/models/domain_application.py b/src/registrar/models/domain_application.py index c37fc19b5..307115112 100644 --- a/src/registrar/models/domain_application.py +++ b/src/registrar/models/domain_application.py @@ -17,7 +17,6 @@ logger = logging.getLogger(__name__) class DomainApplication(TimeStampedModel): - """A registrant's application for a new domain.""" # Constants for choice fields @@ -97,7 +96,6 @@ class DomainApplication(TimeStampedModel): ARMED_FORCES_AP = "AP", "Armed Forces Pacific (AP)" class OrganizationChoices(models.TextChoices): - """ Primary organization choices: For use in django admin @@ -114,7 +112,6 @@ class DomainApplication(TimeStampedModel): SCHOOL_DISTRICT = "school_district", "School district" class OrganizationChoicesVerbose(models.TextChoices): - """ Secondary organization choices For use in the application form and on the templates diff --git a/src/registrar/models/domain_information.py b/src/registrar/models/domain_information.py index 65d099e5a..acaa330bb 100644 --- a/src/registrar/models/domain_information.py +++ b/src/registrar/models/domain_information.py @@ -14,7 +14,6 @@ logger = logging.getLogger(__name__) class DomainInformation(TimeStampedModel): - """A registrant's domain information for that domain, exported from DomainApplication. We use these field from DomainApplication with few exceptions which are 'removed' via pop at the bottom of this file. Most of design for domain diff --git a/src/registrar/models/user_domain_role.py b/src/registrar/models/user_domain_role.py index 479f75089..6e915e4af 100644 --- a/src/registrar/models/user_domain_role.py +++ b/src/registrar/models/user_domain_role.py @@ -4,11 +4,9 @@ from .utility.time_stamped_model import TimeStampedModel class UserDomainRole(TimeStampedModel): - """This is a linking table that connects a user with a role on a domain.""" class Roles(models.TextChoices): - """The possible roles are listed here. Implementation of the named roles for allowing particular operations happens diff --git a/src/registrar/models/verified_by_staff.py b/src/registrar/models/verified_by_staff.py index 4c9e76e9d..a6d861504 100644 --- a/src/registrar/models/verified_by_staff.py +++ b/src/registrar/models/verified_by_staff.py @@ -4,7 +4,6 @@ from .utility.time_stamped_model import TimeStampedModel class VerifiedByStaff(TimeStampedModel): - """emails that get added to this table will bypass ial2 on login.""" email = models.EmailField( diff --git a/src/registrar/models/website.py b/src/registrar/models/website.py index d21564531..0b337e397 100644 --- a/src/registrar/models/website.py +++ b/src/registrar/models/website.py @@ -4,7 +4,6 @@ from .utility.time_stamped_model import TimeStampedModel class Website(TimeStampedModel): - """Keep domain names in their own table so that applications can refer to many of them.""" diff --git a/src/registrar/no_cache_middleware.py b/src/registrar/no_cache_middleware.py index 6f509b9d6..5edfca20e 100644 --- a/src/registrar/no_cache_middleware.py +++ b/src/registrar/no_cache_middleware.py @@ -6,7 +6,6 @@ better caching responses. class NoCacheMiddleware: - """Middleware to add a single header to every response.""" def __init__(self, get_response): diff --git a/src/registrar/templatetags/field_helpers.py b/src/registrar/templatetags/field_helpers.py index bc296753e..811897908 100644 --- a/src/registrar/templatetags/field_helpers.py +++ b/src/registrar/templatetags/field_helpers.py @@ -1,4 +1,5 @@ """Custom field helpers for our inputs.""" + import re from django import template diff --git a/src/registrar/tests/test_models.py b/src/registrar/tests/test_models.py index d7c8960f6..41fa75f1d 100644 --- a/src/registrar/tests/test_models.py +++ b/src/registrar/tests/test_models.py @@ -600,7 +600,6 @@ class TestPermissions(TestCase): class TestDomainInformation(TestCase): - """Test the DomainInformation model, when approved or otherwise""" def setUp(self): @@ -653,7 +652,6 @@ class TestDomainInformation(TestCase): class TestInvitations(TestCase): - """Test the retrieval of invitations.""" def setUp(self): diff --git a/src/registrar/tests/test_models_domain.py b/src/registrar/tests/test_models_domain.py index ca0a5e8d8..1c4d2521e 100644 --- a/src/registrar/tests/test_models_domain.py +++ b/src/registrar/tests/test_models_domain.py @@ -3,6 +3,7 @@ Feature being tested: Registry Integration This file tests the various ways in which the registrar interacts with the registry. """ + from django.test import TestCase from django.db.utils import IntegrityError from unittest.mock import MagicMock, patch, call diff --git a/src/registrar/tests/test_views_application.py b/src/registrar/tests/test_views_application.py index 02fe5ff76..2b08d8d74 100644 --- a/src/registrar/tests/test_views_application.py +++ b/src/registrar/tests/test_views_application.py @@ -28,7 +28,6 @@ logger = logging.getLogger(__name__) class DomainApplicationTests(TestWithUser, WebTest): - """Webtests for domain application to test filling and submitting.""" # Doesn't work with CSRF checking diff --git a/src/registrar/tests/test_views_domain.py b/src/registrar/tests/test_views_domain.py index c9422e700..2c8e796ac 100644 --- a/src/registrar/tests/test_views_domain.py +++ b/src/registrar/tests/test_views_domain.py @@ -1236,7 +1236,6 @@ class TestDomainSecurityEmail(TestDomainOverview): class TestDomainDNSSEC(TestDomainOverview): - """MockEPPLib is already inherited.""" def test_dnssec_page_refreshes_enable_button(self): diff --git a/src/registrar/utility/email.py b/src/registrar/utility/email.py index d56c02cbf..461637f23 100644 --- a/src/registrar/utility/email.py +++ b/src/registrar/utility/email.py @@ -10,7 +10,6 @@ logger = logging.getLogger(__name__) class EmailSendingError(RuntimeError): - """Local error for handling all failures when sending email.""" pass diff --git a/src/registrar/views/domain.py b/src/registrar/views/domain.py index 04fe1ce3a..d5f8f67b4 100644 --- a/src/registrar/views/domain.py +++ b/src/registrar/views/domain.py @@ -135,7 +135,6 @@ class DomainFormBaseView(DomainBaseView, FormMixin): class DomainView(DomainBaseView): - """Domain detail overview page.""" template_name = "domain_detail.html" diff --git a/src/registrar/views/utility/mixins.py b/src/registrar/views/utility/mixins.py index b2c4cb364..8de75e151 100644 --- a/src/registrar/views/utility/mixins.py +++ b/src/registrar/views/utility/mixins.py @@ -146,7 +146,6 @@ class OrderableFieldsMixin: class PermissionsLoginMixin(PermissionRequiredMixin): - """Mixin that redirects to login page if not logged in, otherwise 403.""" def handle_no_permission(self): @@ -155,7 +154,6 @@ class PermissionsLoginMixin(PermissionRequiredMixin): class DomainPermission(PermissionsLoginMixin): - """Permission mixin that redirects to domain if user has access, otherwise 403""" @@ -264,7 +262,6 @@ class DomainPermission(PermissionsLoginMixin): class DomainApplicationPermission(PermissionsLoginMixin): - """Permission mixin that redirects to domain application if user has access, otherwise 403""" @@ -287,7 +284,6 @@ class DomainApplicationPermission(PermissionsLoginMixin): class UserDeleteDomainRolePermission(PermissionsLoginMixin): - """Permission mixin for UserDomainRole if user has access, otherwise 403""" @@ -324,7 +320,6 @@ class UserDeleteDomainRolePermission(PermissionsLoginMixin): class DomainApplicationPermissionWithdraw(PermissionsLoginMixin): - """Permission mixin that redirects to withdraw action on domain application if user has access, otherwise 403""" @@ -347,7 +342,6 @@ class DomainApplicationPermissionWithdraw(PermissionsLoginMixin): class ApplicationWizardPermission(PermissionsLoginMixin): - """Permission mixin that redirects to start or edit domain application if user has access, otherwise 403""" @@ -365,7 +359,6 @@ class ApplicationWizardPermission(PermissionsLoginMixin): class DomainInvitationPermission(PermissionsLoginMixin): - """Permission mixin that redirects to domain invitation if user has access, otherwise 403" diff --git a/src/registrar/views/utility/permission_views.py b/src/registrar/views/utility/permission_views.py index 54c96d602..02d3db96d 100644 --- a/src/registrar/views/utility/permission_views.py +++ b/src/registrar/views/utility/permission_views.py @@ -20,7 +20,6 @@ logger = logging.getLogger(__name__) class DomainPermissionView(DomainPermission, DetailView, abc.ABC): - """Abstract base view for domains that enforces permissions. This abstract view cannot be instantiated. Actual views must specify @@ -58,7 +57,6 @@ class DomainPermissionView(DomainPermission, DetailView, abc.ABC): class DomainApplicationPermissionView(DomainApplicationPermission, DetailView, abc.ABC): - """Abstract base view for domain applications that enforces permissions This abstract view cannot be instantiated. Actual views must specify @@ -78,7 +76,6 @@ class DomainApplicationPermissionView(DomainApplicationPermission, DetailView, a class DomainApplicationPermissionWithdrawView(DomainApplicationPermissionWithdraw, DetailView, abc.ABC): - """Abstract base view for domain application withdraw function This abstract view cannot be instantiated. Actual views must specify @@ -98,7 +95,6 @@ class DomainApplicationPermissionWithdrawView(DomainApplicationPermissionWithdra class ApplicationWizardPermissionView(ApplicationWizardPermission, TemplateView, abc.ABC): - """Abstract base view for the application form that enforces permissions This abstract view cannot be instantiated. Actual views must specify @@ -113,7 +109,6 @@ class ApplicationWizardPermissionView(ApplicationWizardPermission, TemplateView, class DomainInvitationPermissionDeleteView(DomainInvitationPermission, DeleteView, abc.ABC): - """Abstract view for deleting a domain invitation. This one is fairly specialized, but this is the only thing that we do @@ -127,7 +122,6 @@ class DomainInvitationPermissionDeleteView(DomainInvitationPermission, DeleteVie class DomainApplicationPermissionDeleteView(DomainApplicationPermission, DeleteView, abc.ABC): - """Abstract view for deleting a DomainApplication.""" model = DomainApplication @@ -135,7 +129,6 @@ class DomainApplicationPermissionDeleteView(DomainApplicationPermission, DeleteV class UserDomainRolePermissionDeleteView(UserDeleteDomainRolePermission, DeleteView, abc.ABC): - """Abstract base view for deleting a UserDomainRole. This abstract view cannot be instantiated. Actual views must specify diff --git a/src/requirements.txt b/src/requirements.txt index 7c79cf8a3..a6130a3bf 100644 --- a/src/requirements.txt +++ b/src/requirements.txt @@ -12,7 +12,7 @@ cryptography==42.0.2; python_version >= '3.7' defusedxml==0.7.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' dj-database-url==2.1.0 dj-email-url==1.0.6 -django==4.2.3; python_version >= '3.8' +django==4.2.10; python_version >= '3.8' django-allow-cidr==0.7.1 django-auditlog==2.3.0; python_version >= '3.7' django-cache-url==3.4.5