55
66faker = Faker ()
77
8- def test_org_invite (client , organization , environ , queries ):
8+
9+ @pytest .fixture
10+ def org_invite (client , organization , environ , queries ):
911 role = client .get_roles ()['LABELER' ]
10- dummy_email = "none+{}@labelbox.com" .format ("" .join (faker .random_letters (26 )))
12+
13+ dummy_email = "none+{}@labelbox.com" .format ("" .join (
14+ faker .random_letters (26 )))
1115 invite_limit = organization .invite_limit ()
1216
1317 if environ .value == "prod" :
@@ -18,6 +22,45 @@ def test_org_invite(client, organization, environ, queries):
1822
1923 invite = organization .invite_user (dummy_email , role )
2024
25+ yield invite , invite_limit
26+
27+ queries .cancel_invite (client , invite .uid )
28+
29+
30+ @pytest .fixture
31+ def project_role_1 (client , project_pack ):
32+ project_1 , _ = project_pack
33+ roles = client .get_roles ()
34+ return ProjectRole (project = project_1 , role = roles ['LABELER' ])
35+
36+
37+ @pytest .fixture
38+ def project_role_2 (client , project_pack ):
39+ _ , project_2 = project_pack
40+ roles = client .get_roles ()
41+ return ProjectRole (project = project_2 , role = roles ['REVIEWER' ])
42+
43+
44+ @pytest .fixture
45+ def create_project_invite (client , organization , project_pack , queries ,
46+ project_role_1 , project_role_2 ):
47+ roles = client .get_roles ()
48+ dummy_email = "none+{}@labelbox.com" .format ("" .join (
49+ faker .random_letters (26 )))
50+ invite = organization .invite_user (
51+ dummy_email ,
52+ roles ['NONE' ],
53+ project_roles = [project_role_1 , project_role_2 ])
54+
55+ yield invite
56+
57+ queries .cancel_invite (client , invite .uid )
58+
59+
60+ def test_org_invite (client , organization , environ , queries , org_invite ):
61+ invite , invite_limit = org_invite
62+ role = client .get_roles ()['LABELER' ]
63+
2164 if environ .value == "prod" :
2265
2366 invite_limit_after = organization .invite_limit ()
@@ -28,30 +71,36 @@ def test_org_invite(client, organization, environ, queries):
2871 outstanding_invites = queries .get_invites (client )
2972 in_list = False
3073
31- for invite in outstanding_invites :
32- if invite .uid == invite .uid :
74+ for outstanding_invite in outstanding_invites :
75+ if outstanding_invite .uid == invite .uid :
3376 in_list = True
34- org_role = invite .organization_role_name .lower ()
77+ org_role = outstanding_invite .organization_role_name .lower ()
3578 assert org_role == role .name .lower (
3679 ), "Role should be labeler. Found {org_role} "
3780 assert in_list , "Invite not found"
81+
82+
83+ def test_cancel_invite (
84+ client ,
85+ organization ,
86+ queries ,
87+ ):
88+ role = client .get_roles ()['LABELER' ]
89+ dummy_email = "none+{}@labelbox.com" .format ("" .join (
90+ faker .random_letters (26 )))
91+ invite = organization .invite_user (dummy_email , role )
3892 queries .cancel_invite (client , invite .uid )
39- assert invite_limit .remaining - organization .invite_limit ().remaining == 0
93+ outstanding_invites = [i .uid for i in queries .get_invites (client )]
94+ assert invite .uid not in outstanding_invites
4095
4196
42- def test_project_invite (client , organization , project_pack , queries ):
43- project_1 , project_2 = project_pack
97+ def test_project_invite (client , organization , project_pack , queries ,
98+ create_project_invite , project_role_1 , project_role_2 ):
99+ create_project_invite
100+ project_1 , _ = project_pack
44101 roles = client .get_roles ()
45- dummy_email = "none+{}@labelbox.com" .format ("" .join (faker .random_letters (26 )))
46- project_role_1 = ProjectRole (project = project_1 , role = roles ['LABELER' ])
47- project_role_2 = ProjectRole (project = project_2 , role = roles ['REVIEWER' ])
48- invite = organization .invite_user (
49- dummy_email ,
50- roles ['NONE' ],
51- project_roles = [project_role_1 , project_role_2 ])
52102
53103 project_invite = next (queries .get_project_invites (client , project_1 .uid ))
54-
55104 assert set ([(proj_invite .project .uid , proj_invite .role .uid )
56105 for proj_invite in project_invite .project_roles
57106 ]) == set ([(proj_role .project .uid , proj_role .role .uid )
@@ -74,7 +123,6 @@ def test_project_invite(client, organization, project_pack, queries):
74123
75124 assert project_member .access_from == 'ORGANIZATION'
76125 assert project_member .role ().name .upper () == roles ['ADMIN' ].name .upper ()
77- queries .cancel_invite (client , invite .uid )
78126
79127
80128@pytest .mark .skip (
0 commit comments