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