From b06225af36f8b1fbd72cd2a6737381ac1003522a Mon Sep 17 00:00:00 2001 From: Daniel Griesser Date: Mon, 22 Apr 2024 10:19:15 +0200 Subject: [PATCH 1/3] ref: Add test case repro inc-727 --- tests/sentry/web/frontend/test_setup_wizard.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/sentry/web/frontend/test_setup_wizard.py b/tests/sentry/web/frontend/test_setup_wizard.py index 1b6cf0cf468677..52cefdda91e52d 100644 --- a/tests/sentry/web/frontend/test_setup_wizard.py +++ b/tests/sentry/web/frontend/test_setup_wizard.py @@ -115,7 +115,7 @@ def test_return_user_auth_token_if_multiple_orgs(self): assert resp.status_code == 200 self.assertTemplateUsed(resp, "sentry/setup-wizard.html") cached = default_cache.get(key) - + assert cached.get("apiKeys") is not None assert cached.get("apiKeys") == serialize(user_api_token) def test_return_org_auth_token_if_one_org(self): From 20c76af4fefe24313fc1bca836f6acb00af516ab Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Mon, 22 Apr 2024 11:11:17 +0200 Subject: [PATCH 2/3] fix(setup-wizard): Always create a new user API token --- src/sentry/web/frontend/setup_wizard.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/sentry/web/frontend/setup_wizard.py b/src/sentry/web/frontend/setup_wizard.py index 4d8cc581ef29e8..df78d05ac6d4a0 100644 --- a/src/sentry/web/frontend/setup_wizard.py +++ b/src/sentry/web/frontend/setup_wizard.py @@ -154,15 +154,12 @@ def get_token(mappings: list[OrganizationMapping], user: RpcUser): return token # Otherwise, generate a user token - tokens = ApiToken.objects.filter(user_id=user.id) - token = next((token for token in tokens if "project:releases" in token.get_scopes()), None) - if token is None: - token = ApiToken.objects.create( - user_id=user.id, - scope_list=["project:releases"], - token_type=AuthTokenType.USER, - expires_at=None, - ) + token = ApiToken.objects.create( + user_id=user.id, + scope_list=["project:releases"], + token_type=AuthTokenType.USER, + expires_at=None, + ) return serialize(token) From 29e3b78ec15c712b01ee089d6291abcb45a7b507 Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Mon, 22 Apr 2024 11:45:22 +0200 Subject: [PATCH 3/3] fix test(?) --- tests/sentry/web/frontend/test_setup_wizard.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/tests/sentry/web/frontend/test_setup_wizard.py b/tests/sentry/web/frontend/test_setup_wizard.py index 52cefdda91e52d..2fab385c55ae0c 100644 --- a/tests/sentry/web/frontend/test_setup_wizard.py +++ b/tests/sentry/web/frontend/test_setup_wizard.py @@ -2,9 +2,7 @@ from django.urls import reverse from sentry.api.endpoints.setup_wizard import SETUP_WIZARD_CACHE_KEY -from sentry.api.serializers import serialize from sentry.cache import default_cache -from sentry.models.apitoken import ApiToken from sentry.models.projectkey import ProjectKey from sentry.silo.base import SiloMode from sentry.testutils.cases import PermissionTestCase @@ -90,13 +88,6 @@ def test_project_multiple_keys(self): assert len(cached.get("projects")[0].get("keys")) == 2 def test_return_user_auth_token_if_multiple_orgs(self): - user_api_token = ApiToken.objects.create_or_update( - user=self.user, - scope_list=["project:releases"], - refresh_token=None, - expires_at=None, - )[0] - self.org = self.create_organization(name="org1", owner=self.user) self.org2 = self.create_organization(name="org2", owner=self.user) self.team = self.create_team(organization=self.org, name="Mariachi Band") @@ -115,8 +106,11 @@ def test_return_user_auth_token_if_multiple_orgs(self): assert resp.status_code == 200 self.assertTemplateUsed(resp, "sentry/setup-wizard.html") cached = default_cache.get(key) + assert cached.get("apiKeys") is not None - assert cached.get("apiKeys") == serialize(user_api_token) + + token = cached.get("apiKeys")["token"] + assert token.startswith("sntryu_") def test_return_org_auth_token_if_one_org(self): self.org = self.create_organization(owner=self.user)