| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 | from __future__ import absolute_importfrom __future__ import unicode_literalsimport osimport dockerimport pytestfrom compose.cli.docker_client import docker_clientfrom compose.cli.docker_client import tls_config_from_optionsfrom tests import mockfrom tests import unittestclass DockerClientTestCase(unittest.TestCase):    def test_docker_client_no_home(self):        with mock.patch.dict(os.environ):            del os.environ['HOME']            docker_client(os.environ)    def test_docker_client_with_custom_timeout(self):        timeout = 300        with mock.patch('compose.cli.docker_client.HTTP_TIMEOUT', 300):            client = docker_client(os.environ)            self.assertEqual(client.timeout, int(timeout))class TLSConfigTestCase(unittest.TestCase):    ca_cert = 'tests/fixtures/tls/ca.pem'    client_cert = 'tests/fixtures/tls/cert.pem'    key = 'tests/fixtures/tls/key.key'    def test_simple_tls(self):        options = {'--tls': True}        result = tls_config_from_options(options)        assert result is True    def test_tls_ca_cert(self):        options = {            '--tlscacert': self.ca_cert, '--tlsverify': True        }        result = tls_config_from_options(options)        assert isinstance(result, docker.tls.TLSConfig)        assert result.ca_cert == options['--tlscacert']        assert result.verify is True    def test_tls_ca_cert_explicit(self):        options = {            '--tlscacert': self.ca_cert, '--tls': True,            '--tlsverify': True        }        result = tls_config_from_options(options)        assert isinstance(result, docker.tls.TLSConfig)        assert result.ca_cert == options['--tlscacert']        assert result.verify is True    def test_tls_client_cert(self):        options = {            '--tlscert': self.client_cert, '--tlskey': self.key        }        result = tls_config_from_options(options)        assert isinstance(result, docker.tls.TLSConfig)        assert result.cert == (options['--tlscert'], options['--tlskey'])    def test_tls_client_cert_explicit(self):        options = {            '--tlscert': self.client_cert, '--tlskey': self.key,            '--tls': True        }        result = tls_config_from_options(options)        assert isinstance(result, docker.tls.TLSConfig)        assert result.cert == (options['--tlscert'], options['--tlskey'])    def test_tls_client_and_ca(self):        options = {            '--tlscert': self.client_cert, '--tlskey': self.key,            '--tlsverify': True, '--tlscacert': self.ca_cert        }        result = tls_config_from_options(options)        assert isinstance(result, docker.tls.TLSConfig)        assert result.cert == (options['--tlscert'], options['--tlskey'])        assert result.ca_cert == options['--tlscacert']        assert result.verify is True    def test_tls_client_and_ca_explicit(self):        options = {            '--tlscert': self.client_cert, '--tlskey': self.key,            '--tlsverify': True, '--tlscacert': self.ca_cert,            '--tls': True        }        result = tls_config_from_options(options)        assert isinstance(result, docker.tls.TLSConfig)        assert result.cert == (options['--tlscert'], options['--tlskey'])        assert result.ca_cert == options['--tlscacert']        assert result.verify is True    def test_tls_client_missing_key(self):        options = {'--tlscert': self.client_cert}        with pytest.raises(docker.errors.TLSParameterError):            tls_config_from_options(options)        options = {'--tlskey': self.key}        with pytest.raises(docker.errors.TLSParameterError):            tls_config_from_options(options)
 |