import os from test.podman_testcase import PodmanTestCase import podman from podman import FoldedString pod = None class TestPodsCtnrs(PodmanTestCase): @classmethod def setUpClass(cls): # Populate storage super().setUpClass() @classmethod def tearDownClass(cls): super().tearDownClass() def setUp(self): self.tmpdir = os.environ['TMPDIR'] self.host = os.environ['PODMAN_HOST'] self.pclient = podman.Client(self.host) def test_010_populate(self): global pod pod = self.pclient.pods.create('pod1') self.assertEqual('pod1', pod.name) img = self.pclient.images.get('docker.io/library/alpine:latest') ctnr = img.container(pod=pod.id) pod.refresh() self.assertEqual('1', pod.numberofcontainers) self.assertEqual(ctnr.id, pod.containersinfo[0]['id']) def test_015_one_shot(self): global pod details = pod.inspect() state = FoldedString(details.containers[0]['state']) self.assertEqual(state, 'configured') pod = pod.start() status = FoldedString(pod.containersinfo[0]['status']) # Race on whether container is still running or finished self.assertIn(status, ('stopped', 'exited', 'running')) pod = pod.restart() status = FoldedString(pod.containersinfo[0]['status']) self.assertIn(status, ('stopped', 'exited', 'running')) # Pod kill is broken, so use stop for now killed = pod.stop() self.assertEqual(pod, killed) def test_999_remove(self): global pod ident = pod.remove(force=True) self.assertEqual(ident, pod.id) with self.assertRaises(StopIteration): next(self.pclient.pods.list())