summaryrefslogtreecommitdiff
path: root/tools/functional/cli
diff options
context:
space:
mode:
authorNejc Habjan <nejc.habjan@siemens.com>2020-10-10 17:24:57 +0200
committerNejc Habjan <nejc.habjan@siemens.com>2020-10-12 18:29:06 +0200
commitf4e79501f1be1394873042dd65beda49e869afb8 (patch)
tree83dceff9d3571778a533978ac89d2a3f309fc73a /tools/functional/cli
parent375b29d3ab393f7b3fa734c5320736cdcba5df8a (diff)
downloadgitlab-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.py52
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)