import unittest import docker import pytest from docker.constants import DEFAULT_UNIX_SOCKET from docker.constants import DEFAULT_NPIPE from docker.constants import IS_WINDOWS_PLATFORM from docker.context import ContextAPI, Context class BaseContextTest(unittest.TestCase): @pytest.mark.skipif( IS_WINDOWS_PLATFORM, reason='Linux specific path check' ) def test_url_compatibility_on_linux(self): c = Context("test") assert c.Host == DEFAULT_UNIX_SOCKET.strip("http+") @pytest.mark.skipif( not IS_WINDOWS_PLATFORM, reason='Windows specific path check' ) def test_url_compatibility_on_windows(self): c = Context("test") assert c.Host == DEFAULT_NPIPE def test_fail_on_default_context_create(self): with pytest.raises(docker.errors.ContextException): ContextAPI.create_context("default") def test_default_in_context_list(self): found = False ctx = ContextAPI.contexts() for c in ctx: if c.Name == "default": found = True assert found is True def test_get_current_context(self): assert ContextAPI.get_current_context().Name == "default" def test_https_host(self): c = Context("test", host="tcp://testdomain:8080", tls=True) assert c.Host == "https://testdomain:8080" def test_context_inspect_without_params(self): ctx = ContextAPI.inspect_context() assert ctx["Name"] == "default" assert ctx["Metadata"]["StackOrchestrator"] == "swarm" assert ctx["Endpoints"]["docker"]["Host"] in [ DEFAULT_NPIPE, DEFAULT_UNIX_SOCKET.strip("http+")]