99data = faker .Faker ()
1010
1111
12- @pytest .fixture
12+ @pytest .fixture ( scope = "session" )
1313def current_member (client ):
14- yield Member (client = client ).get ()
14+ current_member = Member (client = client ).get ()
15+ yield current_member
1516
1617
17- @pytest .fixture
18- def test_member (client , current_member ):
19- members = list (Member (client = client ).get_members ())
20- test_member = None
21- for member in members :
22- if member .id != current_member .id :
23- test_member = member
24- return test_member
25-
26-
27- @pytest .fixture
18+ @pytest .fixture (scope = "session" )
2819def user_group (client ):
2920 group_name = data .name ()
3021 user_group = UserGroup (client = client )
@@ -36,6 +27,21 @@ def user_group(client):
3627 user_group .delete ()
3728
3829
30+ @pytest .fixture (scope = "module" )
31+ def test_member (client , current_member , user_group ):
32+ members = list (Member (client = client ).get_members ())
33+ test_member = None
34+ for member in members :
35+ if member .id != current_member .id :
36+ test_member = member
37+ test_member .user_group_ids .add (user_group .id )
38+ updated_member = test_member .update ()
39+ yield updated_member
40+ # remove from any user_groups as clean up
41+ updated_member .user_group_ids = set ()
42+ updated_member .update ()
43+
44+
3945def test_get_member (current_member , client ):
4046 current_member_eq = Member (client = client ).get ()
4147 assert current_member_eq .id == current_member .id
@@ -58,6 +64,7 @@ def test_update_member(client, test_member, project_pack, user_group):
5864 test_member .user_group_ids .add (user_group .id )
5965 test_member .can_access_all_projects = False
6066 updated_member = test_member .update ()
67+ updated_member = updated_member .get ()
6168
6269 # Verify that the member was updated successfully
6370 assert test_member .email == updated_member .email
@@ -69,12 +76,22 @@ def test_update_member(client, test_member, project_pack, user_group):
6976 assert user_group .id in updated_member .user_group_ids
7077 assert updated_member .default_role == reviewer_role
7178
79+ # update project role for one of the projects
80+ project = project_pack [0 ]
81+ project_membership = ProjectMembership (
82+ project_id = project .uid , role = reviewer_role
83+ )
84+ updated_member .project_memberships .add (project_membership )
85+ updated_member = updated_member .update ()
86+ assert project_membership in updated_member .get ().project_memberships
87+
7288 # Remove memberships and check if updated
7389 updated_member .project_memberships = set ()
7490 updated_member .user_group_ids = set ()
7591 updated_member .default_role = labeler_role
7692 updated_member .can_access_all_projects = True
7793 updated_member = updated_member .update ()
94+ updated_member = updated_member .get ()
7895
7996 assert updated_member .project_memberships == set ()
8097 assert updated_member .user_group_ids == set ()
@@ -83,14 +100,16 @@ def test_update_member(client, test_member, project_pack, user_group):
83100
84101
85102def test_get_members (test_member , current_member , client ):
86- members = list (
87- Member (client = client ).get_members (search = current_member .email )
88- )
89- assert current_member in members
90- members = list (
91- Member (client = client ).get_members (roles = [current_member .default_role ])
92- )
93- assert current_member in members
103+ member_ids = [
104+ member .id
105+ for member in Member (client = client ).get_members (
106+ search = test_member .email
107+ )
108+ ]
109+ assert test_member .id in member_ids
110+
111+ # TODO<Gabefire>: can not search for roles or groups as it is too flaky will need to add in once user groups are harden
112+
94113 member_ids = [member .id for member in Member (client = client ).get_members ()]
95114 assert test_member .id in member_ids
96115 assert current_member .id in member_ids
0 commit comments