Skip to content

Commit 97e0eb9

Browse files
nejchJohnVillalovos
authored andcommitted
test(functional): replace len() calls with list membership checks
1 parent 04c6063 commit 97e0eb9

14 files changed

+163
-172
lines changed

tests/functional/api/test_clusters.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
def test_project_clusters(project):
2-
project.clusters.create(
2+
cluster = project.clusters.create(
33
{
44
"name": "cluster1",
55
"platform_kubernetes_attributes": {
@@ -9,21 +9,20 @@ def test_project_clusters(project):
99
}
1010
)
1111
clusters = project.clusters.list()
12-
assert len(clusters) == 1
12+
assert cluster in clusters
1313

14-
cluster = clusters[0]
1514
cluster.platform_kubernetes_attributes = {"api_url": "http://newurl"}
1615
cluster.save()
1716

1817
cluster = project.clusters.list()[0]
1918
assert cluster.platform_kubernetes["api_url"] == "http://newurl"
2019

2120
cluster.delete()
22-
assert len(project.clusters.list()) == 0
21+
assert cluster not in project.clusters.list()
2322

2423

2524
def test_group_clusters(group):
26-
group.clusters.create(
25+
cluster = group.clusters.create(
2726
{
2827
"name": "cluster1",
2928
"platform_kubernetes_attributes": {
@@ -33,14 +32,13 @@ def test_group_clusters(group):
3332
}
3433
)
3534
clusters = group.clusters.list()
36-
assert len(clusters) == 1
35+
assert cluster in clusters
3736

38-
cluster = clusters[0]
3937
cluster.platform_kubernetes_attributes = {"api_url": "http://newurl"}
4038
cluster.save()
4139

4240
cluster = group.clusters.list()[0]
4341
assert cluster.platform_kubernetes["api_url"] == "http://newurl"
4442

4543
cluster.delete()
46-
assert len(group.clusters.list()) == 0
44+
assert cluster not in group.clusters.list()

tests/functional/api/test_current_user.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
def test_current_user_email(gl):
22
gl.auth()
33
mail = gl.user.emails.create({"email": "current@user.com"})
4-
assert len(gl.user.emails.list()) == 2
4+
assert mail in gl.user.emails.list()
55

66
mail.delete()
7-
assert len(gl.user.emails.list()) == 1
7+
assert mail not in gl.user.emails.list()
88

99

1010
def test_current_user_gpg_keys(gl, GPG_KEY):
1111
gl.auth()
1212
gkey = gl.user.gpgkeys.create({"key": GPG_KEY})
13-
assert len(gl.user.gpgkeys.list()) == 1
13+
assert gkey in gl.user.gpgkeys.list()
1414

1515
# Seems broken on the gitlab side
1616
gkey = gl.user.gpgkeys.get(gkey.id)
1717
gkey.delete()
18-
assert len(gl.user.gpgkeys.list()) == 0
18+
assert gkey not in gl.user.gpgkeys.list()
1919

2020

2121
def test_current_user_ssh_keys(gl, SSH_KEY):
2222
gl.auth()
2323
key = gl.user.keys.create({"title": "testkey", "key": SSH_KEY})
24-
assert len(gl.user.keys.list()) == 1
24+
assert key in gl.user.keys.list()
2525

2626
key.delete()
27-
assert len(gl.user.keys.list()) == 0
27+
assert key not in gl.user.keys.list()
2828

2929

3030
def test_current_user_status(gl):
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
def test_project_deploy_keys(gl, project, DEPLOY_KEY):
22
deploy_key = project.keys.create({"title": "foo@bar", "key": DEPLOY_KEY})
3-
project_keys = list(project.keys.list())
4-
assert len(project_keys) == 1
3+
assert deploy_key in project.keys.list()
54

65
project2 = gl.projects.create({"name": "deploy-key-project"})
76
project2.keys.enable(deploy_key.id)
8-
assert len(project2.keys.list()) == 1
7+
assert deploy_key in project2.keys.list()
98

109
project2.keys.delete(deploy_key.id)
11-
assert len(project2.keys.list()) == 0
10+
assert deploy_key not in project2.keys.list()
1211
project2.delete()

tests/functional/api/test_deploy_tokens.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ def test_project_deploy_tokens(gl, project):
77
"scopes": ["read_registry"],
88
}
99
)
10-
assert len(project.deploytokens.list()) == 1
11-
assert gl.deploytokens.list() == project.deploytokens.list()
10+
assert deploy_token in project.deploytokens.list()
11+
assert set(project.deploytokens.list()) <= set(gl.deploytokens.list())
1212

1313
deploy_token = project.deploytokens.get(deploy_token.id)
1414
assert deploy_token.name == "foo"
@@ -17,8 +17,8 @@ def test_project_deploy_tokens(gl, project):
1717
assert deploy_token.username == "bar"
1818

1919
deploy_token.delete()
20-
assert len(project.deploytokens.list()) == 0
21-
assert len(gl.deploytokens.list()) == 0
20+
assert deploy_token not in project.deploytokens.list()
21+
assert deploy_token not in gl.deploytokens.list()
2222

2323

2424
def test_group_deploy_tokens(gl, group):
@@ -29,13 +29,13 @@ def test_group_deploy_tokens(gl, group):
2929
}
3030
)
3131

32-
assert len(group.deploytokens.list()) == 1
33-
assert gl.deploytokens.list() == group.deploytokens.list()
32+
assert deploy_token in group.deploytokens.list()
33+
assert set(group.deploytokens.list()) <= set(gl.deploytokens.list())
3434

3535
deploy_token = group.deploytokens.get(deploy_token.id)
3636
assert deploy_token.name == "foo"
3737
assert deploy_token.scopes == ["read_registry"]
3838

3939
deploy_token.delete()
40-
assert len(group.deploytokens.list()) == 0
41-
assert len(gl.deploytokens.list()) == 0
40+
assert deploy_token not in group.deploytokens.list()
41+
assert deploy_token not in gl.deploytokens.list()

tests/functional/api/test_gitlab.py

Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import warnings
2-
31
import pytest
42

53
import gitlab
@@ -27,7 +25,7 @@ def test_broadcast_messages(gl):
2725
assert msg.color == "#444444"
2826

2927
msg.delete()
30-
assert len(gl.broadcastmessages.list()) == 0
28+
assert msg not in gl.broadcastmessages.list()
3129

3230

3331
def test_markdown(gl):
@@ -109,10 +107,10 @@ def test_template_license(gl):
109107

110108
def test_hooks(gl):
111109
hook = gl.hooks.create({"url": "http://whatever.com"})
112-
assert len(gl.hooks.list()) == 1
110+
assert hook in gl.hooks.list()
113111

114112
hook.delete()
115-
assert len(gl.hooks.list()) == 0
113+
assert hook not in gl.hooks.list()
116114

117115

118116
def test_namespaces(gl):
@@ -151,10 +149,10 @@ def test_events(gl):
151149
def test_features(gl):
152150
feat = gl.features.set("foo", 30)
153151
assert feat.name == "foo"
154-
assert len(gl.features.list()) == 1
152+
assert feat in gl.features.list()
155153

156154
feat.delete()
157-
assert len(gl.features.list()) == 0
155+
assert feat not in gl.features.list()
158156

159157

160158
def test_pagination(gl, project):
@@ -198,54 +196,46 @@ def test_rate_limits(gl):
198196
def test_list_default_warning(gl):
199197
"""When there are more than 20 items and use default `list()` then warning is
200198
generated"""
201-
with warnings.catch_warnings(record=True) as caught_warnings:
199+
with pytest.warns(UserWarning, match="python-gitlab.readthedocs.io") as record:
202200
gl.gitlabciymls.list()
203-
assert len(caught_warnings) == 1
204-
warning = caught_warnings[0]
205-
assert isinstance(warning.message, UserWarning)
206-
message = str(warning.message)
207-
assert "python-gitlab.readthedocs.io" in message
201+
202+
assert len(record) == 1
203+
warning = record[0]
208204
assert __file__ == warning.filename
209205

210206

211-
def test_list_page_nowarning(gl):
207+
def test_list_page_nowarning(gl, recwarn):
212208
"""Using `page=X` will disable the warning"""
213-
with warnings.catch_warnings(record=True) as caught_warnings:
214-
gl.gitlabciymls.list(page=1)
215-
assert len(caught_warnings) == 0
209+
gl.gitlabciymls.list(page=1)
210+
assert not recwarn
216211

217212

218-
def test_list_all_false_nowarning(gl):
213+
def test_list_all_false_nowarning(gl, recwarn):
219214
"""Using `all=False` will disable the warning"""
220-
with warnings.catch_warnings(record=True) as caught_warnings:
221-
gl.gitlabciymls.list(all=False)
222-
assert len(caught_warnings) == 0
215+
gl.gitlabciymls.list(all=False)
216+
assert not recwarn
223217

224218

225-
def test_list_all_true_nowarning(gl):
219+
def test_list_all_true_nowarning(gl, recwarn):
226220
"""Using `all=True` will disable the warning"""
227-
with warnings.catch_warnings(record=True) as caught_warnings:
228-
items = gl.gitlabciymls.list(all=True)
229-
assert len(caught_warnings) == 0
221+
items = gl.gitlabciymls.list(all=True)
222+
assert not recwarn
230223
assert len(items) > 20
231224

232225

233-
def test_list_iterator_true_nowarning(gl):
226+
def test_list_iterator_true_nowarning(gl, recwarn):
234227
"""Using `iterator=True` will disable the warning"""
235-
with warnings.catch_warnings(record=True) as caught_warnings:
236-
items = gl.gitlabciymls.list(iterator=True)
237-
assert len(caught_warnings) == 0
228+
items = gl.gitlabciymls.list(iterator=True)
229+
assert not recwarn
238230
assert len(list(items)) > 20
239231

240232

241233
def test_list_as_list_false_warnings(gl):
242234
"""Using `as_list=False` will disable the UserWarning but cause a
243235
DeprecationWarning"""
244-
with warnings.catch_warnings(record=True) as caught_warnings:
236+
with pytest.warns(DeprecationWarning) as record:
245237
items = gl.gitlabciymls.list(as_list=False)
246-
assert len(caught_warnings) == 1
247-
for warning in caught_warnings:
248-
assert isinstance(warning.message, DeprecationWarning)
238+
assert len(record) == 1
249239
assert len(list(items)) > 20
250240

251241

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy