Skip to content

Commit 463062c

Browse files
committed
test(client): change client tests to allow tests to run on any workspace
1 parent 3e17f92 commit 463062c

33 files changed

+2142
-206
lines changed

pygitguardian/client.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
CreateTeamInvitation,
3333
CreateTeamMember,
3434
CreateTeamMemberParameter,
35-
DeleteMember,
35+
DeleteMemberParameters,
3636
Detail,
3737
Document,
3838
DocumentSchema,
@@ -980,7 +980,6 @@ def update_member(
980980
obj: Union[Detail, Member]
981981
if is_ok(response):
982982
obj = Member.from_dict(response.json())
983-
print("Member : ", obj)
984983
else:
985984
obj = load_detail(response)
986985

@@ -989,7 +988,7 @@ def update_member(
989988

990989
def delete_member(
991990
self,
992-
member: DeleteMember,
991+
member: DeleteMemberParameters,
993992
extra_headers: Optional[Dict[str, str]] = None,
994993
) -> Optional[Detail]:
995994
member_id = member.id
@@ -1300,7 +1299,7 @@ def list_invitations(
13001299
obj.status_code
13011300
return obj
13021301

1303-
def send_invitation(
1302+
def create_invitation(
13041303
self,
13051304
invitation: CreateInvitation,
13061305
parameters: Optional[CreateInvitationParameter] = None,

pygitguardian/models.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,7 +1172,7 @@ def access_level_value(
11721172
@dataclass
11731173
class UpdateMember(Base, FromDictMixin):
11741174
"""
1175-
UpdateMember represnets the payload to update a member
1175+
UpdateMember represents the payload to update a member
11761176
"""
11771177

11781178
id: int
@@ -1184,16 +1184,28 @@ class UpdateMember(Base, FromDictMixin):
11841184

11851185

11861186
@dataclass
1187-
class DeleteMember(Base, FromDictMixin):
1187+
class UpdateMemberParameters(Base, FromDictMixin):
1188+
send_email: Optional[bool] = None
1189+
1190+
1191+
UpdateMemberParametersSchema = cast(
1192+
Type[BaseSchema],
1193+
marshmallow_dataclass.class_schema(UpdateMemberParameters, base_schema=BaseSchema),
1194+
)
1195+
UpdateMemberParameters.SCHEMA = UpdateMemberParametersSchema()
1196+
1197+
1198+
@dataclass
1199+
class DeleteMemberParameters(Base, FromDictMixin):
11881200
id: int
11891201
send_email: Optional[bool] = None
11901202

11911203

1192-
DeleteMemberSchema = cast(
1204+
DeleteMemberParametersSchema = cast(
11931205
Type[BaseSchema],
1194-
marshmallow_dataclass.class_schema(DeleteMember, base_schema=BaseSchema),
1206+
marshmallow_dataclass.class_schema(DeleteMemberParameters, base_schema=BaseSchema),
11951207
)
1196-
DeleteMember.SCHEMA = DeleteMemberSchema()
1208+
DeleteMemberParameters.SCHEMA = DeleteMemberParametersSchema()
11971209

11981210

11991211
@dataclass

pygitguardian/models_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,6 @@ def from_response(
110110
if previous_page := response.links.get("prev"):
111111
paginated_response.prev = previous_page["url"]
112112
if next_page := response.links.get("next"):
113-
paginated_response.prev = next_page["url"]
113+
paginated_response.next = next_page["url"]
114114

115115
return paginated_response

tests/cassettes/test_add_team_sources.yaml

Lines changed: 143 additions & 8 deletions
Large diffs are not rendered by default.

tests/cassettes/test_create_team.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
interactions:
22
- request:
3-
body: '{"name": "team1", "description": ""}'
3+
body: '{"name": "PyGitGuardian team", "description": ""}'
44
headers:
55
Accept:
66
- '*/*'
@@ -9,7 +9,7 @@ interactions:
99
Connection:
1010
- keep-alive
1111
Content-Length:
12-
- '36'
12+
- '49'
1313
Content-Type:
1414
- application/json
1515
User-Agent:
@@ -18,7 +18,7 @@ interactions:
1818
uri: https://api.gitguardian.com/v1/teams
1919
response:
2020
body:
21-
string: '{"id":8,"is_global":false,"name":"team1","description":"","gitguardian_url":"https://dashboard.gitguardian.com/workspace/6/settings/user/teams/8"}'
21+
string: '{"id":21,"is_global":false,"name":"PyGitGuardian team","description":"","gitguardian_url":"http://localhost:3000/workspace/6/settings/user/teams/21"}'
2222
headers:
2323
Access-Control-Expose-Headers:
2424
- X-App-Version
@@ -27,13 +27,13 @@ interactions:
2727
Connection:
2828
- keep-alive
2929
Content-Length:
30-
- '134'
30+
- '149'
3131
Content-Type:
3232
- application/json
3333
Cross-Origin-Opener-Policy:
3434
- same-origin
3535
Date:
36-
- Thu, 05 Dec 2024 16:36:11 GMT
36+
- Thu, 12 Dec 2024 16:59:31 GMT
3737
Referrer-Policy:
3838
- same-origin
3939
Server:
@@ -47,7 +47,7 @@ interactions:
4747
X-Frame-Options:
4848
- DENY
4949
X-Request-ID:
50-
- 654ead8d7d6e98623b3b5fec06ec2a62
50+
- 0d603848ed5811425fb5384e2c165bf6
5151
X-SCA-Engine-Version:
5252
- 2.2.0
5353
X-Secrets-Engine-Version:

tests/cassettes/test_create_team_invitation.yaml

Lines changed: 122 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,121 @@
11
interactions:
22
- request:
3-
body: '{"invitation_id": 1, "is_team_leader": true, "incident_permission": "can_view"}'
3+
body: null
4+
headers:
5+
Accept:
6+
- '*/*'
7+
Accept-Encoding:
8+
- gzip, deflate
9+
Connection:
10+
- keep-alive
11+
User-Agent:
12+
- pygitguardian/1.18.0 (Darwin;py3.11.8)
13+
method: GET
14+
uri: https://api.gitguardian.com/v1/teams?is_global=False
15+
response:
16+
body:
17+
string:
18+
'[{"id":19,"is_global":false,"name":"This is a test","description":"","gitguardian_url":"http://localhost:3000/workspace/6/settings/user/teams/19"},{"id":20,"is_global":false,"name":"Team
19+
test","description":"","gitguardian_url":"http://localhost:3000/workspace/6/settings/user/teams/20"},{"id":21,"is_global":false,"name":"PyGitGuardian
20+
team","description":"","gitguardian_url":"http://localhost:3000/workspace/6/settings/user/teams/21"}]'
21+
headers:
22+
Access-Control-Expose-Headers:
23+
- X-App-Version
24+
Allow:
25+
- GET, POST, HEAD, OPTIONS
26+
Connection:
27+
- keep-alive
28+
Content-Length:
29+
- '438'
30+
Content-Type:
31+
- application/json
32+
Cross-Origin-Opener-Policy:
33+
- same-origin
34+
Date:
35+
- Thu, 12 Dec 2024 16:59:32 GMT
36+
Link:
37+
- ''
38+
Referrer-Policy:
39+
- same-origin
40+
Server:
41+
- nginx/1.24.0
42+
Vary:
43+
- Cookie
44+
X-App-Version:
45+
- dev
46+
X-Content-Type-Options:
47+
- nosniff
48+
X-Frame-Options:
49+
- DENY
50+
X-Per-Page:
51+
- '20'
52+
X-Request-ID:
53+
- c2b0a05b57e590cfaf8f9fe2221eda91
54+
X-SCA-Engine-Version:
55+
- 2.2.0
56+
X-Secrets-Engine-Version:
57+
- 2.127.0
58+
status:
59+
code: 200
60+
message: OK
61+
- request:
62+
body: null
63+
headers:
64+
Accept:
65+
- '*/*'
66+
Accept-Encoding:
67+
- gzip, deflate
68+
Connection:
69+
- keep-alive
70+
User-Agent:
71+
- pygitguardian/1.18.0 (Darwin;py3.11.8)
72+
method: GET
73+
uri: https://api.gitguardian.com/v1/invitations
74+
response:
75+
body:
76+
string: '[{"id":13,"date":"2024-12-12T16:53:59.247129Z","email":"pygitguardian@example.com","role":"member","access_level":"member"},{"id":14,"date":"2024-12-12T16:54:44.192249Z","email":"example@test.com","role":"member","access_level":"member"}]'
77+
headers:
78+
Access-Control-Expose-Headers:
79+
- X-App-Version
80+
Allow:
81+
- GET, POST, HEAD, OPTIONS
82+
Connection:
83+
- keep-alive
84+
Content-Length:
85+
- '238'
86+
Content-Type:
87+
- application/json
88+
Cross-Origin-Opener-Policy:
89+
- same-origin
90+
Date:
91+
- Thu, 12 Dec 2024 16:59:32 GMT
92+
Link:
93+
- ''
94+
Referrer-Policy:
95+
- same-origin
96+
Server:
97+
- nginx/1.24.0
98+
Vary:
99+
- Cookie
100+
X-App-Version:
101+
- dev
102+
X-Content-Type-Options:
103+
- nosniff
104+
X-Frame-Options:
105+
- DENY
106+
X-Per-Page:
107+
- '20'
108+
X-Request-ID:
109+
- df09bccf6aea67a2215c5dd905f6033e
110+
X-SCA-Engine-Version:
111+
- 2.2.0
112+
X-Secrets-Engine-Version:
113+
- 2.127.0
114+
status:
115+
code: 200
116+
message: OK
117+
- request:
118+
body: '{"invitation_id": 13, "is_team_leader": true, "incident_permission": "can_view"}'
4119
headers:
5120
Accept:
6121
- '*/*'
@@ -9,16 +124,16 @@ interactions:
9124
Connection:
10125
- keep-alive
11126
Content-Length:
12-
- '79'
127+
- '80'
13128
Content-Type:
14129
- application/json
15130
User-Agent:
16131
- pygitguardian/1.18.0 (Darwin;py3.11.8)
17132
method: POST
18-
uri: https://api.gitguardian.com/v1/teams/9/team_invitations
133+
uri: https://api.gitguardian.com/v1/teams/19/team_invitations
19134
response:
20135
body:
21-
string: '{"id":1,"team_id":9,"invitation_id":1,"is_team_leader":true,"team_permission":"can_manage","incident_permission":"can_view"}'
136+
string: '{"id":7,"team_id":19,"invitation_id":13,"is_team_leader":true,"team_permission":"can_manage","incident_permission":"can_view"}'
22137
headers:
23138
Access-Control-Expose-Headers:
24139
- X-App-Version
@@ -27,13 +142,13 @@ interactions:
27142
Connection:
28143
- keep-alive
29144
Content-Length:
30-
- '124'
145+
- '126'
31146
Content-Type:
32147
- application/json
33148
Cross-Origin-Opener-Policy:
34149
- same-origin
35150
Date:
36-
- Thu, 05 Dec 2024 17:37:44 GMT
151+
- Thu, 12 Dec 2024 16:59:32 GMT
37152
Referrer-Policy:
38153
- same-origin
39154
Server:
@@ -47,7 +162,7 @@ interactions:
47162
X-Frame-Options:
48163
- DENY
49164
X-Request-ID:
50-
- 9f921c4d1568b2d510214689552e8902
165+
- 9ce9f089220243eca87b41bc81b72b73
51166
X-SCA-Engine-Version:
52167
- 2.2.0
53168
X-Secrets-Engine-Version:

0 commit comments

Comments
 (0)