summaryrefslogtreecommitdiff
path: root/test/test_dockerpy/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_dockerpy/common.py')
-rw-r--r--test/test_dockerpy/common.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/test/test_dockerpy/common.py b/test/test_dockerpy/common.py
new file mode 100644
index 000000000..975b13dc6
--- /dev/null
+++ b/test/test_dockerpy/common.py
@@ -0,0 +1,85 @@
+import docker
+import subprocess
+import os
+import sys
+import time
+from docker import Client
+from . import constant
+
+alpineDict = {
+ "name": "docker.io/library/alpine:latest",
+ "shortName": "alpine",
+ "tarballName": "alpine.tar"}
+
+def get_client():
+ client = docker.Client(base_url="http://localhost:8080",timeout=15)
+ return client
+
+client = get_client()
+
+def podman():
+ binary = os.getenv("PODMAN_BINARY")
+ if binary is None:
+ binary = "bin/podman"
+ return binary
+
+def restore_image_from_cache(TestClass):
+ alpineImage = os.path.join(constant.ImageCacheDir , alpineDict["tarballName"])
+ if not os.path.exists(alpineImage):
+ os.makedirs(constant.ImageCacheDir)
+ client.pull(constant.ALPINE)
+ response = client.get_image(constant.ALPINE)
+ image_tar = open(alpineImage,mode="wb")
+ image_tar.write(response.data)
+ image_tar.close()
+ else :
+ TestClass.podman = subprocess.run(
+ [
+ podman(), "load", "-i", alpineImage
+ ],
+ shell=False,
+ stdin=subprocess.DEVNULL,
+ stdout=subprocess.DEVNULL,
+ stderr=subprocess.DEVNULL,
+ )
+
+def run_top_container():
+ c = client.create_container(image=constant.ALPINE,command='/bin/sleep 5',name=constant.TOP)
+ client.start(container=c.get("Id"))
+ return c.get("Id")
+
+def enable_sock(TestClass):
+ TestClass.podman = subprocess.Popen(
+ [
+ podman(), "system", "service", "tcp:localhost:8080",
+ "--log-level=debug", "--time=0"
+ ],
+ shell=False,
+ stdin=subprocess.DEVNULL,
+ stdout=subprocess.DEVNULL,
+ stderr=subprocess.DEVNULL,
+ )
+ time.sleep(2)
+
+def terminate_connection(TestClass):
+ TestClass.podman.terminate()
+ stdout, stderr = TestClass.podman.communicate(timeout=0.5)
+ if stdout:
+ print("\nService Stdout:\n" + stdout.decode('utf-8'))
+ if stderr:
+ print("\nService Stderr:\n" + stderr.decode('utf-8'))
+
+ if TestClass.podman.returncode > 0:
+ sys.stderr.write("podman exited with error code {}\n".format(
+ TestClass.podman.returncode))
+ sys.exit(2)
+
+def remove_all_containers():
+ containers = client.containers(quiet=True)
+ for c in containers:
+ client.remove_container(container=c.get("Id"), force=True)
+
+def remove_all_images():
+ allImages = client.images()
+ for image in allImages:
+ client.remove_image(image,force=True)