11import json
2- import typing
32from datetime import timedelta
43
54import pytest
1413
1514from organisations .invites .models import Invite , InviteLink
1615from organisations .models import Organisation , OrganisationRole , Subscription
17- from users .models import FFAdminUser , HubspotTracker
16+ from users .models import FFAdminUser , HubspotTracker , UserPermissionGroup
1817
1918
2019def test_create_invite_link (
@@ -184,13 +183,18 @@ def test_join_organisation_with_permission_groups( # type: ignore[no-untyped-de
184183 invite .refresh_from_db ()
185184
186185
187- def test_create_invite_with_permission_groups ( # type: ignore[no-untyped-def]
188- admin_client , organisation , user_permission_group , admin_user , subscription
189- ):
186+ @pytest .mark .saas_mode
187+ def test_create_invite_with_permission_groups (
188+ admin_client : APIClient ,
189+ organisation : Organisation ,
190+ user_permission_group : UserPermissionGroup ,
191+ admin_user : FFAdminUser ,
192+ chargebee_subscription : Subscription ,
193+ ) -> None :
190194 # Given
191195 # update subscription to add another seat
192- subscription .max_seats = 2
193- subscription .save ()
196+ chargebee_subscription .max_seats = 2
197+ chargebee_subscription .save ()
194198
195199 url = reverse (
196200 "api-v1:organisations:organisation-invites-list" ,
@@ -204,23 +208,19 @@ def test_create_invite_with_permission_groups( # type: ignore[no-untyped-def]
204208 url , data = json .dumps (data ), content_type = "application/json"
205209 )
206210 # Then
207- assert response .status_code == status .HTTP_201_CREATED
211+ assert response .status_code == status .HTTP_201_CREATED , response . json ()
208212 # and
209213 invite = Invite .objects .get (email = email )
210214 assert invite .permission_groups .first () == user_permission_group
211215 assert invite .invited_by == admin_user
212216
213217
214- def test_create_invite_returns_400_if_seats_are_over ( # type: ignore[no-untyped-def]
215- admin_client ,
216- organisation ,
217- user_permission_group ,
218- admin_user ,
219- subscription ,
220- settings ,
221- ):
218+ def test_create_invite_returns_400_if_seats_are_over (
219+ admin_client : APIClient ,
220+ organisation : Organisation ,
221+ user_permission_group : UserPermissionGroup ,
222+ ) -> None :
222223 # Given
223- settings .AUTO_SEAT_UPGRADE_PLANS = ["scale-up" ]
224224 url = reverse (
225225 "api-v1:organisations:organisation-invites-list" ,
226226 args = [organisation .pk ],
@@ -288,18 +288,14 @@ def test_update_invite_returns_405( # type: ignore[no-untyped-def]
288288 (lazy_fixture ("invite_link" ), "api-v1:users:user-join-organisation-link" ),
289289 ],
290290)
291- def test_join_organisation_returns_400_if_exceeds_plan_limit ( # type: ignore[no-untyped-def]
292- test_user_client ,
293- organisation ,
294- admin_user ,
295- invite_object ,
296- url ,
297- subscription ,
298- settings ,
299- ):
291+ def test_join_organisation_returns_400_if_exceeds_plan_limit (
292+ test_user_client : APIClient ,
293+ invite_object : Invite | InviteLink ,
294+ url : str ,
295+ settings : SettingsWrapper ,
296+ ) -> None :
300297 # Given
301298 settings .ENABLE_CHARGEBEE = True
302- settings .AUTO_SEAT_UPGRADE_PLANS = ["scale-up" ]
303299 url = reverse (url , args = [invite_object .hash ])
304300 # When
305301 response = test_user_client .post (url )
@@ -312,26 +308,24 @@ def test_join_organisation_returns_400_if_exceeds_plan_limit( # type: ignore[no
312308 )
313309
314310
311+ @pytest .mark .saas_mode
315312@pytest .mark .parametrize (
316313 "invite_object, url" ,
317314 [
318315 (lazy_fixture ("invite" ), "api-v1:users:user-join-organisation" ),
319316 (lazy_fixture ("invite_link" ), "api-v1:users:user-join-organisation-link" ),
320317 ],
321318)
322- def test_join_organisation_returns_400_if_payment_fails ( # type: ignore[no-untyped-def]
319+ def test_join_organisation_returns_400_if_payment_fails (
323320 test_user_client : APIClient ,
324- organisation : Organisation ,
325- admin_user : FFAdminUser ,
326- invite_object : typing .Union [Invite , InviteLink ],
321+ invite_object : Invite | InviteLink ,
327322 url : str ,
328323 subscription : Subscription ,
329324 settings : SettingsWrapper ,
330325 mocker : MockerFixture ,
331- ):
326+ ) -> None :
332327 # Given
333328 settings .ENABLE_CHARGEBEE = True
334- settings .AUTO_SEAT_UPGRADE_PLANS = ["scale-up" ]
335329
336330 url = reverse (url , args = [invite_object .hash ])
337331
0 commit comments