Skip to content

Commit 2fea2e6

Browse files
nejchJohnVillalovos
authored andcommitted
test(services): add functional tests for services
1 parent e30f39d commit 2fea2e6

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

tests/functional/api/test_services.py

+28-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,33 @@
66
import gitlab
77

88

9-
def test_services(project):
9+
def test_get_service_lazy(project):
1010
service = project.services.get("jira", lazy=True)
1111
assert isinstance(service, gitlab.v4.objects.ProjectService)
12+
13+
14+
def test_update_service(project):
15+
service_dict = project.services.update(
16+
"emails-on-push", {"recipients": "email@example.com"}
17+
)
18+
assert service_dict["active"]
19+
20+
21+
def test_list_services(project, service):
22+
services = project.services.list()
23+
assert isinstance(services[0], gitlab.v4.objects.ProjectService)
24+
assert services[0].active
25+
26+
27+
def test_get_service(project, service):
28+
service_object = project.services.get(service["slug"])
29+
assert isinstance(service_object, gitlab.v4.objects.ProjectService)
30+
assert service_object.active
31+
32+
33+
def test_delete_service(project, service):
34+
service_object = project.services.get(service["slug"])
35+
service_object.delete()
36+
37+
service_object = project.services.get(service["slug"])
38+
assert not service_object.active

tests/functional/conftest.py

+15
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,21 @@ def release(project, project_file):
392392
return release
393393

394394

395+
@pytest.fixture(scope="function")
396+
def service(project):
397+
"""This is just a convenience fixture to make test cases slightly prettier. Project
398+
services are not idempotent. A service cannot be retrieved until it is enabled.
399+
After it is enabled the first time, it can never be fully deleted, only disabled."""
400+
service = project.services.update("asana", {"api_key": "api_key"})
401+
402+
yield service
403+
404+
try:
405+
project.services.delete("asana")
406+
except gitlab.exceptions.GitlabDeleteError as e:
407+
print(f"Service already disabled: {e}")
408+
409+
395410
@pytest.fixture(scope="module")
396411
def user(gl):
397412
"""User fixture for user API resource tests."""

0 commit comments

Comments
 (0)