github.com/AbhinandanKurakure/podman/v3@v3.4.10/test/python/docker/compat/test_system.py (about) 1 import subprocess 2 import sys 3 import time 4 import unittest 5 6 from docker import DockerClient 7 8 from test.python.docker import Podman, constant 9 from test.python.docker.compat import common 10 11 12 class TestSystem(unittest.TestCase): 13 podman = None # initialized podman configuration for tests 14 service = None # podman service instance 15 topContainerId = "" 16 17 def setUp(self): 18 super().setUp() 19 self.client = DockerClient(base_url="tcp://127.0.0.1:8080", timeout=15) 20 21 TestSystem.podman.restore_image_from_cache(self.client) 22 TestSystem.topContainerId = common.run_top_container(self.client) 23 24 def tearDown(self): 25 common.remove_all_containers(self.client) 26 common.remove_all_images(self.client) 27 self.client.close() 28 return super().tearDown() 29 30 @classmethod 31 def setUpClass(cls): 32 super().setUpClass() 33 TestSystem.podman = Podman() 34 TestSystem.service = TestSystem.podman.open( 35 "system", "service", "tcp:127.0.0.1:8080", "--time=0" 36 ) 37 # give the service some time to be ready... 38 time.sleep(2) 39 40 returncode = TestSystem.service.poll() 41 if returncode is not None: 42 raise subprocess.CalledProcessError(returncode, "podman system service") 43 44 @classmethod 45 def tearDownClass(cls): 46 TestSystem.service.terminate() 47 stdout, stderr = TestSystem.service.communicate(timeout=0.5) 48 if stdout: 49 sys.stdout.write("\nImages Service Stdout:\n" + stdout.decode("utf-8")) 50 if stderr: 51 sys.stderr.write("\nImAges Service Stderr:\n" + stderr.decode("utf-8")) 52 53 TestSystem.podman.tear_down() 54 return super().tearDownClass() 55 56 def test_Info(self): 57 self.assertIsNotNone(self.client.info()) 58 59 def test_info_container_details(self): 60 info = self.client.info() 61 self.assertEqual(info["Containers"], 1) 62 self.client.containers.create(image=constant.ALPINE) 63 info = self.client.info() 64 self.assertEqual(info["Containers"], 2) 65 66 def test_version(self): 67 version = self.client.version() 68 self.assertIsNotNone(version["Platform"]["Name"])