diff options
| author | Nejc Habjan <nejc.habjan@siemens.com> | 2022-02-03 23:17:49 +0100 |
|---|---|---|
| committer | John Villalovos <john@sodarock.com> | 2022-02-03 15:43:35 -0800 |
| commit | 2fea2e64c554fd92d14db77cc5b1e2976b27b609 (patch) | |
| tree | fe0d097a4473a2650cf4c561bcdfa1f8d2b456fe /tests | |
| parent | e30f39dff5726266222b0f56c94f4ccfe38ba527 (diff) | |
| download | gitlab-2fea2e64c554fd92d14db77cc5b1e2976b27b609.tar.gz | |
test(services): add functional tests for services
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/functional/api/test_services.py | 29 | ||||
| -rw-r--r-- | tests/functional/conftest.py | 15 |
2 files changed, 43 insertions, 1 deletions
diff --git a/tests/functional/api/test_services.py b/tests/functional/api/test_services.py index 100c0c9..51805ef 100644 --- a/tests/functional/api/test_services.py +++ b/tests/functional/api/test_services.py @@ -6,6 +6,33 @@ https://docs.gitlab.com/ee/api/integrations.html import gitlab -def test_services(project): +def test_get_service_lazy(project): service = project.services.get("jira", lazy=True) assert isinstance(service, gitlab.v4.objects.ProjectService) + + +def test_update_service(project): + service_dict = project.services.update( + "emails-on-push", {"recipients": "email@example.com"} + ) + assert service_dict["active"] + + +def test_list_services(project, service): + services = project.services.list() + assert isinstance(services[0], gitlab.v4.objects.ProjectService) + assert services[0].active + + +def test_get_service(project, service): + service_object = project.services.get(service["slug"]) + assert isinstance(service_object, gitlab.v4.objects.ProjectService) + assert service_object.active + + +def test_delete_service(project, service): + service_object = project.services.get(service["slug"]) + service_object.delete() + + service_object = project.services.get(service["slug"]) + assert not service_object.active diff --git a/tests/functional/conftest.py b/tests/functional/conftest.py index d34c87e..ca589f2 100644 --- a/tests/functional/conftest.py +++ b/tests/functional/conftest.py @@ -392,6 +392,21 @@ def release(project, project_file): return release +@pytest.fixture(scope="function") +def service(project): + """This is just a convenience fixture to make test cases slightly prettier. Project + services are not idempotent. A service cannot be retrieved until it is enabled. + After it is enabled the first time, it can never be fully deleted, only disabled.""" + service = project.services.update("asana", {"api_key": "api_key"}) + + yield service + + try: + project.services.delete("asana") + except gitlab.exceptions.GitlabDeleteError as e: + print(f"Service already disabled: {e}") + + @pytest.fixture(scope="module") def user(gl): """User fixture for user API resource tests.""" |
