mirror of
https://github.com/containers/podman-compose.git
synced 2024-12-12 09:41:16 +01:00
ca58d7cd58
The Compose Specification supports adding labels to the build image which is also used in practice. Support this and pass the labels to `podman build`. Signed-off-by: Sebastian Wick <sebastian.wick@redhat.com>
61 lines
2.0 KiB
Python
61 lines
2.0 KiB
Python
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
|
|
import json
|
|
import os
|
|
import unittest
|
|
|
|
from tests.integration.test_podman_compose import podman_compose_path
|
|
from tests.integration.test_podman_compose import test_path
|
|
from tests.integration.test_utils import RunSubprocessMixin
|
|
|
|
|
|
class TestBuildLabels(unittest.TestCase, RunSubprocessMixin):
|
|
def test_build_labels(self):
|
|
"""The build context can contain labels which should be added to the resulting image. They
|
|
can be either an array or a map.
|
|
"""
|
|
|
|
compose_path = os.path.join(test_path(), "build_labels/docker-compose.yml")
|
|
|
|
try:
|
|
self.run_subprocess_assert_returncode([
|
|
podman_compose_path(),
|
|
"-f",
|
|
compose_path,
|
|
"build",
|
|
"test_build_labels_map",
|
|
"test_build_labels_array",
|
|
])
|
|
|
|
expected_labels = {
|
|
"com.example.department": "Finance",
|
|
"com.example.description": "Accounting webapp",
|
|
"com.example.label-with-empty-value": "",
|
|
}
|
|
|
|
out, _ = self.run_subprocess_assert_returncode([
|
|
"podman",
|
|
"inspect",
|
|
"my-busybox-build-labels-map",
|
|
"my-busybox-build-labels-array",
|
|
])
|
|
|
|
images = json.loads(out)
|
|
self.assertEqual(len(images), 2)
|
|
labels_map = images[0].get("Config", {}).get("Labels", {})
|
|
labels_array = images[1].get("Config", {}).get("Labels", {})
|
|
for k, v in expected_labels.items():
|
|
self.assertIn(k, labels_map)
|
|
self.assertEqual(labels_map[k], v)
|
|
self.assertIn(k, labels_array)
|
|
self.assertEqual(labels_array[k], v)
|
|
|
|
finally:
|
|
self.run_subprocess_assert_returncode([
|
|
"podman",
|
|
"rmi",
|
|
"my-busybox-build-labels-map",
|
|
"my-busybox-build-labels-array",
|
|
])
|