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

Commit ba63895

Browse files
committed
starting to fix tests and some logic
1 parent f21a5f1 commit ba63895

File tree

8 files changed

+120
-42
lines changed

8 files changed

+120
-42
lines changed

codecov_auth/commands/owner/interactors/tests/test_cancel_trial.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
from django.test import TransactionTestCase
66
from freezegun import freeze_time
77
from shared.django_apps.codecov.commands.exceptions import ValidationError
8+
from shared.django_apps.codecov_auth.tests.factories import PlanFactory, TierFactory
89
from shared.django_apps.core.tests.factories import OwnerFactory
9-
from shared.plan.constants import PlanName, TrialStatus
10+
from shared.plan.constants import PlanName, TierName, TrialStatus
1011

1112
from codecov.commands.exceptions import Unauthorized
1213
from codecov.commands.exceptions import ValidationError as CodecovValidationError
@@ -16,6 +17,10 @@
1617

1718

1819
class CancelTrialInteractorTest(TransactionTestCase):
20+
def setUp(self):
21+
self.tier = TierFactory(tier_name=TierName.BASIC.value)
22+
self.plan = PlanFactory(tier=self.tier)
23+
1924
@async_to_sync
2025
def execute(self, current_user, org_username=None):
2126
current_user = current_user
@@ -27,6 +32,7 @@ def test_cancel_trial_raises_exception_when_owner_is_not_in_db(self):
2732
current_user = OwnerFactory(
2833
username="random-user-123",
2934
service="github",
35+
plan=self.plan.name,
3036
)
3137
with pytest.raises(CodecovValidationError):
3238
self.execute(current_user=current_user, org_username="some-other-username")
@@ -35,10 +41,12 @@ def test_cancel_trial_raises_exception_when_current_user_not_part_of_org(self):
3541
current_user = OwnerFactory(
3642
username="random-user-123",
3743
service="github",
44+
plan=self.plan.name,
3845
)
3946
OwnerFactory(
4047
username="random-user-456",
4148
service="github",
49+
plan=self.plan.name,
4250
)
4351
with pytest.raises(Unauthorized):
4452
self.execute(current_user=current_user, org_username="random-user-456")
@@ -54,6 +62,7 @@ def test_cancel_trial_raises_exception_when_owners_trial_status_is_not_started(
5462
service="github",
5563
trial_start_date=trial_start_date,
5664
trial_end_date=trial_end_date,
65+
plan=self.plan.name,
5766
)
5867
with pytest.raises(ValidationError):
5968
self.execute(current_user=current_user, org_username=current_user.username)
@@ -68,6 +77,7 @@ def test_cancel_trial_raises_exception_when_owners_trial_status_is_expired(self)
6877
service="github",
6978
trial_start_date=trial_start_date,
7079
trial_end_date=trial_end_date,
80+
plan=self.plan.name,
7181
)
7282
with pytest.raises(ValidationError):
7383
self.execute(current_user=current_user, org_username=current_user.username)
@@ -77,13 +87,15 @@ def test_cancel_trial_starts_trial_for_org_that_has_trial_ongoing(self):
7787
now = datetime.now()
7888
trial_start_date = now
7989
trial_end_date = now + timedelta(days=3)
90+
trial_tier = TierFactory(tier_name=TierName.TRIAL.value)
91+
trial_plan = PlanFactory(tier=trial_tier, name=PlanName.TRIAL_PLAN_NAME.value)
8092
current_user: Owner = OwnerFactory(
8193
username="random-user-123",
8294
service="github",
8395
trial_start_date=trial_start_date,
8496
trial_end_date=trial_end_date,
8597
trial_status=TrialStatus.ONGOING.value,
86-
plan=PlanName.TRIAL_PLAN_NAME.value,
98+
plan=trial_plan.name,
8799
)
88100
self.execute(current_user=current_user, org_username=current_user.username)
89101
current_user.refresh_from_db()

codecov_auth/commands/owner/interactors/tests/test_get_uploads_number_per_user.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
from datetime import datetime, timedelta
22

33
from django.test import TransactionTestCase
4+
from shared.django_apps.codecov_auth.tests.factories import PlanFactory, TierFactory
45
from shared.django_apps.core.tests.factories import (
56
CommitFactory,
67
OwnerFactory,
78
RepositoryFactory,
89
)
910
from shared.django_apps.reports.models import ReportType
10-
from shared.plan.constants import TrialStatus
11+
from shared.plan.constants import PlanName, TierName, TrialStatus
1112
from shared.upload.utils import UploaderType, insert_coverage_measurement
1213

1314
from reports.tests.factories import CommitReportFactory, UploadFactory
@@ -17,8 +18,10 @@
1718

1819
class GetUploadsNumberPerUserInteractorTest(TransactionTestCase):
1920
def setUp(self):
20-
self.user_with_no_uploads = OwnerFactory()
21-
self.user_with_uploads = OwnerFactory()
21+
self.tier = TierFactory(tier_name=TierName.BASIC.value)
22+
self.plan = PlanFactory(tier=self.tier, monthly_uploads_limit=250)
23+
self.user_with_no_uploads = OwnerFactory(plan=self.plan.name)
24+
self.user_with_uploads = OwnerFactory(plan=self.plan.name)
2225
repo = RepositoryFactory.create(author=self.user_with_uploads, private=True)
2326
commit = CommitFactory.create(repository=repo)
2427
report = CommitReportFactory.create(
@@ -44,10 +47,17 @@ def setUp(self):
4447
report_within_40_days.save()
4548

4649
# Trial Data
50+
trial_tier = TierFactory(tier_name=TierName.TRIAL.value)
51+
trial_plan = PlanFactory(
52+
tier=trial_tier,
53+
name=PlanName.TRIAL_PLAN_NAME.value,
54+
monthly_uploads_limit=250,
55+
)
4756
self.trial_owner = OwnerFactory(
4857
trial_status=TrialStatus.EXPIRED.value,
4958
trial_start_date=datetime.now() + timedelta(days=-10),
5059
trial_end_date=datetime.now() + timedelta(days=-2),
60+
plan=trial_plan.name,
5161
)
5262
trial_repo = RepositoryFactory.create(author=self.trial_owner, private=True)
5363
trial_commit = CommitFactory.create(repository=trial_repo)

codecov_auth/commands/owner/interactors/tests/test_start_trial.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
from django.test import TransactionTestCase
66
from freezegun import freeze_time
77
from shared.django_apps.codecov.commands.exceptions import ValidationError
8+
from shared.django_apps.codecov_auth.tests.factories import PlanFactory, TierFactory
89
from shared.django_apps.core.tests.factories import OwnerFactory
910
from shared.plan.constants import (
1011
TRIAL_PLAN_SEATS,
1112
PlanName,
13+
TierName,
1214
TrialDaysAmount,
1315
TrialStatus,
1416
)
@@ -21,6 +23,10 @@
2123

2224

2325
class StartTrialInteractorTest(TransactionTestCase):
26+
def setUp(self):
27+
self.tier = TierFactory(tier_name=TierName.BASIC.value)
28+
self.plan = PlanFactory(tier=self.tier, is_active=True)
29+
2430
@async_to_sync
2531
def execute(self, current_user, org_username=None):
2632
current_user = current_user
@@ -32,6 +38,7 @@ def test_start_trial_raises_exception_when_owner_is_not_in_db(self):
3238
current_user = OwnerFactory(
3339
username="random-user-123",
3440
service="github",
41+
plan=self.plan.name,
3542
)
3643
with pytest.raises(CodecovValidationError):
3744
self.execute(current_user=current_user, org_username="some-other-username")
@@ -40,10 +47,12 @@ def test_cancel_trial_raises_exception_when_current_user_not_part_of_org(self):
4047
current_user = OwnerFactory(
4148
username="random-user-123",
4249
service="github",
50+
plan=self.plan.name,
4351
)
4452
OwnerFactory(
4553
username="random-user-456",
4654
service="github",
55+
plan=self.plan.name,
4756
)
4857
with pytest.raises(Unauthorized):
4958
self.execute(current_user=current_user, org_username="random-user-456")
@@ -59,6 +68,7 @@ def test_start_trial_raises_exception_when_owners_trial_status_is_ongoing(self):
5968
trial_start_date=trial_start_date,
6069
trial_end_date=trial_end_date,
6170
trial_status=TrialStatus.ONGOING.value,
71+
plan=self.plan.name,
6272
)
6373
with pytest.raises(ValidationError):
6474
self.execute(current_user=current_user, org_username=current_user.username)
@@ -74,6 +84,7 @@ def test_start_trial_raises_exception_when_owners_trial_status_is_expired(self):
7484
trial_start_date=trial_start_date,
7585
trial_end_date=trial_end_date,
7686
trial_status=TrialStatus.EXPIRED.value,
87+
plan=self.plan.name,
7788
)
7889
with pytest.raises(ValidationError):
7990
self.execute(current_user=current_user, org_username=current_user.username)
@@ -91,6 +102,7 @@ def test_start_trial_raises_exception_when_owners_trial_status_cannot_trial(
91102
trial_start_date=trial_start_date,
92103
trial_end_date=trial_end_date,
93104
trial_status=TrialStatus.CANNOT_TRIAL.value,
105+
plan=self.plan.name,
94106
)
95107
with pytest.raises(ValidationError):
96108
self.execute(current_user=current_user, org_username=current_user.username)
@@ -105,6 +117,7 @@ def test_start_trial_starts_trial_for_org_that_has_not_started_trial_before_and_
105117
trial_start_date=None,
106118
trial_end_date=None,
107119
trial_status=TrialStatus.NOT_STARTED.value,
120+
plan=self.plan.name,
108121
)
109122
self.execute(current_user=current_user, org_username=current_user.username)
110123
current_user.refresh_from_db()

codecov_auth/tests/test_admin.py

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from shared.plan.constants import (
3030
ENTERPRISE_CLOUD_USER_PLAN_REPRESENTATIONS,
3131
PlanName,
32+
TierName,
3233
)
3334

3435
from codecov.commands.exceptions import ValidationError
@@ -60,6 +61,17 @@ def setUp(self):
6061
admin_site.register(OrganizationLevelToken)
6162
self.owner_admin = OwnerAdmin(Owner, admin_site)
6263

64+
self.basic_tier = TierFactory(tier_name=TierName.BASIC.value)
65+
self.basic_plan = PlanFactory(
66+
tier=self.basic_tier, name=PlanName.BASIC_PLAN_NAME.value
67+
)
68+
69+
self.enterprise_tier = TierFactory(tier_name=TierName.ENTERPRISE.value)
70+
self.enterprise_plan = PlanFactory(
71+
tier=self.enterprise_tier,
72+
name=PlanName.ENTERPRISE_CLOUD_YEARLY.value,
73+
)
74+
6375
def test_owner_admin_detail_page(self):
6476
owner = OwnerFactory()
6577
response = self.client.get(
@@ -68,8 +80,10 @@ def test_owner_admin_detail_page(self):
6880
self.assertEqual(response.status_code, 200)
6981

7082
def test_owner_admin_impersonate_owner(self):
71-
owner_to_impersonate = OwnerFactory(service="bitbucket")
72-
other_owner = OwnerFactory()
83+
owner_to_impersonate = OwnerFactory(
84+
service="bitbucket", plan=self.basic_plan.name
85+
)
86+
other_owner = OwnerFactory(plan=self.basic_plan.name)
7387

7488
with self.subTest("more than one user selected"):
7589
response = self.client.post(
@@ -103,7 +117,7 @@ def test_owner_admin_impersonate_owner(self):
103117

104118
@patch("codecov_auth.admin.TaskService.delete_owner")
105119
def test_delete_queryset(self, delete_mock):
106-
user_to_delete = OwnerFactory()
120+
user_to_delete = OwnerFactory(plan=self.basic_plan.name)
107121
ownerid = user_to_delete.ownerid
108122
queryset = MagicMock()
109123
queryset.__iter__.return_value = [user_to_delete]
@@ -114,14 +128,14 @@ def test_delete_queryset(self, delete_mock):
114128

115129
@patch("codecov_auth.admin.TaskService.delete_owner")
116130
def test_delete_model(self, delete_mock):
117-
user_to_delete = OwnerFactory()
131+
user_to_delete = OwnerFactory(plan=self.basic_plan.name)
118132
ownerid = user_to_delete.ownerid
119133
self.owner_admin.delete_model(MagicMock(), user_to_delete)
120134
delete_mock.assert_called_once_with(ownerid=ownerid)
121135

122136
@patch("codecov_auth.admin.admin.ModelAdmin.get_deleted_objects")
123137
def test_confirmation_deleted_objects(self, mocked_deleted_objs):
124-
user_to_delete = OwnerFactory()
138+
user_to_delete = OwnerFactory(plan=self.basic_plan.name)
125139
deleted_objs = [
126140
'Owner: <a href="/admin/codecov_auth/owner/{}/change/">{};</a>'.format(
127141
user_to_delete.ownerid, user_to_delete
@@ -141,7 +155,7 @@ def test_confirmation_deleted_objects(self, mocked_deleted_objs):
141155

142156
@patch("codecov_auth.admin.admin.ModelAdmin.log_change")
143157
def test_prev_and_new_values_in_log_entry(self, mocked_super_log_change):
144-
owner = OwnerFactory(staff=True)
158+
owner = OwnerFactory(staff=True, plan=self.basic_plan.name)
145159
owner.save()
146160
owner.staff = False
147161
form = MagicMock()
@@ -161,7 +175,7 @@ def test_prev_and_new_values_in_log_entry(self, mocked_super_log_change):
161175
]
162176

163177
def test_inline_orgwide_tokens_display(self):
164-
owner = OwnerFactory()
178+
owner = OwnerFactory(plan=self.basic_plan.name)
165179
request_url = reverse("admin:codecov_auth_owner_change", args=[owner.ownerid])
166180
request = RequestFactory().get(request_url)
167181
request.user = self.staff_user
@@ -170,7 +184,7 @@ def test_inline_orgwide_tokens_display(self):
170184
assert isinstance(inlines[0], OrgUploadTokenInline)
171185

172186
def test_inline_orgwide_permissions(self):
173-
owner_in_cloud_plan = OwnerFactory(plan="users-enterprisey")
187+
owner_in_cloud_plan = OwnerFactory(plan=self.enterprise_plan.name)
174188
org_token = OrganizationLevelTokenFactory(owner=owner_in_cloud_plan)
175189
owner_in_cloud_plan.save()
176190
org_token.save()
@@ -194,7 +208,7 @@ def test_inline_orgwide_permissions(self):
194208
def test_inline_orgwide_add_token_permission_no_token_and_user_in_enterprise_cloud_plan(
195209
self,
196210
):
197-
owner = OwnerFactory()
211+
owner = OwnerFactory(plan=self.basic_plan.name)
198212
assert owner.plan not in ENTERPRISE_CLOUD_USER_PLAN_REPRESENTATIONS
199213
assert OrganizationLevelToken.objects.filter(owner=owner).count() == 0
200214
request_url = reverse("admin:codecov_auth_owner_change", args=[owner.ownerid])
@@ -207,7 +221,7 @@ def test_inline_orgwide_add_token_permission_no_token_and_user_in_enterprise_clo
207221
def test_inline_orgwide_add_token_permission_no_token_user_not_in_enterprise_cloud_plan(
208222
self,
209223
):
210-
owner_in_cloud_plan = OwnerFactory(plan="users-enterprisey")
224+
owner_in_cloud_plan = OwnerFactory(plan=self.enterprise_plan.name)
211225
assert (
212226
OrganizationLevelToken.objects.filter(owner=owner_in_cloud_plan).count()
213227
== 0
@@ -227,7 +241,7 @@ def test_inline_orgwide_add_token_permission_no_token_user_not_in_enterprise_clo
227241
def test_org_token_refresh_request_calls_service_to_refresh_token(
228242
self, mock_refresh
229243
):
230-
owner_in_cloud_plan = OwnerFactory(plan="users-enterprisey")
244+
owner_in_cloud_plan = OwnerFactory(plan=self.enterprise_plan.name)
231245
org_token = OrganizationLevelTokenFactory(owner=owner_in_cloud_plan)
232246
owner_in_cloud_plan.save()
233247
org_token.save()
@@ -264,7 +278,7 @@ def test_org_token_refresh_request_calls_service_to_refresh_token(
264278
"codecov_auth.services.org_level_token_service.OrgLevelTokenService.refresh_token"
265279
)
266280
def test_org_token_request_doesnt_call_service_to_refresh_token(self, mock_refresh):
267-
owner_in_cloud_plan = OwnerFactory(plan="users-enterprisey")
281+
owner_in_cloud_plan = OwnerFactory(plan=self.enterprise_plan.name)
268282
org_token = OrganizationLevelTokenFactory(owner=owner_in_cloud_plan)
269283
owner_in_cloud_plan.save()
270284
org_token.save()
@@ -297,7 +311,7 @@ def test_org_token_request_doesnt_call_service_to_refresh_token(self, mock_refre
297311
mock_refresh.assert_not_called()
298312

299313
def test_start_trial_ui_display(self):
300-
owner = OwnerFactory()
314+
owner = OwnerFactory(plan=self.basic_plan.name)
301315

302316
res = self.client.post(
303317
reverse("admin:codecov_auth_owner_changelist"),
@@ -312,7 +326,7 @@ def test_start_trial_ui_display(self):
312326
@patch("shared.plan.service.PlanService.start_trial_manually")
313327
def test_start_trial_action(self, mock_start_trial_service):
314328
mock_start_trial_service.return_value = None
315-
org_to_be_trialed = OwnerFactory()
329+
org_to_be_trialed = OwnerFactory(plan=self.basic_plan.name)
316330

317331
res = self.client.post(
318332
reverse("admin:codecov_auth_owner_changelist"),
@@ -329,7 +343,7 @@ def test_start_trial_action(self, mock_start_trial_service):
329343
@patch("shared.plan.service.PlanService._start_trial_helper")
330344
def test_extend_trial_action(self, mock_start_trial_service):
331345
mock_start_trial_service.return_value = None
332-
org_to_be_trialed = OwnerFactory()
346+
org_to_be_trialed = OwnerFactory(plan=self.basic_plan.name)
333347
org_to_be_trialed.plan = PlanName.TRIAL_PLAN_NAME.value
334348
org_to_be_trialed.save()
335349

@@ -352,7 +366,7 @@ def test_start_trial_paid_plan(self, mock_start_trial_service):
352366
"Cannot trial from a paid plan"
353367
)
354368

355-
org_to_be_trialed = OwnerFactory()
369+
org_to_be_trialed = OwnerFactory(plan=self.basic_plan.name)
356370

357371
res = self.client.post(
358372
reverse("admin:codecov_auth_owner_changelist"),
@@ -367,7 +381,7 @@ def test_start_trial_paid_plan(self, mock_start_trial_service):
367381
assert mock_start_trial_service.called
368382

369383
def test_account_widget(self):
370-
owner = OwnerFactory(user=UserFactory(), plan="users-enterprisey")
384+
owner = OwnerFactory(user=UserFactory(), plan=self.enterprise_plan.name)
371385
rf = RequestFactory()
372386
get_request = rf.get(f"/admin/codecov_auth/owner/{owner.ownerid}/change/")
373387
get_request.user = self.staff_user

0 commit comments

Comments
 (0)