diff options
| author | Nejc Habjan <nejc.habjan@siemens.com> | 2022-02-02 00:57:06 +0100 |
|---|---|---|
| committer | John Villalovos <john@sodarock.com> | 2022-02-01 17:37:47 -0800 |
| commit | 8ce0336325b339fa82fe4674a528f4bb59963df7 (patch) | |
| tree | 3ac2beb1122698b755ec1c1c7201fd36fcea50bb /tests/functional/cli | |
| parent | c8c2fa763558c4d9906e68031a6602e007fec930 (diff) | |
| download | gitlab-8ce0336325b339fa82fe4674a528f4bb59963df7.tar.gz | |
test(objects): add tests for project artifacts
Diffstat (limited to 'tests/functional/cli')
| -rw-r--r-- | tests/functional/cli/test_cli_artifacts.py | 106 |
1 files changed, 101 insertions, 5 deletions
diff --git a/tests/functional/cli/test_cli_artifacts.py b/tests/functional/cli/test_cli_artifacts.py index 76eb9f2..b3122cd 100644 --- a/tests/functional/cli/test_cli_artifacts.py +++ b/tests/functional/cli/test_cli_artifacts.py @@ -4,6 +4,8 @@ import time from io import BytesIO from zipfile import is_zipfile +import pytest + content = textwrap.dedent( """\ test-artifact: @@ -20,15 +22,19 @@ data = { } -def test_cli_artifacts(capsysbinary, gitlab_config, gitlab_runner, project): +@pytest.fixture(scope="module") +def job_with_artifacts(gitlab_runner, project): project.files.create(data) jobs = None while not jobs: - jobs = project.jobs.list(scope="success") time.sleep(0.5) + jobs = project.jobs.list(scope="success") - job = project.jobs.get(jobs[0].id) + return project.jobs.get(jobs[0].id) + + +def test_cli_job_artifacts(capsysbinary, gitlab_config, job_with_artifacts): cmd = [ "gitlab", "--config-file", @@ -36,9 +42,9 @@ def test_cli_artifacts(capsysbinary, gitlab_config, gitlab_runner, project): "project-job", "artifacts", "--id", - str(job.id), + str(job_with_artifacts.id), "--project-id", - str(project.id), + str(job_with_artifacts.pipeline["project_id"]), ] with capsysbinary.disabled(): @@ -47,3 +53,93 @@ def test_cli_artifacts(capsysbinary, gitlab_config, gitlab_runner, project): artifacts_zip = BytesIO(artifacts) assert is_zipfile(artifacts_zip) + + +def test_cli_project_artifact_download(gitlab_config, job_with_artifacts): + cmd = [ + "gitlab", + "--config-file", + gitlab_config, + "project-artifact", + "download", + "--project-id", + str(job_with_artifacts.pipeline["project_id"]), + "--ref-name", + job_with_artifacts.ref, + "--job", + job_with_artifacts.name, + ] + + artifacts = subprocess.run(cmd, capture_output=True, check=True) + assert isinstance(artifacts.stdout, bytes) + + artifacts_zip = BytesIO(artifacts.stdout) + assert is_zipfile(artifacts_zip) + + +def test_cli_project_artifacts_warns_deprecated(gitlab_config, job_with_artifacts): + cmd = [ + "gitlab", + "--config-file", + gitlab_config, + "project", + "artifacts", + "--id", + str(job_with_artifacts.pipeline["project_id"]), + "--ref-name", + job_with_artifacts.ref, + "--job", + job_with_artifacts.name, + ] + + artifacts = subprocess.run(cmd, capture_output=True, check=True) + assert isinstance(artifacts.stdout, bytes) + assert b"DeprecationWarning" in artifacts.stderr + + artifacts_zip = BytesIO(artifacts.stdout) + assert is_zipfile(artifacts_zip) + + +def test_cli_project_artifact_raw(gitlab_config, job_with_artifacts): + cmd = [ + "gitlab", + "--config-file", + gitlab_config, + "project-artifact", + "raw", + "--project-id", + str(job_with_artifacts.pipeline["project_id"]), + "--ref-name", + job_with_artifacts.ref, + "--job", + job_with_artifacts.name, + "--artifact-path", + "artifact.txt", + ] + + artifacts = subprocess.run(cmd, capture_output=True, check=True) + assert isinstance(artifacts.stdout, bytes) + assert artifacts.stdout == b"test\n" + + +def test_cli_project_artifact_warns_deprecated(gitlab_config, job_with_artifacts): + cmd = [ + "gitlab", + "--config-file", + gitlab_config, + "project", + "artifact", + "--id", + str(job_with_artifacts.pipeline["project_id"]), + "--ref-name", + job_with_artifacts.ref, + "--job", + job_with_artifacts.name, + "--artifact-path", + "artifact.txt", + ] + + artifacts = subprocess.run(cmd, capture_output=True, check=True) + assert isinstance(artifacts.stdout, bytes) + assert b"DeprecationWarning" in artifacts.stderr + assert artifacts.stdout == b"test\n" |
