Exemple #1
0
    def test_wait_fails_on_exit_status_and_already_stopped(self):
        client = Mock()
        client.api_version = '1.21'
        client.wait = Mock(return_value=1)
        get_client_mock = MagicMock(return_value=client)
        dockerng_inspect_container = Mock(side_effect=[{
            'State': {
                'Stopped': True
            }
        }, {
            'State': {
                'Stopped': True
            }
        }])

        with patch.object(dockerng_mod, 'inspect_container',
                          dockerng_inspect_container):
            with patch.object(dockerng_mod, '_get_client', get_client_mock):
                dockerng_mod._clear_context()
                result = dockerng_mod.wait('foo',
                                           ignore_already_stopped=True,
                                           fail_on_exit_status=True)
        self.assertEqual(
            result, {
                'result': False,
                'comment': "Container 'foo' already stopped",
                'exit_status': 1,
                'state': {
                    'new': 'stopped',
                    'old': 'stopped'
                }
            })
Exemple #2
0
    def test_wait_success(self):
        client = Mock()
        client.api_version = '1.21'
        client.wait = Mock(return_value=0)
        get_client_mock = MagicMock(return_value=client)

        dockerng_inspect_container = Mock(side_effect=[{
            'State': {
                'Running': True
            }
        }, {
            'State': {
                'Stopped': True
            }
        }])
        with patch.object(dockerng_mod, 'inspect_container',
                          dockerng_inspect_container):
            with patch.object(dockerng_mod, '_get_client', get_client_mock):
                dockerng_mod._clear_context()
                result = dockerng_mod.wait('foo')
        self.assertEqual(
            result, {
                'result': True,
                'exit_status': 0,
                'state': {
                    'new': 'stopped',
                    'old': 'running'
                }
            })
Exemple #3
0
 def test_wait_fails_on_exit_status(self):
     client = Mock()
     client.api_version = '1.21'
     client.wait = Mock(return_value=1)
     dockerng_inspect_container = Mock(side_effect=[{
         'State': {
             'Running': True
         }
     }, {
         'State': {
             'Stopped': True
         }
     }])
     with patch.object(dockerng_mod, 'inspect_container',
                       dockerng_inspect_container):
         with patch.dict(dockerng_mod.__context__,
                         {'docker.client': client}):
             dockerng_mod._clear_context()
             result = dockerng_mod.wait('foo', fail_on_exit_status=True)
     self.assertEqual(
         result, {
             'result': False,
             'exit_status': 1,
             'state': {
                 'new': 'stopped',
                 'old': 'running'
             }
         })
Exemple #4
0
 def test_wait_success_already_stopped(self):
     client = Mock()
     client.api_version = '1.21'
     client.wait = Mock(return_value=0)
     dockerng_inspect_container = Mock(side_effect=[
         {
             'State': {
                 'Stopped': True
             }
         },
         {
             'State': {
                 'Stopped': True
             }
         },
     ])
     with patch.object(dockerng_mod, 'inspect_container',
                       dockerng_inspect_container):
         with patch.dict(dockerng_mod.__context__,
                         {'docker.client': client}):
             dockerng_mod._clear_context()
             result = dockerng_mod.wait('foo', ignore_already_stopped=True)
     self.assertEqual(
         result, {
             'result': True,
             'comment': "Container 'foo' already stopped",
             'exit_status': 0,
             'state': {
                 'new': 'stopped',
                 'old': 'stopped'
             }
         })
Exemple #5
0
 def test_wait_success_absent_container(self):
     client = Mock()
     client.api_version = '1.21'
     dockerng_inspect_container = Mock(side_effect=CommandExecutionError)
     with patch.object(dockerng_mod, 'inspect_container',
                       dockerng_inspect_container):
         with patch.dict(dockerng_mod.__context__,
                         {'docker.client': client}):
             dockerng_mod._clear_context()
             result = dockerng_mod.wait('foo', ignore_already_stopped=True)
     self.assertEqual(result, {'result': True,
                               'comment': "Container 'foo' absent"})
Exemple #6
0
 def test_wait_success_absent_container(self):
     client = Mock()
     client.api_version = '1.21'
     dockerng_inspect_container = Mock(side_effect=CommandExecutionError)
     with patch.object(dockerng_mod, 'inspect_container',
                       dockerng_inspect_container):
         with patch.dict(dockerng_mod.__context__,
                         {'docker.client': client}):
             dockerng_mod._clear_context()
             result = dockerng_mod.wait('foo', ignore_already_stopped=True)
     self.assertEqual(result, {'result': True,
                               'comment': "Container 'foo' absent"})
Exemple #7
0
 def test_wait_fails_on_exit_status(self):
     client = Mock()
     client.api_version = '1.21'
     client.wait = Mock(return_value=1)
     dockerng_inspect_container = Mock(side_effect=[
         {'State': {'Running': True}},
         {'State': {'Stopped': True}}])
     with patch.object(dockerng_mod, 'inspect_container',
                       dockerng_inspect_container):
         with patch.dict(dockerng_mod.__context__,
                         {'docker.client': client}):
             dockerng_mod._clear_context()
             result = dockerng_mod.wait('foo', fail_on_exit_status=True)
     self.assertEqual(result, {'result': False,
                               'exit_status': 1,
                               'state': {'new': 'stopped',
                                         'old': 'running'}})
Exemple #8
0
 def test_wait_success_already_stopped(self):
     client = Mock()
     client.api_version = '1.21'
     client.wait = Mock(return_value=0)
     dockerng_inspect_container = Mock(side_effect=[
         {'State': {'Stopped': True}},
         {'State': {'Stopped': True}},
     ])
     with patch.object(dockerng_mod, 'inspect_container',
                       dockerng_inspect_container):
         with patch.dict(dockerng_mod.__context__,
                         {'docker.client': client}):
             dockerng_mod._clear_context()
             result = dockerng_mod.wait('foo', ignore_already_stopped=True)
     self.assertEqual(result, {'result': True,
                               'comment': "Container 'foo' already stopped",
                               'exit_status': 0,
                               'state': {'new': 'stopped',
                                         'old': 'stopped'}})