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)