コード例 #1
0
class TestConsulDockerRunner(unittest.TestCase):
    """
    Test the docker runner
    """
    @mock.patch('mc.builders.Client')
    def setUp(self, mocked):
        instance = mocked.return_value
        instance.create_container.return_value = {'Id': 'mocked'}
        instance.port.return_value = [{
            'HostIp': '127.0.0.1',
            'HostPort': 1234
        }]
        instance.containers.return_value = [{
            u'Command':
            u'/entrypoint.sh redis-server',
            u'Created':
            1443632967,
            u'Id':
            u'mocked',
            u'Image':
            u'redis',
            u'Labels': {},
            u'Names': [u'/livetest-redis-tLJpZ'],
            u'Ports': [{
                u'PrivatePort': 6379,
                u'Type': u'tcp'
            }],
            u'Status':
            u'Up About a minute'
        }]
        self.instance = instance
        self.builder = ConsulDockerRunner(network_mode="host")

    def test_ready(self):
        """
        Tests the health check of the service and makes sure it is ready
        """
        with HTTMock(response_404):
            self.assertTrue(self.builder.ready)

    def test_not_ready(self):
        """
        Tests the health check of the service and makes sure it is not ready
        """
        with HTTMock(response_500):
            self.assertFalse(self.builder.ready)

    @mock.patch('mc.builders.ConsulDockerRunner.service_provisioner')
    def test_can_provision(self, mocked_consul_runner):
        """
        Tests that there is a method that allows provisioning
        """
        self.builder.provision(services=['adsaws'])

        mocked_consul_runner.assert_has_calls([
            mock.call(services=['adsaws'],
                      container=self.builder,
                      requirements=None),
            mock.call()()
        ])
コード例 #2
0
class TestConsulDockerRunner(unittest.TestCase):
    """
    Test the docker runner
    """

    @mock.patch('mc.builders.Client')
    def setUp(self, mocked):
        instance = mocked.return_value
        instance.create_container.return_value = {'Id': 'mocked'}
        instance.port.return_value = [{'HostIp': '127.0.0.1', 'HostPort': 1234}]
        instance.containers.return_value = [
            {
                u'Command': u'/entrypoint.sh redis-server',
                u'Created': 1443632967,
                u'Id': u'mocked',
                u'Image': u'redis',
                u'Labels': {},
                u'Names': [u'/livetest-redis-tLJpZ'],
                u'Ports': [{u'PrivatePort': 6379, u'Type': u'tcp'}],
                u'Status': u'Up About a minute'
            }
        ]
        self.instance = instance
        self.builder = ConsulDockerRunner(network_mode="host")

    def test_ready(self):
        """
        Tests the health check of the service and makes sure it is ready
        """
        with HTTMock(response_404):
            self.assertTrue(self.builder.ready)

    def test_not_ready(self):
        """
        Tests the health check of the service and makes sure it is not ready
        """
        with HTTMock(response_500):
            self.assertFalse(self.builder.ready)

    @mock.patch('mc.builders.ConsulDockerRunner.service_provisioner')
    def test_can_provision(self, mocked_consul_runner):
        """
        Tests that there is a method that allows provisioning
        """
        self.builder.provision(services=['adsaws'])

        mocked_consul_runner.assert_has_calls([
            mock.call(services=['adsaws'], container=self.builder, requirements=None),
            mock.call()()
        ])