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"])