Просмотр исходного кода

ref: fix more nullability errors in tests (#72463)

this fixes about ~80 more errors when BaseManager becomes typechecked

<!-- Describe your PR here. -->
anthony sottile 9 месяцев назад
Родитель
Сommit
e8d51148bf

+ 2 - 2
src/sentry/models/projectcodeowners.py

@@ -1,7 +1,7 @@
 from __future__ import annotations
 
 import logging
-from collections.abc import Sequence
+from collections.abc import Iterable
 
 from django.db import models
 from django.db.models.signals import post_delete, post_save, pre_save
@@ -66,7 +66,7 @@ class ProjectCodeOwners(Model):
 
     @classmethod
     def merge_code_owners_list(
-        self, code_owners_list: Sequence[ProjectCodeOwners]
+        self, code_owners_list: Iterable[ProjectCodeOwners]
     ) -> ProjectCodeOwners | None:
         """
         Merge list of code_owners into a single code_owners object concatenating

+ 2 - 2
tests/acceptance/chartcuterie/test_image_block_builder.py

@@ -62,7 +62,7 @@ class TestSlackImageBlockBuilder(
                 timestamp=before_now(minutes=i + 10),
                 project=self.project.id,
             )
-        group = Group.objects.first()
+        group = Group.objects.get()
         group.update(type=PerformanceP95EndpointRegressionGroupType.type_id)
         return group
 
@@ -134,7 +134,7 @@ class TestSlackImageBlockBuilder(
                 timestamp=hour_ago,
             )
 
-        group = Group.objects.first()
+        group = Group.objects.get()
 
         with self.feature(self.features):
             image_block = ImageBlockBuilder(group=group).build_image_block()

+ 1 - 1
tests/acceptance/test_organization_alert_rule_details.py

@@ -13,7 +13,7 @@ class OrganizationAlertRuleDetailsTest(AcceptanceTestCase, SnubaTestCase):
     def setUp(self):
         super().setUp()
         self.login_as(self.user)
-        self.rule = Rule.objects.filter(project=self.project).first()
+        self.rule = Rule.objects.get(project=self.project)
         self.path = f"/organizations/{self.organization.slug}/alerts/rules/{self.project.slug}/{self.rule.id}/details/"
 
     def test_empty_alert_rule_details(self):

+ 1 - 1
tests/sentry/api/endpoints/test_group_external_issues.py

@@ -18,7 +18,7 @@ class GroupExternalIssuesEndpointTest(APITestCase):
 
         url = f"/api/0/issues/{group.id}/external-issues/"
         response = self.client.get(url, format="json")
-        external_issue = PlatformExternalIssue.objects.first()
+        external_issue = PlatformExternalIssue.objects.get()
         assert response.status_code == 200, response.content
         assert len(response.data) == 1
         assert response.data == [

+ 1 - 1
tests/sentry/api/endpoints/test_group_notes_details.py

@@ -115,7 +115,7 @@ class GroupNotesDetailsTest(APITestCase):
 
         activity = Activity.objects.filter(
             group=group, type=ActivityType.NOTE.value, user_id=self.user.id
-        ).first()
+        )[0]
 
         url = f"/api/0/issues/{group.id}/comments/{activity.id}/"
         response = self.client.delete(url, format="json")

+ 1 - 1
tests/sentry/api/endpoints/test_group_tagkey_details.py

@@ -15,7 +15,7 @@ class GroupTagDetailsTest(APITestCase, SnubaTestCase, PerformanceIssueTestCase):
                 project_id=self.project.id,
             )
 
-        group = Group.objects.first()
+        group = Group.objects.get()
 
         self.login_as(user=self.user)
 

+ 2 - 0
tests/sentry/api/endpoints/test_organization_dashboard_details.py

@@ -1951,6 +1951,7 @@ class OrganizationDashboardVisitTest(OrganizationDashboardDetailsTestCase):
         )
 
     def test_visit_dashboard(self):
+        assert self.dashboard.last_visited is not None
         last_visited = self.dashboard.last_visited
         assert self.dashboard.visits == 1
 
@@ -1959,6 +1960,7 @@ class OrganizationDashboardVisitTest(OrganizationDashboardDetailsTestCase):
 
         dashboard = Dashboard.objects.get(id=self.dashboard.id)
         assert dashboard.visits == 2
+        assert dashboard.last_visited is not None
         assert dashboard.last_visited > last_visited
 
     def test_visit_dashboard_no_access(self):

+ 3 - 3
tests/sentry/api/endpoints/test_organization_sentry_app_installations.py

@@ -111,12 +111,12 @@ class PostSentryAppInstallationsTest(SentryAppInstallationsTest):
     method = "post"
 
     def get_expected_response(self, app, org):
+        installation = SentryAppInstallation.objects.get(sentry_app=app, organization_id=org.id)
+        assert installation.api_grant is not None
         return {
             "app": {"slug": app.slug, "uuid": app.uuid},
             "organization": {"slug": org.slug},
-            "code": SentryAppInstallation.objects.get(
-                sentry_app=app, organization_id=org.id
-            ).api_grant.code,
+            "code": installation.api_grant.code,
         }
 
     def test_install_unpublished_app(self):

+ 5 - 5
tests/sentry/api/endpoints/test_project_details.py

@@ -1545,12 +1545,12 @@ class ProjectDeleteTest(APITestCase):
             model_name="Project", object_id=self.project.id
         ).exists()
 
-        deleted_project = Project.objects.get(id=self.project.id)
-        assert deleted_project.status == ObjectStatus.PENDING_DELETION
-        assert deleted_project.slug == "abc123"
+        project = Project.objects.get(id=self.project.id)
+        assert project.status == ObjectStatus.PENDING_DELETION
+        assert project.slug == "abc123"
         assert OrganizationOption.objects.filter(
-            organization_id=deleted_project.organization_id,
-            key=deleted_project.build_pending_deletion_key(),
+            organization_id=project.organization_id,
+            key=project.build_pending_deletion_key(),
         ).exists()
         deleted_project = DeletedProject.objects.get(slug=self.project.slug)
         self.assert_valid_deleted_log(deleted_project, self.project)

+ 1 - 1
tests/sentry/api/endpoints/test_project_proguard_artifact_releases.py

@@ -42,7 +42,7 @@ class ProguardArtifactReleasesEndpointTest(APITestCase):
         assert response.status_code == 201, response.content
         assert ProguardArtifactRelease.objects.count() == 1
 
-        proguard_artifact_release = ProguardArtifactRelease.objects.first()
+        proguard_artifact_release = ProguardArtifactRelease.objects.get()
         assert proguard_artifact_release.organization_id == project.organization.id
         assert proguard_artifact_release.project_id == project.id
 

Некоторые файлы не были показаны из-за большого количества измененных файлов