summaryrefslogtreecommitdiff
path: root/tools/functional/cli
diff options
context:
space:
mode:
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)