mirror of
https://github.com/containers/podman-compose.git
synced 2025-08-10 06:07:50 +02:00
test/integration: Automate manual 'secrets' test
Signed-off-by: Monika Kairaityte <monika@kibit.lt>
This commit is contained in:
84
tests/integration/secrets/test_podman_compose_secrets.py
Normal file
84
tests/integration/secrets/test_podman_compose_secrets.py
Normal file
@ -0,0 +1,84 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
import os
|
||||
import unittest
|
||||
from subprocess import PIPE
|
||||
from subprocess import Popen
|
||||
|
||||
from tests.integration.test_utils import RunSubprocessMixin
|
||||
from tests.integration.test_utils import podman_compose_path
|
||||
from tests.integration.test_utils import test_path
|
||||
|
||||
|
||||
def compose_yaml_path():
|
||||
return os.path.join(os.path.join(test_path(), "secrets"), "docker-compose.yaml")
|
||||
|
||||
|
||||
class TestComposeNoSecrets(unittest.TestCase, RunSubprocessMixin):
|
||||
created_secrets = [
|
||||
"podman_compose_test_secret",
|
||||
"podman_compose_test_secret_2",
|
||||
"podman_compose_test_secret_3",
|
||||
"podman_compose_test_secret_custom_name",
|
||||
]
|
||||
|
||||
def setUp(self):
|
||||
for secret in self.created_secrets:
|
||||
p = Popen(["podman", "secret", "create", secret, "-"], stdin=PIPE)
|
||||
p.communicate(secret.encode('utf-8'))
|
||||
|
||||
def tearDown(self):
|
||||
for secret in self.created_secrets:
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"secret",
|
||||
"rm",
|
||||
f"{secret}",
|
||||
])
|
||||
|
||||
# test if secrets are saved and available in respective files of a container
|
||||
def test_secrets(self):
|
||||
try:
|
||||
_, error, _ = self.run_subprocess(
|
||||
[
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
compose_yaml_path(),
|
||||
"up",
|
||||
"test",
|
||||
],
|
||||
)
|
||||
|
||||
self.assertIn(
|
||||
b'WARNING: Service "test" uses target: "podman_compose_test_secret_3" '
|
||||
+ b'for secret: "podman_compose_test_secret_3". That is un-supported and '
|
||||
+ b'a no-op and is ignored.',
|
||||
error,
|
||||
)
|
||||
self.assertIn(
|
||||
b'WARNING: Service test uses secret unused_params_warning with uid, '
|
||||
+ b'gid, or mode. These fields are not supported by this implementation '
|
||||
+ b'of the Compose file',
|
||||
error,
|
||||
)
|
||||
|
||||
output, _ = self.run_subprocess_assert_returncode(["podman", "logs", "secrets_test_1"])
|
||||
expected_output = (
|
||||
b'/run/secrets/custom_name:important-secret-is-important\n'
|
||||
+ b'/run/secrets/file_secret:important-secret-is-important\n'
|
||||
+ b'/run/secrets/podman_compose_test_secret:podman_compose_test_secret\n'
|
||||
+ b'/run/secrets/podman_compose_test_secret_3:podman_compose_test_secret_3\n'
|
||||
+ b'/run/secrets/unused_params_warning:important-secret-is-important\n'
|
||||
+ b'important-secret-is-important\n'
|
||||
+ b'podman_compose_test_secret\n'
|
||||
)
|
||||
self.assertEqual(expected_output, output)
|
||||
finally:
|
||||
self.run_subprocess_assert_returncode([
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
compose_yaml_path(),
|
||||
"down",
|
||||
"-t",
|
||||
"0",
|
||||
])
|
Reference in New Issue
Block a user