summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorNejc Habjan <nejc.habjan@siemens.com>2022-07-03 23:43:53 +0200
committerJohn Villalovos <john@sodarock.com>2022-07-03 18:33:38 -0700
commit97e0eb9267202052ed14882258dceca0f6c4afd7 (patch)
treecbd00f826a80c9216193be611a5c61faee6fe2ce /tests
parent04c6063183d94fe8970bdad485cf8221db9c31a8 (diff)
downloadgitlab-97e0eb9267202052ed14882258dceca0f6c4afd7.tar.gz
test(functional): replace len() calls with list membership checks
Diffstat (limited to 'tests')
-rw-r--r--tests/functional/api/test_clusters.py14
-rw-r--r--tests/functional/api/test_current_user.py12
-rw-r--r--tests/functional/api/test_deploy_keys.py7
-rw-r--r--tests/functional/api/test_deploy_tokens.py16
-rw-r--r--tests/functional/api/test_gitlab.py56
-rw-r--r--tests/functional/api/test_groups.py59
-rw-r--r--tests/functional/api/test_issues.py30
-rw-r--r--tests/functional/api/test_merge_requests.py3
-rw-r--r--tests/functional/api/test_projects.py66
-rw-r--r--tests/functional/api/test_releases.py4
-rw-r--r--tests/functional/api/test_repository.py8
-rw-r--r--tests/functional/api/test_snippets.py12
-rw-r--r--tests/functional/api/test_users.py36
-rw-r--r--tests/functional/api/test_variables.py12
14 files changed, 163 insertions, 172 deletions
diff --git a/tests/functional/api/test_clusters.py b/tests/functional/api/test_clusters.py
index 8930aad..32d1488 100644
--- a/tests/functional/api/test_clusters.py
+++ b/tests/functional/api/test_clusters.py
@@ -1,5 +1,5 @@
def test_project_clusters(project):
- project.clusters.create(
+ cluster = project.clusters.create(
{
"name": "cluster1",
"platform_kubernetes_attributes": {
@@ -9,9 +9,8 @@ def test_project_clusters(project):
}
)
clusters = project.clusters.list()
- assert len(clusters) == 1
+ assert cluster in clusters
- cluster = clusters[0]
cluster.platform_kubernetes_attributes = {"api_url": "http://newurl"}
cluster.save()
@@ -19,11 +18,11 @@ def test_project_clusters(project):
assert cluster.platform_kubernetes["api_url"] == "http://newurl"
cluster.delete()
- assert len(project.clusters.list()) == 0
+ assert cluster not in project.clusters.list()
def test_group_clusters(group):
- group.clusters.create(
+ cluster = group.clusters.create(
{
"name": "cluster1",
"platform_kubernetes_attributes": {
@@ -33,9 +32,8 @@ def test_group_clusters(group):
}
)
clusters = group.clusters.list()
- assert len(clusters) == 1
+ assert cluster in clusters
- cluster = clusters[0]
cluster.platform_kubernetes_attributes = {"api_url": "http://newurl"}
cluster.save()
@@ -43,4 +41,4 @@ def test_group_clusters(group):
assert cluster.platform_kubernetes["api_url"] == "http://newurl"
cluster.delete()
- assert len(group.clusters.list()) == 0
+ assert cluster not in group.clusters.list()
diff --git a/tests/functional/api/test_current_user.py b/tests/functional/api/test_current_user.py
index c8fc639..b12145e 100644
--- a/tests/functional/api/test_current_user.py
+++ b/tests/functional/api/test_current_user.py
@@ -1,30 +1,30 @@
def test_current_user_email(gl):
gl.auth()
mail = gl.user.emails.create({"email": "current@user.com"})
- assert len(gl.user.emails.list()) == 2
+ assert mail in gl.user.emails.list()
mail.delete()
- assert len(gl.user.emails.list()) == 1
+ assert mail not in gl.user.emails.list()
def test_current_user_gpg_keys(gl, GPG_KEY):
gl.auth()
gkey = gl.user.gpgkeys.create({"key": GPG_KEY})
- assert len(gl.user.gpgkeys.list()) == 1
+ assert gkey in gl.user.gpgkeys.list()
# Seems broken on the gitlab side
gkey = gl.user.gpgkeys.get(gkey.id)
gkey.delete()
- assert len(gl.user.gpgkeys.list()) == 0
+ assert gkey not in gl.user.gpgkeys.list()
def test_current_user_ssh_keys(gl, SSH_KEY):
gl.auth()
key = gl.user.keys.create({"title": "testkey", "key": SSH_KEY})
- assert len(gl.user.keys.list()) == 1
+ assert key in gl.user.keys.list()
key.delete()
- assert len(gl.user.keys.list()) == 0
+ assert key not in gl.user.keys.list()
def test_current_user_status(gl):
diff --git a/tests/functional/api/test_deploy_keys.py b/tests/functional/api/test_deploy_keys.py
index 18828a2..1fbaa18 100644
--- a/tests/functional/api/test_deploy_keys.py
+++ b/tests/functional/api/test_deploy_keys.py
@@ -1,12 +1,11 @@
def test_project_deploy_keys(gl, project, DEPLOY_KEY):
deploy_key = project.keys.create({"title": "foo@bar", "key": DEPLOY_KEY})
- project_keys = list(project.keys.list())
- assert len(project_keys) == 1
+ assert deploy_key in project.keys.list()
project2 = gl.projects.create({"name": "deploy-key-project"})
project2.keys.enable(deploy_key.id)
- assert len(project2.keys.list()) == 1
+ assert deploy_key in project2.keys.list()
project2.keys.delete(deploy_key.id)
- assert len(project2.keys.list()) == 0
+ assert deploy_key not in project2.keys.list()
project2.delete()
diff --git a/tests/functional/api/test_deploy_tokens.py b/tests/functional/api/test_deploy_tokens.py
index 9824af5..538dabe 100644
--- a/tests/functional/api/test_deploy_tokens.py
+++ b/tests/functional/api/test_deploy_tokens.py
@@ -7,8 +7,8 @@ def test_project_deploy_tokens(gl, project):
"scopes": ["read_registry"],
}
)
- assert len(project.deploytokens.list()) == 1
- assert gl.deploytokens.list() == project.deploytokens.list()
+ assert deploy_token in project.deploytokens.list()
+ assert set(project.deploytokens.list()) <= set(gl.deploytokens.list())
deploy_token = project.deploytokens.get(deploy_token.id)
assert deploy_token.name == "foo"
@@ -17,8 +17,8 @@ def test_project_deploy_tokens(gl, project):
assert deploy_token.username == "bar"
deploy_token.delete()
- assert len(project.deploytokens.list()) == 0
- assert len(gl.deploytokens.list()) == 0
+ assert deploy_token not in project.deploytokens.list()
+ assert deploy_token not in gl.deploytokens.list()
def test_group_deploy_tokens(gl, group):
@@ -29,13 +29,13 @@ def test_group_deploy_tokens(gl, group):
}
)
- assert len(group.deploytokens.list()) == 1
- assert gl.deploytokens.list() == group.deploytokens.list()
+ assert deploy_token in group.deploytokens.list()
+ assert set(group.deploytokens.list()) <= set(gl.deploytokens.list())
deploy_token = group.deploytokens.get(deploy_token.id)
assert deploy_token.name == "foo"
assert deploy_token.scopes == ["read_registry"]
deploy_token.delete()
- assert len(group.deploytokens.list()) == 0
- assert len(gl.deploytokens.list()) == 0
+ assert deploy_token not in group.deploytokens.list()
+ assert deploy_token not in gl.deploytokens.list()
diff --git a/tests/functional/api/test_gitlab.py b/tests/functional/api/test_gitlab.py
index eb04052..3b6d925 100644
--- a/tests/functional/api/test_gitlab.py
+++ b/tests/functional/api/test_gitlab.py
@@ -1,5 +1,3 @@
-import warnings
-
import pytest
import gitlab
@@ -27,7 +25,7 @@ def test_broadcast_messages(gl):
assert msg.color == "#444444"
msg.delete()
- assert len(gl.broadcastmessages.list()) == 0
+ assert msg not in gl.broadcastmessages.list()
def test_markdown(gl):
@@ -109,10 +107,10 @@ def test_template_license(gl):
def test_hooks(gl):
hook = gl.hooks.create({"url": "http://whatever.com"})
- assert len(gl.hooks.list()) == 1
+ assert hook in gl.hooks.list()
hook.delete()
- assert len(gl.hooks.list()) == 0
+ assert hook not in gl.hooks.list()
def test_namespaces(gl):
@@ -151,10 +149,10 @@ def test_events(gl):
def test_features(gl):
feat = gl.features.set("foo", 30)
assert feat.name == "foo"
- assert len(gl.features.list()) == 1
+ assert feat in gl.features.list()
feat.delete()
- assert len(gl.features.list()) == 0
+ assert feat not in gl.features.list()
def test_pagination(gl, project):
@@ -198,54 +196,46 @@ def test_rate_limits(gl):
def test_list_default_warning(gl):
"""When there are more than 20 items and use default `list()` then warning is
generated"""
- with warnings.catch_warnings(record=True) as caught_warnings:
+ with pytest.warns(UserWarning, match="python-gitlab.readthedocs.io") as record:
gl.gitlabciymls.list()
- assert len(caught_warnings) == 1
- warning = caught_warnings[0]
- assert isinstance(warning.message, UserWarning)
- message = str(warning.message)
- assert "python-gitlab.readthedocs.io" in message
+
+ assert len(record) == 1
+ warning = record[0]
assert __file__ == warning.filename
-def test_list_page_nowarning(gl):
+def test_list_page_nowarning(gl, recwarn):
"""Using `page=X` will disable the warning"""
- with warnings.catch_warnings(record=True) as caught_warnings:
- gl.gitlabciymls.list(page=1)
- assert len(caught_warnings) == 0
+ gl.gitlabciymls.list(page=1)
+ assert not recwarn
-def test_list_all_false_nowarning(gl):
+def test_list_all_false_nowarning(gl, recwarn):
"""Using `all=False` will disable the warning"""
- with warnings.catch_warnings(record=True) as caught_warnings:
- gl.gitlabciymls.list(all=False)
- assert len(caught_warnings) == 0
+ gl.gitlabciymls.list(all=False)
+ assert not recwarn
-def test_list_all_true_nowarning(gl):
+def test_list_all_true_nowarning(gl, recwarn):
"""Using `all=True` will disable the warning"""
- with warnings.catch_warnings(record=True) as caught_warnings:
- items = gl.gitlabciymls.list(all=True)
- assert len(caught_warnings) == 0
+ items = gl.gitlabciymls.list(all=True)
+ assert not recwarn
assert len(items) > 20
-def test_list_iterator_true_nowarning(gl):
+def test_list_iterator_true_nowarning(gl, recwarn):
"""Using `iterator=True` will disable the warning"""
- with warnings.catch_warnings(record=True) as caught_warnings:
- items = gl.gitlabciymls.list(iterator=True)
- assert len(caught_warnings) == 0
+ items = gl.gitlabciymls.list(iterator=True)
+ assert not recwarn
assert len(list(items)) > 20
def test_list_as_list_false_warnings(gl):
"""Using `as_list=False` will disable the UserWarning but cause a
DeprecationWarning"""
- with warnings.catch_warnings(record=True) as caught_warnings:
+ with pytest.warns(DeprecationWarning) as record:
items = gl.gitlabciymls.list(as_list=False)
- assert len(caught_warnings) == 1
- for warning in caught_warnings:
- assert isinstance(warning.message, DeprecationWarning)
+ assert len(record) == 1
assert len(list(items)) > 20
diff --git a/tests/functional/api/test_groups.py b/tests/functional/api/test_groups.py
index b5ac6a7..83d032c 100644
--- a/tests/functional/api/test_groups.py
+++ b/tests/functional/api/test_groups.py
@@ -21,15 +21,23 @@ def test_groups(gl):
"password": "user2_pass",
}
)
- group1 = gl.groups.create({"name": "group1", "path": "group1"})
- group2 = gl.groups.create({"name": "group2", "path": "group2"})
+ group1 = gl.groups.create(
+ {"name": "gitlab-test-group1", "path": "gitlab-test-group1"}
+ )
+ group2 = gl.groups.create(
+ {"name": "gitlab-test-group2", "path": "gitlab-test-group2"}
+ )
- p_id = gl.groups.list(search="group2")[0].id
- group3 = gl.groups.create({"name": "group3", "path": "group3", "parent_id": p_id})
- group4 = gl.groups.create({"name": "group4", "path": "group4"})
+ p_id = gl.groups.list(search="gitlab-test-group2")[0].id
+ group3 = gl.groups.create(
+ {"name": "gitlab-test-group3", "path": "gitlab-test-group3", "parent_id": p_id}
+ )
+ group4 = gl.groups.create(
+ {"name": "gitlab-test-group4", "path": "gitlab-test-group4"}
+ )
- assert len(gl.groups.list()) == 4
- assert len(gl.groups.list(search="oup1")) == 1
+ assert {group1, group2, group3, group4} <= set(gl.groups.list())
+ assert gl.groups.list(search="gitlab-test-group1")[0].id == group1.id
assert group3.parent_id == p_id
assert group2.subgroups.list()[0].id == group3.id
assert group2.descendant_groups.list()[0].id == group3.id
@@ -92,8 +100,8 @@ def test_groups(gl):
assert len(group2.members.list()) == 2
group1.members.delete(user.id)
- assert len(group1.members.list()) == 2
- assert len(group1.members_all.list())
+ assert user not in group1.members.list()
+ assert group1.members_all.list()
member = group1.members.get(user2.id)
member.access_level = gitlab.const.AccessLevel.OWNER
member.save()
@@ -113,7 +121,7 @@ def test_group_labels(group):
label.save()
label = group.labels.get("foo")
assert label.description == "baz"
- assert len(group.labels.list()) == 1
+ assert label in group.labels.list()
label.new_name = "Label:that requires:encoding"
label.save()
@@ -122,7 +130,7 @@ def test_group_labels(group):
assert label.name == "Label:that requires:encoding"
label.delete()
- assert len(group.labels.list()) == 0
+ assert label not in group.labels.list()
def test_group_notification_settings(group):
@@ -138,7 +146,7 @@ def test_group_badges(group):
badge_image = "http://example.com"
badge_link = "http://example/img.svg"
badge = group.badges.create({"link_url": badge_link, "image_url": badge_image})
- assert len(group.badges.list()) == 1
+ assert badge in group.badges.list()
badge.image_url = "http://another.example.com"
badge.save()
@@ -147,12 +155,12 @@ def test_group_badges(group):
assert badge.image_url == "http://another.example.com"
badge.delete()
- assert len(group.badges.list()) == 0
+ assert badge not in group.badges.list()
def test_group_milestones(group):
milestone = group.milestones.create({"title": "groupmilestone1"})
- assert len(group.milestones.list()) == 1
+ assert milestone in group.milestones.list()
milestone.due_date = "2020-01-01T00:00:00Z"
milestone.save()
@@ -161,27 +169,27 @@ def test_group_milestones(group):
milestone = group.milestones.get(milestone.id)
assert milestone.state == "closed"
- assert len(milestone.issues()) == 0
- assert len(milestone.merge_requests()) == 0
+ assert not milestone.issues()
+ assert not milestone.merge_requests()
def test_group_custom_attributes(gl, group):
attrs = group.customattributes.list()
- assert len(attrs) == 0
+ assert not attrs
attr = group.customattributes.set("key", "value1")
- assert len(gl.groups.list(custom_attributes={"key": "value1"})) == 1
+ assert group in gl.groups.list(custom_attributes={"key": "value1"})
assert attr.key == "key"
assert attr.value == "value1"
- assert len(group.customattributes.list()) == 1
+ assert attr in group.customattributes.list()
attr = group.customattributes.set("key", "value2")
attr = group.customattributes.get("key")
assert attr.value == "value2"
- assert len(group.customattributes.list()) == 1
+ assert attr in group.customattributes.list()
attr.delete()
- assert len(group.customattributes.list()) == 0
+ assert attr not in group.customattributes.list()
def test_group_subgroups_projects(gl, user):
@@ -214,28 +222,31 @@ def test_group_subgroups_projects(gl, user):
def test_group_wiki(group):
content = "Group Wiki page content"
wiki = group.wikis.create({"title": "groupwikipage", "content": content})
- assert len(group.wikis.list()) == 1
+ assert wiki in group.wikis.list()
wiki = group.wikis.get(wiki.slug)
assert wiki.content == content
wiki.content = "new content"
wiki.save()
+
wiki.delete()
- assert len(group.wikis.list()) == 0
+ assert wiki not in group.wikis.list()
@pytest.mark.skip(reason="EE feature")
def test_group_hooks(group):
hook = group.hooks.create({"url": "http://hook.url"})
- assert len(group.hooks.list()) == 1
+ assert hook in group.hooks.list()
hook.note_events = True
hook.save()
hook = group.hooks.get(hook.id)
assert hook.note_events is True
+
hook.delete()
+ assert hook not in group.hooks.list()
def test_group_transfer(gl, group):
diff --git a/tests/functional/api/test_issues.py b/tests/functional/api/test_issues.py
index 64db46e..ba8b0e7 100644
--- a/tests/functional/api/test_issues.py
+++ b/tests/functional/api/test_issues.py
@@ -4,16 +4,19 @@ import gitlab
def test_create_issue(project):
issue = project.issues.create({"title": "my issue 1"})
issue2 = project.issues.create({"title": "my issue 2"})
- issue_iids = [issue.iid for issue in project.issues.list()]
- assert len(issue_iids) == 2
+
+ issues = project.issues.list()
+ issue_iids = [issue.iid for issue in issues]
+ assert {issue, issue2} <= set(issues)
# Test 'iids' as a list
- assert len(project.issues.list(iids=issue_iids)) == 2
+ filtered_issues = project.issues.list(iids=issue_iids)
+ assert {issue, issue2} == set(filtered_issues)
issue2.state_event = "close"
issue2.save()
- assert len(project.issues.list(state="closed")) == 1
- assert len(project.issues.list(state="opened")) == 1
+ assert issue in project.issues.list(state="opened")
+ assert issue2 in project.issues.list(state="closed")
assert isinstance(issue.user_agent_detail(), dict)
assert issue.user_agent_detail()["user_agent"]
@@ -23,19 +26,17 @@ def test_create_issue(project):
def test_issue_notes(issue):
- size = len(issue.notes.list())
-
note = issue.notes.create({"body": "This is an issue note"})
- assert len(issue.notes.list()) == size + 1
+ assert note in issue.notes.list()
emoji = note.awardemojis.create({"name": "tractor"})
- assert len(note.awardemojis.list()) == 1
+ assert emoji in note.awardemojis.list()
emoji.delete()
- assert len(note.awardemojis.list()) == 0
+ assert emoji not in note.awardemojis.list()
note.delete()
- assert len(issue.notes.list()) == size
+ assert note not in issue.notes.list()
def test_issue_labels(project, issue):
@@ -70,15 +71,12 @@ def test_issue_milestones(project, milestone):
milestone_event, gitlab.v4.objects.ProjectIssueResourceMilestoneEvent
)
- milestone_issues = project.issues.list(milestone=milestone.title)
- assert len(milestone_issues) == 1
+ assert issue in project.issues.list(milestone=milestone.title)
def test_issue_discussions(issue):
- size = len(issue.discussions.list())
-
discussion = issue.discussions.create({"body": "Discussion body"})
- assert len(issue.discussions.list()) == size + 1
+ assert discussion in issue.discussions.list()
d_note = discussion.notes.create({"body": "first note"})
d_note_from_get = discussion.notes.get(d_note.id)
diff --git a/tests/functional/api/test_merge_requests.py b/tests/functional/api/test_merge_requests.py
index 74d0b41..ee5127b 100644
--- a/tests/functional/api/test_merge_requests.py
+++ b/tests/functional/api/test_merge_requests.py
@@ -50,10 +50,9 @@ def test_merge_requests_get_lazy(project, merge_request):
def test_merge_request_discussion(project):
mr = project.mergerequests.list()[0]
- size = len(mr.discussions.list())
discussion = mr.discussions.create({"body": "Discussion body"})
- assert len(mr.discussions.list()) == size + 1
+ assert discussion in mr.discussions.list()
note = discussion.notes.create({"body": "first note"})
note_from_get = discussion.notes.get(note.id)
diff --git a/tests/functional/api/test_projects.py b/tests/functional/api/test_projects.py
index 3cb8ea2..81e0831 100644
--- a/tests/functional/api/test_projects.py
+++ b/tests/functional/api/test_projects.py
@@ -21,7 +21,7 @@ def test_create_project(gl, user):
# Moved from group tests chunk in legacy tests, TODO cleanup
admin_project = gl.projects.create({"name": "admin_project"})
assert isinstance(admin_project, gitlab.v4.objects.Project)
- assert len(gl.projects.list(search="admin")) == 1
+ assert admin_project in gl.projects.list(search="admin_project")
sudo_project = gl.projects.create({"name": "sudo_project"}, sudo=user.id)
@@ -53,7 +53,7 @@ def test_project_badges(project):
badge_link = "http://example/img.svg"
badge = project.badges.create({"link_url": badge_link, "image_url": badge_image})
- assert len(project.badges.list()) == 1
+ assert badge in project.badges.list()
badge.image_url = "http://another.example.com"
badge.save()
@@ -62,50 +62,50 @@ def test_project_badges(project):
assert badge.image_url == "http://another.example.com"
badge.delete()
- assert len(project.badges.list()) == 0
+ assert badge not in project.badges.list()
@pytest.mark.skip(reason="Commented out in legacy test")
def test_project_boards(project):
boards = project.boards.list()
- assert len(boards)
+ assert boards
board = boards[0]
lists = board.lists.list()
- begin_size = len(lists)
+
last_list = lists[-1]
last_list.position = 0
last_list.save()
+
last_list.delete()
- lists = board.lists.list()
- assert len(lists) == begin_size - 1
+ assert last_list not in board.lists.list()
def test_project_custom_attributes(gl, project):
attrs = project.customattributes.list()
- assert len(attrs) == 0
+ assert not attrs
attr = project.customattributes.set("key", "value1")
assert attr.key == "key"
assert attr.value == "value1"
- assert len(project.customattributes.list()) == 1
- assert len(gl.projects.list(custom_attributes={"key": "value1"})) == 1
+ assert attr in project.customattributes.list()
+ assert project in gl.projects.list(custom_attributes={"key": "value1"})
attr = project.customattributes.set("key", "value2")
attr = project.customattributes.get("key")
assert attr.value == "value2"
- assert len(project.customattributes.list()) == 1
+ assert attr in project.customattributes.list()
attr.delete()
- assert len(project.customattributes.list()) == 0
+ assert attr not in project.customattributes.list()
def test_project_environments(project):
- project.environments.create(
+ environment = project.environments.create(
{"name": "env1", "external_url": "http://fake.env/whatever"}
)
environments = project.environments.list()
- assert len(environments) == 1
+ assert environment in environments
environment = environments[0]
environment.external_url = "http://new.env/whatever"
@@ -116,7 +116,7 @@ def test_project_environments(project):
environment.stop()
environment.delete()
- assert len(project.environments.list()) == 0
+ assert environment not in project.environments.list()
def test_project_events(project):
@@ -147,14 +147,16 @@ def test_project_forks(gl, project, user):
def test_project_hooks(project):
hook = project.hooks.create({"url": "http://hook.url"})
- assert len(project.hooks.list()) == 1
+ assert hook in project.hooks.list()
hook.note_events = True
hook.save()
hook = project.hooks.get(hook.id)
assert hook.note_events is True
+
hook.delete()
+ assert hook not in project.hooks.list()
def test_project_housekeeping(project):
@@ -164,7 +166,7 @@ def test_project_housekeeping(project):
def test_project_labels(project):
label = project.labels.create({"name": "label", "color": "#778899"})
labels = project.labels.list()
- assert len(labels) == 1
+ assert label in labels
label = project.labels.get("label")
assert label == labels[0]
@@ -182,7 +184,7 @@ def test_project_labels(project):
assert label.subscribed is False
label.delete()
- assert len(project.labels.list()) == 0
+ assert label not in project.labels.list()
def test_project_label_promotion(gl, group):
@@ -209,7 +211,7 @@ def test_project_label_promotion(gl, group):
def test_project_milestones(project):
milestone = project.milestones.create({"title": "milestone1"})
- assert len(project.milestones.list()) == 1
+ assert milestone in project.milestones.list()
milestone.due_date = "2020-01-01T00:00:00Z"
milestone.save()
@@ -219,8 +221,8 @@ def test_project_milestones(project):
milestone = project.milestones.get(milestone.id)
assert milestone.state == "closed"
- assert len(milestone.issues()) == 0
- assert len(milestone.merge_requests()) == 0
+ assert not milestone.issues()
+ assert not milestone.merge_requests()
def test_project_milestone_promotion(gl, group):
@@ -246,24 +248,24 @@ def test_project_milestone_promotion(gl, group):
def test_project_pages_domains(gl, project):
domain = project.pagesdomains.create({"domain": "foo.domain.com"})
- assert len(project.pagesdomains.list()) == 1
- assert len(gl.pagesdomains.list()) == 1
+ assert domain in project.pagesdomains.list()
+ assert domain in gl.pagesdomains.list()
domain = project.pagesdomains.get("foo.domain.com")
assert domain.domain == "foo.domain.com"
domain.delete()
- assert len(project.pagesdomains.list()) == 0
+ assert domain not in project.pagesdomains.list()
def test_project_protected_branches(project):
p_b = project.protectedbranches.create({"name": "*-stable"})
assert p_b.name == "*-stable"
- assert len(project.protectedbranches.list()) == 1
+ assert p_b in project.protectedbranches.list()
p_b = project.protectedbranches.get("*-stable")
p_b.delete()
- assert len(project.protectedbranches.list()) == 0
+ assert p_b not in project.protectedbranches.list()
def test_project_remote_mirrors(project):
@@ -316,22 +318,24 @@ def test_project_storage(project):
def test_project_tags(project, project_file):
tag = project.tags.create({"tag_name": "v1.0", "ref": "main"})
- assert len(project.tags.list()) == 1
+ assert tag in project.tags.list()
tag.delete()
- assert len(project.tags.list()) == 0
+ assert tag not in project.tags.list()
def test_project_triggers(project):
trigger = project.triggers.create({"description": "trigger1"})
- assert len(project.triggers.list()) == 1
+ assert trigger in project.triggers.list()
+
trigger.delete()
+ assert trigger not in project.triggers.list()
def test_project_wiki(project):
content = "Wiki page content"
wiki = project.wikis.create({"title": "wikipage", "content": content})
- assert len(project.wikis.list()) == 1
+ assert wiki in project.wikis.list()
wiki = project.wikis.get(wiki.slug)
assert wiki.content == content
@@ -340,7 +344,7 @@ def test_project_wiki(project):
wiki.content = "new content"
wiki.save()
wiki.delete()
- assert len(project.wikis.list()) == 0
+ assert wiki not in project.wikis.list()
def test_project_groups_list(gl, group):
diff --git a/tests/functional/api/test_releases.py b/tests/functional/api/test_releases.py
index f409c23..c52e396 100644
--- a/tests/functional/api/test_releases.py
+++ b/tests/functional/api/test_releases.py
@@ -16,7 +16,7 @@ def test_create_project_release(project, project_file):
}
)
- assert len(project.releases.list()) == 1
+ assert release in project.releases.list()
assert project.releases.get(release_tag_name)
assert release.name == release_name
assert release.tag_name == release_tag_name
@@ -35,7 +35,7 @@ def test_create_project_release_no_name(project, project_file):
}
)
- assert len(project.releases.list()) >= 1
+ assert release in project.releases.list()
assert project.releases.get(unnamed_release_tag_name)
assert release.tag_name == unnamed_release_tag_name
assert release.description == release_description
diff --git a/tests/functional/api/test_repository.py b/tests/functional/api/test_repository.py
index 9c1c1cd..bda046e 100644
--- a/tests/functional/api/test_repository.py
+++ b/tests/functional/api/test_repository.py
@@ -107,9 +107,8 @@ def test_create_commit(project):
def test_create_commit_status(project):
commit = project.commits.list()[0]
- size = len(commit.statuses.list())
- commit.statuses.create({"state": "success", "sha": commit.id})
- assert len(commit.statuses.list()) == size + 1
+ status = commit.statuses.create({"state": "success", "sha": commit.id})
+ assert status in commit.statuses.list()
def test_commit_signature(project):
@@ -130,10 +129,9 @@ def test_commit_comment(project):
def test_commit_discussion(project):
commit = project.commits.list()[0]
- count = len(commit.discussions.list())
discussion = commit.discussions.create({"body": "Discussion body"})
- assert len(commit.discussions.list()) == (count + 1)
+ assert discussion in commit.discussions.list()
note = discussion.notes.create({"body": "first note"})
note_from_get = discussion.notes.get(note.id)
diff --git a/tests/functional/api/test_snippets.py b/tests/functional/api/test_snippets.py
index ce235f3..f9084e1 100644
--- a/tests/functional/api/test_snippets.py
+++ b/tests/functional/api/test_snippets.py
@@ -3,7 +3,7 @@ import gitlab
def test_snippets(gl):
snippets = gl.snippets.list(all=True)
- assert len(snippets) == 0
+ assert not snippets
snippet = gl.snippets.create(
{"title": "snippet1", "file_name": "snippet1.py", "content": "import gitlab"}
@@ -20,8 +20,7 @@ def test_snippets(gl):
assert snippet.user_agent_detail()["user_agent"]
snippet.delete()
- snippets = gl.snippets.list(all=True)
- assert len(snippets) == 0
+ assert snippet not in gl.snippets.list(all=True)
def test_project_snippets(project):
@@ -42,10 +41,9 @@ def test_project_snippets(project):
def test_project_snippet_discussion(project):
snippet = project.snippets.list()[0]
- size = len(snippet.discussions.list())
discussion = snippet.discussions.create({"body": "Discussion body"})
- assert len(snippet.discussions.list()) == size + 1
+ assert discussion in snippet.discussions.list()
note = discussion.notes.create({"body": "first note"})
note_from_get = discussion.notes.get(note.id)
@@ -68,7 +66,7 @@ def test_project_snippet_file(project):
snippet = project.snippets.get(snippet.id)
assert snippet.content().decode() == "initial content"
assert snippet.file_name == "bar.py"
+ assert snippet in project.snippets.list()
- size = len(project.snippets.list())
snippet.delete()
- assert len(project.snippets.list()) == (size - 1)
+ assert snippet not in project.snippets.list()
diff --git a/tests/functional/api/test_users.py b/tests/functional/api/test_users.py
index 5629063..bdee130 100644
--- a/tests/functional/api/test_users.py
+++ b/tests/functional/api/test_users.py
@@ -97,72 +97,68 @@ def test_list_multiple_users(gl, user):
expected = [user, second_user]
actual = list(gl.users.list(search=user.username))
- assert len(expected) == len(actual)
- assert len(gl.users.list(search="asdf")) == 0
+ assert set(expected) == set(actual)
+ assert not gl.users.list(search="asdf")
def test_user_gpg_keys(gl, user, GPG_KEY):
gkey = user.gpgkeys.create({"key": GPG_KEY})
- assert len(user.gpgkeys.list()) == 1
+ assert gkey in user.gpgkeys.list()
# Seems broken on the gitlab side
# gkey = user.gpgkeys.get(gkey.id)
gkey.delete()
- assert len(user.gpgkeys.list()) == 0
+ assert gkey not in user.gpgkeys.list()
def test_user_ssh_keys(gl, user, SSH_KEY):
key = user.keys.create({"title": "testkey", "key": SSH_KEY})
- assert len(user.keys.list()) == 1
+ assert key in user.keys.list()
get_key = user.keys.get(key.id)
assert get_key.key == key.key
key.delete()
- assert len(user.keys.list()) == 0
+ assert key not in user.keys.list()
def test_user_email(gl, user):
email = user.emails.create({"email": "foo2@bar.com"})
- assert len(user.emails.list()) == 1
+ assert email in user.emails.list()
email.delete()
- assert len(user.emails.list()) == 0
+ assert email not in user.emails.list()
def test_user_custom_attributes(gl, user):
attrs = user.customattributes.list()
- assert len(attrs) == 0
+ assert not attrs
attr = user.customattributes.set("key", "value1")
- assert len(gl.users.list(custom_attributes={"key": "value1"})) == 1
+ assert user in gl.users.list(custom_attributes={"key": "value1"})
assert attr.key == "key"
assert attr.value == "value1"
- assert len(user.customattributes.list()) == 1
+ assert attr in user.customattributes.list()
attr = user.customattributes.set("key", "value2")
attr = user.customattributes.get("key")
assert attr.value == "value2"
- assert len(user.customattributes.list()) == 1
+ assert attr in user.customattributes.list()
attr.delete()
- assert len(user.customattributes.list()) == 0
+ assert attr not in user.customattributes.list()
def test_user_impersonation_tokens(gl, user):
token = user.impersonationtokens.create(
{"name": "token1", "scopes": ["api", "read_user"]}
)
-
- tokens = user.impersonationtokens.list(state="active")
- assert len(tokens) == 1
+ assert token in user.impersonationtokens.list(state="active")
token.delete()
- tokens = user.impersonationtokens.list(state="active")
- assert len(tokens) == 0
- tokens = user.impersonationtokens.list(state="inactive")
- assert len(tokens) == 1
+ assert token not in user.impersonationtokens.list(state="active")
+ assert token in user.impersonationtokens.list(state="inactive")
def test_user_identities(gl, user):
diff --git a/tests/functional/api/test_variables.py b/tests/functional/api/test_variables.py
index d20ebba..867e563 100644
--- a/tests/functional/api/test_variables.py
+++ b/tests/functional/api/test_variables.py
@@ -9,7 +9,7 @@ https://docs.gitlab.com/ee/api/group_level_variables.html
def test_instance_variables(gl):
variable = gl.variables.create({"key": "key1", "value": "value1"})
assert variable.value == "value1"
- assert len(gl.variables.list()) == 1
+ assert variable in gl.variables.list()
variable.value = "new_value1"
variable.save()
@@ -17,13 +17,13 @@ def test_instance_variables(gl):
assert variable.value == "new_value1"
variable.delete()
- assert len(gl.variables.list()) == 0
+ assert variable not in gl.variables.list()
def test_group_variables(group):
variable = group.variables.create({"key": "key1", "value": "value1"})
assert variable.value == "value1"
- assert len(group.variables.list()) == 1
+ assert variable in group.variables.list()
variable.value = "new_value1"
variable.save()
@@ -31,13 +31,13 @@ def test_group_variables(group):
assert variable.value == "new_value1"
variable.delete()
- assert len(group.variables.list()) == 0
+ assert variable not in group.variables.list()
def test_project_variables(project):
variable = project.variables.create({"key": "key1", "value": "value1"})
assert variable.value == "value1"
- assert len(project.variables.list()) == 1
+ assert variable in project.variables.list()
variable.value = "new_value1"
variable.save()
@@ -45,4 +45,4 @@ def test_project_variables(project):
assert variable.value == "new_value1"
variable.delete()
- assert len(project.variables.list()) == 0
+ assert variable not in project.variables.list()