Skip to content

Commit aa99a8d

Browse files
author
Val Brodsky
committed
Refactour test_user_management to fix test failures
1 parent 5eeb681 commit aa99a8d

File tree

2 files changed

+60
-20
lines changed

2 files changed

+60
-20
lines changed

libs/labelbox/tests/conftest.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -594,14 +594,8 @@ def sample_bulk_conversation() -> list:
594594
def organization(client):
595595
# Must have at least one seat open in your org to run these tests
596596
org = client.get_organization()
597-
# Clean up before and after incase this wasn't run for some reason.
598-
for invite in get_invites(client):
599-
if "@labelbox.com" in invite.email:
600-
cancel_invite(client, invite.uid)
597+
601598
yield org
602-
for invite in get_invites(client):
603-
if "@labelbox.com" in invite.email:
604-
cancel_invite(client, invite.uid)
605599

606600

607601
@pytest.fixture

libs/labelbox/tests/integration/test_user_management.py

Lines changed: 59 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@
55

66
faker = 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+
dummy_email = "none+{}@labelbox.com".format("".join(
13+
faker.random_letters(26)))
1114
invite_limit = organization.invite_limit()
1215

1316
if environ.value == "prod":
@@ -18,6 +21,45 @@ def test_org_invite(client, organization, environ, queries):
1821

1922
invite = organization.invite_user(dummy_email, role)
2023

24+
yield invite, invite_limit
25+
26+
queries.cancel_invite(client, invite.uid)
27+
28+
29+
@pytest.fixture
30+
def project_role_1(client, project_pack):
31+
project_1, _ = project_pack
32+
roles = client.get_roles()
33+
return ProjectRole(project=project_1, role=roles['LABELER'])
34+
35+
36+
@pytest.fixture
37+
def project_role_2(client, project_pack):
38+
_, project_2 = project_pack
39+
roles = client.get_roles()
40+
return ProjectRole(project=project_2, role=roles['REVIEWER'])
41+
42+
43+
@pytest.fixture
44+
def create_project_invite(client, organization, project_pack, queries,
45+
project_role_1, project_role_2):
46+
roles = client.get_roles()
47+
dummy_email = "none+{}@labelbox.com".format("".join(
48+
faker.random_letters(26)))
49+
invite = organization.invite_user(
50+
dummy_email,
51+
roles['NONE'],
52+
project_roles=[project_role_1, project_role_2])
53+
54+
yield invite
55+
56+
queries.cancel_invite(client, invite.uid)
57+
58+
59+
def test_org_invite(client, organization, environ, queries, org_invite):
60+
invite, invite_limit = org_invite
61+
role = client.get_roles()['LABELER']
62+
2163
if environ.value == "prod":
2264

2365
invite_limit_after = organization.invite_limit()
@@ -35,23 +77,28 @@ def test_org_invite(client, organization, environ, queries):
3577
assert org_role == role.name.lower(
3678
), "Role should be labeler. Found {org_role} "
3779
assert in_list, "Invite not found"
80+
81+
82+
def test_cancel_invite(
83+
client,
84+
organization,
85+
queries,
86+
):
87+
role = client.get_roles()['LABELER']
88+
dummy_email = "none+{}@labelbox.com".format("".join(
89+
faker.random_letters(26)))
90+
invite_limit = organization.invite_limit()
91+
invite = organization.invite_user(dummy_email, role)
3892
queries.cancel_invite(client, invite.uid)
3993
assert invite_limit.remaining - organization.invite_limit().remaining == 0
4094

4195

42-
def test_project_invite(client, organization, project_pack, queries):
43-
project_1, project_2 = project_pack
96+
def test_project_invite(client, organization, project_pack, queries,
97+
create_project_invite, project_role_1, project_role_2):
98+
project_1, _ = project_pack
4499
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])
52100

53101
project_invite = next(queries.get_project_invites(client, project_1.uid))
54-
55102
assert set([(proj_invite.project.uid, proj_invite.role.uid)
56103
for proj_invite in project_invite.project_roles
57104
]) == set([(proj_role.project.uid, proj_role.role.uid)
@@ -74,7 +121,6 @@ def test_project_invite(client, organization, project_pack, queries):
74121

75122
assert project_member.access_from == 'ORGANIZATION'
76123
assert project_member.role().name.upper() == roles['ADMIN'].name.upper()
77-
queries.cancel_invite(client, invite.uid)
78124

79125

80126
@pytest.mark.skip(

0 commit comments

Comments
 (0)