Merge pull request #2726 from aanand/no-logs-on-interactive-run

Pass logs=False to dockerpty
This commit is contained in:
Aanand Prasad 2016-01-22 11:37:58 +00:00
commit 49c83b16c2
2 changed files with 37 additions and 1 deletions

View File

@ -709,7 +709,12 @@ def run_one_off_container(container_options, project, service, options):
signals.set_signal_handler_to_shutdown()
try:
try:
pty = PseudoTerminal(project.client, container.id, interactive=not options['-T'])
pty = PseudoTerminal(
project.client,
container.id,
interactive=not options['-T'],
logs=False,
)
sockets = pty.sockets()
service.start_container(container)
pty.start(sockets)

View File

@ -71,6 +71,37 @@ class CLITestCase(unittest.TestCase):
with self.assertRaises(NoSuchCommand):
TopLevelCommand().dispatch(['help', 'nonexistent'], None)
@pytest.mark.xfail(IS_WINDOWS_PLATFORM, reason="requires dockerpty")
@mock.patch('compose.cli.main.PseudoTerminal', autospec=True)
def test_run_interactive_passes_logs_false(self, mock_pseudo_terminal):
command = TopLevelCommand()
mock_client = mock.create_autospec(docker.Client)
mock_project = mock.Mock(client=mock_client)
mock_project.get_service.return_value = Service(
'service',
client=mock_client,
environment=['FOO=ONE', 'BAR=TWO'],
image='someimage')
with pytest.raises(SystemExit):
command.run(mock_project, {
'SERVICE': 'service',
'COMMAND': None,
'-e': ['BAR=NEW', 'OTHER=bär'.encode('utf-8')],
'--user': None,
'--no-deps': None,
'-d': False,
'-T': None,
'--entrypoint': None,
'--service-ports': None,
'--publish': [],
'--rm': None,
'--name': None,
})
_, _, call_kwargs = mock_pseudo_terminal.mock_calls[0]
assert call_kwargs['logs'] is False
@pytest.mark.xfail(IS_WINDOWS_PLATFORM, reason="requires dockerpty")
@mock.patch('compose.cli.main.PseudoTerminal', autospec=True)
def test_run_with_environment_merged_with_options_list(self, mock_pseudo_terminal):