diff options
author | Nejc Habjan <nejc.habjan@siemens.com> | 2020-10-10 17:24:57 +0200 |
---|---|---|
committer | Nejc Habjan <nejc.habjan@siemens.com> | 2020-10-12 18:29:06 +0200 |
commit | f4e79501f1be1394873042dd65beda49e869afb8 (patch) | |
tree | 83dceff9d3571778a533978ac89d2a3f309fc73a /tools/functional/cli | |
parent | 375b29d3ab393f7b3fa734c5320736cdcba5df8a (diff) | |
download | gitlab-fix/cli-binary-data.tar.gz |
test(cli): add test for job artifacts downloadfix/cli-binary-data
Diffstat (limited to 'tools/functional/cli')
-rw-r--r-- | tools/functional/cli/test_cli_artifacts.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tools/functional/cli/test_cli_artifacts.py b/tools/functional/cli/test_cli_artifacts.py new file mode 100644 index 0000000..27d5d74 --- /dev/null +++ b/tools/functional/cli/test_cli_artifacts.py @@ -0,0 +1,52 @@ +import subprocess +import sys +import textwrap +import time +from io import BytesIO +from zipfile import is_zipfile + +import pytest + + +content = textwrap.dedent( + """\ + test-artifact: + script: echo "test" > artifact.txt + artifacts: + untracked: true + """ +) +data = { + "file_path": ".gitlab-ci.yml", + "branch": "master", + "content": content, + "commit_message": "Initial commit", +} + + +@pytest.mark.skipif(sys.version_info < (3, 8), reason="I am the walrus") +def test_cli_artifacts(capsysbinary, gitlab_config, gitlab_runner, project): + project.files.create(data) + + while not (jobs := project.jobs.list(scope="success")): + time.sleep(0.5) + + job = project.jobs.get(jobs[0].id) + cmd = [ + "gitlab", + "--config-file", + gitlab_config, + "project-job", + "artifacts", + "--id", + str(job.id), + "--project-id", + str(project.id), + ] + + with capsysbinary.disabled(): + artifacts = subprocess.check_output(cmd) + assert isinstance(artifacts, bytes) + + artifacts_zip = BytesIO(artifacts) + assert is_zipfile(artifacts_zip) |