Skip to content

Commit 8c406c8

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

File tree

2 files changed

+66
-24
lines changed

2 files changed

+66
-24
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: 65 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@
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+
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

Comments
 (0)