summaryrefslogtreecommitdiff
path: root/tests/unit/context_test.py
diff options
context:
space:
mode:
authorMilas Bowman <milas.bowman@docker.com>2022-08-12 09:19:47 -0400
committerMilas Bowman <milas.bowman@docker.com>2022-08-12 09:21:51 -0400
commitc03aeb659e2ac996aa69927e928b73d2979b9fce (patch)
treefe885ca150c72bfb2f2be760333d459df61c708f /tests/unit/context_test.py
parent656db96b4a8b0db28d4b19ca60c95036c995175b (diff)
parent58aa62bb154a2ccea433cf475aefbd695fb5abc8 (diff)
downloaddocker-py-c03aeb659e2ac996aa69927e928b73d2979b9fce.tar.gz
Merge remote-tracking branch 'upstream/main' into connect-with-mac
Diffstat (limited to 'tests/unit/context_test.py')
-rw-r--r--tests/unit/context_test.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/unit/context_test.py b/tests/unit/context_test.py
new file mode 100644
index 0000000..6d6d672
--- /dev/null
+++ b/tests/unit/context_test.py
@@ -0,0 +1,49 @@
+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+")]