summaryrefslogtreecommitdiff
path: root/test/dockerpy/images.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/dockerpy/images.py')
-rw-r--r--test/dockerpy/images.py131
1 files changed, 131 insertions, 0 deletions
diff --git a/test/dockerpy/images.py b/test/dockerpy/images.py
new file mode 100644
index 000000000..07ea6c0f8
--- /dev/null
+++ b/test/dockerpy/images.py
@@ -0,0 +1,131 @@
+
+import unittest
+import docker
+import requests
+import os
+from docker import Client
+from . import constant
+from . import common
+
+client = common.get_client()
+
+class TestImages(unittest.TestCase):
+
+ def setUp(self):
+ super().setUp()
+ client.pull(constant.ALPINE)
+
+ def tearDown(self):
+ allImages = client.images()
+ for image in allImages:
+ client.remove_image(image,force=True)
+ return super().tearDown()
+
+# Inspect Image
+
+
+ def test_inspect_image(self):
+ # Check for error with wrong image name
+ with self.assertRaises(requests.HTTPError):
+ client.inspect_image("dummy")
+ alpine_image = client.inspect_image(constant.ALPINE)
+ self.assertIn(constant.ALPINE, alpine_image["RepoTags"])
+
+# Tag Image
+
+ # Validates if invalid image name is given a bad response is encountered.
+ def test_tag_invalid_image(self):
+ with self.assertRaises(requests.HTTPError):
+ client.tag("dummy","demo")
+
+
+
+ # Validates if the image is tagged successfully.
+ def test_tag_valid_image(self):
+ client.tag(constant.ALPINE,"demo",constant.ALPINE_SHORTNAME)
+ alpine_image = client.inspect_image(constant.ALPINE)
+ for x in alpine_image["RepoTags"]:
+ if("demo:alpine" in x):
+ self.assertTrue
+ self.assertFalse
+
+ # Validates if name updates when the image is retagged.
+ @unittest.skip("dosent work now")
+ def test_retag_valid_image(self):
+ client.tag(constant.ALPINE_SHORTNAME, "demo","rename")
+ alpine_image = client.inspect_image(constant.ALPINE)
+ self.assertNotIn("demo:test", alpine_image["RepoTags"])
+
+# List Image
+ # List All Images
+ def test_list_images(self):
+ allImages = client.images()
+ self.assertEqual(len(allImages), 1)
+ # Add more images
+ client.pull(constant.BB)
+ client.pull(constant.NGINX)
+ allImages = client.images()
+ self.assertEqual(len(allImages) , 3)
+
+
+ # List images with filter
+ filters = {'reference':'alpine'}
+ allImages = client.images(filters = filters)
+ self.assertEqual(len(allImages) , 1)
+
+# Search Image
+ def test_search_image(self):
+ response = client.search("alpine")
+ for i in response:
+ # Alpine found
+ if "docker.io/library/alpine" in i["Name"]:
+ self.assertTrue(True, msg="Image found")
+ self.assertFalse(False,msg="Image not found")
+
+# Image Exist (No docker-py support yet)
+
+# Remove Image
+ def test_remove_image(self):
+ # Check for error with wrong image name
+ with self.assertRaises(requests.HTTPError):
+ client.remove_image("dummy")
+ allImages = client.images()
+ self.assertEqual(len(allImages) , 1)
+ alpine_image = client.inspect_image(constant.ALPINE)
+ client.remove_image(alpine_image)
+ allImages = client.images()
+ self.assertEqual(len(allImages) , 0)
+
+# Image History
+ def test_image_history(self):
+ # Check for error with wrong image name
+ with self.assertRaises(requests.HTTPError):
+ client.remove_image("dummy")
+ imageHistory = client.history(constant.ALPINE)
+ alpine_image = client.inspect_image(constant.ALPINE)
+ for h in imageHistory:
+ if h["Id"] in alpine_image["Id"]:
+ self.assertTrue(True,msg="Image History validated")
+ self.assertFalse(False,msg="Unable to get image history")
+
+# Prune Image (No docker-py support yet)
+
+# Export Image
+
+ def test_export_image(self):
+ file = "/tmp/alpine-latest.tar"
+ # Check for error with wrong image name
+ with self.assertRaises(requests.HTTPError):
+ client.get_image("dummy")
+ response = client.get_image(constant.ALPINE)
+ image_tar = open(file,mode="wb")
+ image_tar.write(response.data)
+ image_tar.close()
+ os.stat(file)
+
+# Import|Load Image
+
+
+if __name__ == '__main__':
+ # Setup temporary space
+ unittest.main()