compose/tests/integration/environment_test.py

53 lines
1.5 KiB
Python
Raw Normal View History

from __future__ import absolute_import
from __future__ import unicode_literals
import tempfile
from ddt import data
from ddt import ddt
from .. import mock
from compose.cli.command import project_from_options
from tests.integration.testcases import DockerClientTestCase
@ddt
class EnvironmentTest(DockerClientTestCase):
@classmethod
def setUpClass(cls):
super(EnvironmentTest, cls).setUpClass()
cls.compose_file = tempfile.NamedTemporaryFile(mode='w+b')
cls.compose_file.write(bytes("""version: '3.2'
services:
svc:
image: busybox:latest
environment:
TEST_VARIABLE: ${TEST_VARIABLE}""", encoding='utf-8'))
cls.compose_file.flush()
@classmethod
def tearDownClass(cls):
super(EnvironmentTest, cls).tearDownClass()
cls.compose_file.close()
@data('events',
'exec',
'kill',
'logs',
'pause',
'ps',
'restart',
'rm',
'start',
'stop',
'top',
'unpause')
def _test_no_warning_on_missing_host_environment_var_on_silent_commands(self, cmd):
options = {'COMMAND': cmd, '--file': [EnvironmentTest.compose_file.name]}
with mock.patch('compose.config.environment.log') as fake_log:
# Note that the warning silencing and the env variables check is
# done in `project_from_options`
# So no need to have a proper options map, the `COMMAND` key is enough
project_from_options('.', options)
assert fake_log.warn.call_count == 0