mirror of https://github.com/docker/compose.git
Create real Project objects in CLI unit tests
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
parent
4644f2c0f9
commit
20caf02bf6
|
@ -10,13 +10,14 @@ import pytest
|
||||||
|
|
||||||
from .. import mock
|
from .. import mock
|
||||||
from .. import unittest
|
from .. import unittest
|
||||||
|
from ..helpers import build_config
|
||||||
from compose.cli.command import get_project
|
from compose.cli.command import get_project
|
||||||
from compose.cli.command import get_project_name
|
from compose.cli.command import get_project_name
|
||||||
from compose.cli.docopt_command import NoSuchCommand
|
from compose.cli.docopt_command import NoSuchCommand
|
||||||
from compose.cli.errors import UserError
|
from compose.cli.errors import UserError
|
||||||
from compose.cli.main import TopLevelCommand
|
from compose.cli.main import TopLevelCommand
|
||||||
from compose.const import IS_WINDOWS_PLATFORM
|
from compose.const import IS_WINDOWS_PLATFORM
|
||||||
from compose.service import Service
|
from compose.project import Project
|
||||||
|
|
||||||
|
|
||||||
class CLITestCase(unittest.TestCase):
|
class CLITestCase(unittest.TestCase):
|
||||||
|
@ -84,18 +85,19 @@ class CLITestCase(unittest.TestCase):
|
||||||
def test_run_interactive_passes_logs_false(self, mock_pseudo_terminal, mock_run_operation):
|
def test_run_interactive_passes_logs_false(self, mock_pseudo_terminal, mock_run_operation):
|
||||||
command = TopLevelCommand()
|
command = TopLevelCommand()
|
||||||
mock_client = mock.create_autospec(docker.Client)
|
mock_client = mock.create_autospec(docker.Client)
|
||||||
mock_project = mock.Mock(client=mock_client)
|
project = Project.from_config(
|
||||||
mock_project.get_service.return_value = Service(
|
name='composetest',
|
||||||
'service',
|
|
||||||
client=mock_client,
|
client=mock_client,
|
||||||
environment=['FOO=ONE', 'BAR=TWO'],
|
config_data=build_config({
|
||||||
image='someimage')
|
'service': {'image': 'busybox'}
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
|
||||||
with pytest.raises(SystemExit):
|
with pytest.raises(SystemExit):
|
||||||
command.run(mock_project, {
|
command.run(project, {
|
||||||
'SERVICE': 'service',
|
'SERVICE': 'service',
|
||||||
'COMMAND': None,
|
'COMMAND': None,
|
||||||
'-e': ['BAR=NEW', 'OTHER=bär'.encode('utf-8')],
|
'-e': [],
|
||||||
'--user': None,
|
'--user': None,
|
||||||
'--no-deps': None,
|
'--no-deps': None,
|
||||||
'-d': False,
|
'-d': False,
|
||||||
|
@ -111,15 +113,21 @@ class CLITestCase(unittest.TestCase):
|
||||||
assert call_kwargs['logs'] is False
|
assert call_kwargs['logs'] is False
|
||||||
|
|
||||||
def test_run_service_with_restart_always(self):
|
def test_run_service_with_restart_always(self):
|
||||||
command = TopLevelCommand()
|
|
||||||
mock_client = mock.create_autospec(docker.Client)
|
mock_client = mock.create_autospec(docker.Client)
|
||||||
mock_project = mock.Mock(client=mock_client)
|
|
||||||
mock_project.get_service.return_value = Service(
|
project = Project.from_config(
|
||||||
'service',
|
name='composetest',
|
||||||
client=mock_client,
|
client=mock_client,
|
||||||
restart={'Name': 'always', 'MaximumRetryCount': 0},
|
config_data=build_config({
|
||||||
image='someimage')
|
'service': {
|
||||||
command.run(mock_project, {
|
'image': 'busybox',
|
||||||
|
'restart': 'always',
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
|
||||||
|
command = TopLevelCommand()
|
||||||
|
command.run(project, {
|
||||||
'SERVICE': 'service',
|
'SERVICE': 'service',
|
||||||
'COMMAND': None,
|
'COMMAND': None,
|
||||||
'-e': [],
|
'-e': [],
|
||||||
|
@ -140,14 +148,7 @@ class CLITestCase(unittest.TestCase):
|
||||||
)
|
)
|
||||||
|
|
||||||
command = TopLevelCommand()
|
command = TopLevelCommand()
|
||||||
mock_client = mock.create_autospec(docker.Client)
|
command.run(project, {
|
||||||
mock_project = mock.Mock(client=mock_client)
|
|
||||||
mock_project.get_service.return_value = Service(
|
|
||||||
'service',
|
|
||||||
client=mock_client,
|
|
||||||
restart='always',
|
|
||||||
image='someimage')
|
|
||||||
command.run(mock_project, {
|
|
||||||
'SERVICE': 'service',
|
'SERVICE': 'service',
|
||||||
'COMMAND': None,
|
'COMMAND': None,
|
||||||
'-e': [],
|
'-e': [],
|
||||||
|
@ -168,17 +169,16 @@ class CLITestCase(unittest.TestCase):
|
||||||
|
|
||||||
def test_command_manula_and_service_ports_together(self):
|
def test_command_manula_and_service_ports_together(self):
|
||||||
command = TopLevelCommand()
|
command = TopLevelCommand()
|
||||||
mock_client = mock.create_autospec(docker.Client)
|
project = Project.from_config(
|
||||||
mock_project = mock.Mock(client=mock_client)
|
name='composetest',
|
||||||
mock_project.get_service.return_value = Service(
|
client=None,
|
||||||
'service',
|
config_data=build_config({
|
||||||
client=mock_client,
|
'service': {'image': 'busybox'},
|
||||||
restart='always',
|
}),
|
||||||
image='someimage',
|
|
||||||
)
|
)
|
||||||
|
|
||||||
with self.assertRaises(UserError):
|
with self.assertRaises(UserError):
|
||||||
command.run(mock_project, {
|
command.run(project, {
|
||||||
'SERVICE': 'service',
|
'SERVICE': 'service',
|
||||||
'COMMAND': None,
|
'COMMAND': None,
|
||||||
'-e': [],
|
'-e': [],
|
||||||
|
|
Loading…
Reference in New Issue