9
9
data = faker .Faker ()
10
10
11
11
12
- @pytest .fixture
12
+ @pytest .fixture ( scope = "session" )
13
13
def current_member (client ):
14
- yield Member (client = client ).get ()
14
+ current_member = Member (client = client ).get ()
15
+ yield current_member
15
16
16
17
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" )
28
19
def user_group (client ):
29
20
group_name = data .name ()
30
21
user_group = UserGroup (client = client )
@@ -36,6 +27,21 @@ def user_group(client):
36
27
user_group .delete ()
37
28
38
29
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
+
39
45
def test_get_member (current_member , client ):
40
46
current_member_eq = Member (client = client ).get ()
41
47
assert current_member_eq .id == current_member .id
@@ -58,6 +64,7 @@ def test_update_member(client, test_member, project_pack, user_group):
58
64
test_member .user_group_ids .add (user_group .id )
59
65
test_member .can_access_all_projects = False
60
66
updated_member = test_member .update ()
67
+ updated_member = updated_member .get ()
61
68
62
69
# Verify that the member was updated successfully
63
70
assert test_member .email == updated_member .email
@@ -69,12 +76,22 @@ def test_update_member(client, test_member, project_pack, user_group):
69
76
assert user_group .id in updated_member .user_group_ids
70
77
assert updated_member .default_role == reviewer_role
71
78
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
+
72
88
# Remove memberships and check if updated
73
89
updated_member .project_memberships = set ()
74
90
updated_member .user_group_ids = set ()
75
91
updated_member .default_role = labeler_role
76
92
updated_member .can_access_all_projects = True
77
93
updated_member = updated_member .update ()
94
+ updated_member = updated_member .get ()
78
95
79
96
assert updated_member .project_memberships == set ()
80
97
assert updated_member .user_group_ids == set ()
@@ -83,14 +100,16 @@ def test_update_member(client, test_member, project_pack, user_group):
83
100
84
101
85
102
def 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
+
94
113
member_ids = [member .id for member in Member (client = client ).get_members ()]
95
114
assert test_member .id in member_ids
96
115
assert current_member .id in member_ids
0 commit comments