import pytest
import gitlab
def test_groups(gl):
# TODO: This one still needs lots of work
user = gl.users.create(
{
"email": "user@test.com",
"username": "user",
"name": "user",
"password": "E4596f8be406Bc3a14a4ccdb1df80587#!1",
}
)
user2 = gl.users.create(
{
"email": "user2@test.com",
"username": "user2",
"name": "user2",
"password": "E4596f8be406Bc3a14a4ccdb1df80587#!#2",
}
)
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="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 {group1, group2, group3, group4} 15 or (
gitlab_version.major == 15 and gitlab_version.minor >= 9
)
p_b = group.protectedbranches.create(
{"name": "*-stable", "allow_force_push": False}
)
assert p_b.name == "*-stable"
assert not p_b.allow_force_push
assert p_b in group.protectedbranches.list()
if can_update_prot_branch:
p_b.allow_force_push = True
p_b.save()
p_b = group.protectedbranches.get("*-stable")
if can_update_prot_branch:
assert p_b.allow_force_push
p_b.delete()
def test_group_transfer(gl, group):
transfer_group = gl.groups.create(
{"name": "transfer-test-group", "path": "transfer-test-group"}
)
transfer_group = gl.groups.get(transfer_group.id)
assert transfer_group.parent_id != group.id
transfer_group.transfer(group.id)
transferred_group = gl.groups.get(transfer_group.id)
assert transferred_group.parent_id == group.id
transfer_group.transfer()
transferred_group = gl.groups.get(transfer_group.id)
assert transferred_group.path == transferred_group.full_path
@pytest.mark.gitlab_premium
@pytest.mark.xfail(reason="need to setup an identity provider or it's mock")
def test_group_saml_group_links(group):
group.saml_group_links.create(
{"saml_group_name": "saml-group-1", "access_level": 10}
)
@pytest.mark.gitlab_premium
def test_group_service_account(group):
service_account = group.service_accounts.create(
{"name": "gitlab-service-account", "username": "gitlab-service-account"}
)
assert service_account.name == "gitlab-service-account"
assert service_account.username == "gitlab-service-account"