Skip to content
This repository was archived by the owner on May 5, 2025. It is now read-only.

Commit 799fb2d

Browse files
feat: create ta_finish_upload (#1193)
1 parent c949122 commit 799fb2d

15 files changed

Lines changed: 729 additions & 54 deletions

services/bundle_analysis/notify/contexts/comment.py

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from shared.yaml import UserYaml
1010

1111
from database.models.core import Commit
12-
from services.activation import activate_user, schedule_new_user_activated_task
1312
from services.bundle_analysis.comparison import ComparisonLoader
1413
from services.bundle_analysis.exceptions import (
1514
MissingBaseCommit,
@@ -32,7 +31,9 @@
3231
EnrichedPull,
3332
fetch_and_update_pull_request_information_from_commit,
3433
)
35-
from services.seats import ShouldActivateSeat, determine_seat_activation
34+
from services.seats import (
35+
check_seat_activation,
36+
)
3637

3738
log = logging.getLogger(__name__)
3839

@@ -162,25 +163,14 @@ def evaluate_has_enough_changes(self) -> Self:
162163

163164
@sentry_sdk.trace
164165
def evaluate_should_use_upgrade_message(self) -> Self:
165-
activate_seat_info = determine_seat_activation(self._notification_context.pull)
166-
match activate_seat_info.should_activate_seat:
167-
case ShouldActivateSeat.AUTO_ACTIVATE:
168-
successful_activation = activate_user(
169-
db_session=self._notification_context.commit.get_db_session(),
170-
org_ownerid=activate_seat_info.owner_id,
171-
user_ownerid=activate_seat_info.author_id,
172-
)
173-
if successful_activation:
174-
schedule_new_user_activated_task(
175-
activate_seat_info.owner_id, activate_seat_info.author_id
176-
)
177-
self._notification_context.should_use_upgrade_comment = False
178-
else:
179-
self._notification_context.should_use_upgrade_comment = True
180-
case ShouldActivateSeat.MANUAL_ACTIVATE:
181-
self._notification_context.should_use_upgrade_comment = True
182-
case ShouldActivateSeat.NO_ACTIVATE:
183-
self._notification_context.should_use_upgrade_comment = False
166+
pull = self._notification_context.pull
167+
db_session = self._notification_context.commit.get_db_session()
168+
169+
self._notification_context.should_use_upgrade_comment = check_seat_activation(
170+
db_session,
171+
pull,
172+
)
173+
184174
return self
185175

186176
def load_commit_status_level(self) -> Self:

services/bundle_analysis/notify/contexts/commit_status.py

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from shared.yaml import UserYaml
1010

1111
from database.models.core import Commit
12-
from services.activation import activate_user, schedule_new_user_activated_task
1312
from services.bundle_analysis.comparison import ComparisonLoader
1413
from services.bundle_analysis.exceptions import (
1514
MissingBaseCommit,
@@ -32,7 +31,9 @@
3231
EnrichedPull,
3332
fetch_and_update_pull_request_information_from_commit,
3433
)
35-
from services.seats import ShouldActivateSeat, determine_seat_activation
34+
from services.seats import (
35+
check_seat_activation,
36+
)
3637
from services.urls import get_bundle_analysis_pull_url, get_commit_url
3738

3839

@@ -169,26 +170,15 @@ def evaluate_should_use_upgrade_message(self) -> Self:
169170
if self._notification_context.pull is None:
170171
self._notification_context.should_use_upgrade_comment = False
171172
return self
172-
activate_seat_info = determine_seat_activation(self._notification_context.pull)
173-
match activate_seat_info.should_activate_seat:
174-
case ShouldActivateSeat.AUTO_ACTIVATE:
175-
successful_activation = activate_user(
176-
db_session=self._notification_context.commit.get_db_session(),
177-
org_ownerid=activate_seat_info.owner_id,
178-
user_ownerid=activate_seat_info.author_id,
179-
)
180-
if successful_activation:
181-
schedule_new_user_activated_task(
182-
activate_seat_info.owner_id,
183-
activate_seat_info.author_id,
184-
)
185-
self._notification_context.should_use_upgrade_comment = False
186-
else:
187-
self._notification_context.should_use_upgrade_comment = True
188-
case ShouldActivateSeat.MANUAL_ACTIVATE:
189-
self._notification_context.should_use_upgrade_comment = True
190-
case ShouldActivateSeat.NO_ACTIVATE:
191-
self._notification_context.should_use_upgrade_comment = False
173+
174+
pull = self._notification_context.pull
175+
db_session = self._notification_context.commit.get_db_session()
176+
177+
self._notification_context.should_use_upgrade_comment = check_seat_activation(
178+
db_session,
179+
pull,
180+
)
181+
192182
return self
193183

194184
def build_context(self) -> Self:

services/bundle_analysis/notify/contexts/tests/test_comment_context.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,15 +249,15 @@ def test_evaluate_should_use_upgrade_message(
249249
reason="mocked",
250250
)
251251
mocker.patch(
252-
"services.bundle_analysis.notify.contexts.comment.determine_seat_activation",
252+
"services.seats.determine_seat_activation",
253253
return_value=activation_result,
254254
)
255255
mocker.patch(
256-
"services.bundle_analysis.notify.contexts.comment.activate_user",
256+
"services.seats.activate_user",
257257
return_value=auto_activate_succeeds,
258258
)
259259
mocker.patch(
260-
"services.bundle_analysis.notify.contexts.comment.schedule_new_user_activated_task",
260+
"services.seats.schedule_new_user_activated_task",
261261
return_value=auto_activate_succeeds,
262262
)
263263
head_commit, _ = get_commit_pair(dbsession)

services/bundle_analysis/notify/contexts/tests/test_commit_status_context.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -343,15 +343,15 @@ def test_evaluate_should_use_upgrade_message(
343343
reason="mocked",
344344
)
345345
mocker.patch(
346-
"services.bundle_analysis.notify.contexts.commit_status.determine_seat_activation",
346+
"services.seats.determine_seat_activation",
347347
return_value=activation_result,
348348
)
349349
mocker.patch(
350-
"services.bundle_analysis.notify.contexts.commit_status.activate_user",
350+
"services.seats.activate_user",
351351
return_value=auto_activate_succeeds,
352352
)
353353
mocker.patch(
354-
"services.bundle_analysis.notify.contexts.commit_status.schedule_new_user_activated_task",
354+
"services.seats.schedule_new_user_activated_task",
355355
return_value=auto_activate_succeeds,
356356
)
357357
head_commit, _ = get_commit_pair(dbsession)

services/bundle_analysis/notify/messages/tests/test_commit_status.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ def _setup_send_message_tests(
200200
return_value=None,
201201
)
202202
mocker.patch(
203-
"services.bundle_analysis.notify.contexts.commit_status.determine_seat_activation",
203+
"services.seats.determine_seat_activation",
204204
return_value=SeatActivationInfo(
205205
should_activate_seat=ShouldActivateSeat.NO_ACTIVATE
206206
),

services/seats.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from sqlalchemy.orm import Session
77

88
from database.models import Owner
9+
from services.activation import activate_user, schedule_new_user_activated_task
910
from services.decoration import _is_bot_account
1011
from services.repository import EnrichedPull
1112

@@ -109,3 +110,31 @@ def determine_seat_activation(pull: EnrichedPull) -> SeatActivationInfo:
109110
pr_author.ownerid,
110111
reason="auto_activate",
111112
)
113+
114+
115+
def check_seat_activation(db_session: Session, pull: EnrichedPull) -> bool:
116+
activate_seat_info = determine_seat_activation(pull)
117+
118+
match activate_seat_info.should_activate_seat:
119+
case ShouldActivateSeat.AUTO_ACTIVATE:
120+
assert activate_seat_info.owner_id
121+
assert activate_seat_info.author_id
122+
successful_activation = activate_user(
123+
db_session=db_session,
124+
org_ownerid=activate_seat_info.owner_id,
125+
user_ownerid=activate_seat_info.author_id,
126+
)
127+
if successful_activation:
128+
schedule_new_user_activated_task(
129+
activate_seat_info.owner_id,
130+
activate_seat_info.author_id,
131+
)
132+
should_show_upgrade_message = False
133+
else:
134+
should_show_upgrade_message = True
135+
case ShouldActivateSeat.MANUAL_ACTIVATE:
136+
should_show_upgrade_message = True
137+
case ShouldActivateSeat.NO_ACTIVATE:
138+
should_show_upgrade_message = False
139+
140+
return should_show_upgrade_message

0 commit comments

Comments
 (0)