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