105 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
# SPDX-License-Identifier: GPL-2.0
 | 
						|
 | 
						|
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
 | 
						|
 | 
						|
 | 
						|
def compose_yaml_path():
 | 
						|
    return os.path.join(os.path.join(test_path(), "extends"), "docker-compose.yaml")
 | 
						|
 | 
						|
 | 
						|
class TestComposeExteds(unittest.TestCase, RunSubprocessMixin):
 | 
						|
    def test_extends_service_launch_echo(self):
 | 
						|
        try:
 | 
						|
            self.run_subprocess_assert_returncode([
 | 
						|
                podman_compose_path(),
 | 
						|
                "-f",
 | 
						|
                compose_yaml_path(),
 | 
						|
                "up",
 | 
						|
                "echo",
 | 
						|
            ])
 | 
						|
            output, _ = self.run_subprocess_assert_returncode([
 | 
						|
                podman_compose_path(),
 | 
						|
                "-f",
 | 
						|
                compose_yaml_path(),
 | 
						|
                "logs",
 | 
						|
                "echo",
 | 
						|
            ])
 | 
						|
            self.assertEqual(output, b"Zero\n")
 | 
						|
        finally:
 | 
						|
            self.run_subprocess_assert_returncode([
 | 
						|
                podman_compose_path(),
 | 
						|
                "-f",
 | 
						|
                compose_yaml_path(),
 | 
						|
                "down",
 | 
						|
            ])
 | 
						|
 | 
						|
    def test_extends_service_launch_echo1(self):
 | 
						|
        try:
 | 
						|
            self.run_subprocess_assert_returncode([
 | 
						|
                podman_compose_path(),
 | 
						|
                "-f",
 | 
						|
                compose_yaml_path(),
 | 
						|
                "up",
 | 
						|
                "echo1",
 | 
						|
            ])
 | 
						|
            output, _ = self.run_subprocess_assert_returncode([
 | 
						|
                podman_compose_path(),
 | 
						|
                "-f",
 | 
						|
                compose_yaml_path(),
 | 
						|
                "logs",
 | 
						|
                "echo1",
 | 
						|
            ])
 | 
						|
            self.assertEqual(output, b"One\n")
 | 
						|
        finally:
 | 
						|
            self.run_subprocess_assert_returncode([
 | 
						|
                podman_compose_path(),
 | 
						|
                "-f",
 | 
						|
                compose_yaml_path(),
 | 
						|
                "down",
 | 
						|
            ])
 | 
						|
 | 
						|
    def test_extends_service_launch_env1(self):
 | 
						|
        try:
 | 
						|
            self.run_subprocess_assert_returncode([
 | 
						|
                podman_compose_path(),
 | 
						|
                "-f",
 | 
						|
                compose_yaml_path(),
 | 
						|
                "up",
 | 
						|
                "env1",
 | 
						|
            ])
 | 
						|
            output, _ = self.run_subprocess_assert_returncode([
 | 
						|
                podman_compose_path(),
 | 
						|
                "-f",
 | 
						|
                compose_yaml_path(),
 | 
						|
                "logs",
 | 
						|
                "env1",
 | 
						|
            ])
 | 
						|
            lines = output.decode('utf-8').split('\n')
 | 
						|
            # HOSTNAME name is random string so is ignored in asserting
 | 
						|
            lines = sorted([line for line in lines if not line.startswith("HOSTNAME")])
 | 
						|
            self.assertEqual(
 | 
						|
                lines,
 | 
						|
                [
 | 
						|
                    '',
 | 
						|
                    'BAR=local',
 | 
						|
                    'BAZ=local',
 | 
						|
                    'FOO=original',
 | 
						|
                    'HOME=/root',
 | 
						|
                    'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
 | 
						|
                    'TERM=xterm',
 | 
						|
                    'container=podman',
 | 
						|
                ],
 | 
						|
            )
 | 
						|
        finally:
 | 
						|
            self.run_subprocess_assert_returncode([
 | 
						|
                podman_compose_path(),
 | 
						|
                "-f",
 | 
						|
                compose_yaml_path(),
 | 
						|
                "down",
 | 
						|
            ])
 |