diff options
Diffstat (limited to 'contrib/python/podman/test/podman_testcase.py')
-rw-r--r-- | contrib/python/podman/test/podman_testcase.py | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/contrib/python/podman/test/podman_testcase.py b/contrib/python/podman/test/podman_testcase.py deleted file mode 100644 index da73c1024..000000000 --- a/contrib/python/podman/test/podman_testcase.py +++ /dev/null @@ -1,112 +0,0 @@ -"""Base for podman tests.""" -import contextlib -import functools -import itertools -import os -import subprocess -import time -import unittest - -from varlink import VarlinkError - -MethodNotImplemented = 'org.varlink.service.MethodNotImplemented' - - -class PodmanTestCase(unittest.TestCase): - """Hide the sausage making of initializing storage.""" - - @classmethod - def setUpClass(cls): - """Fixture to setup podman test case.""" - if hasattr(PodmanTestCase, 'alpine_process'): - PodmanTestCase.tearDownClass() - - def run_cmd(*args): - cmd = list(itertools.chain(*args)) - try: - pid = subprocess.Popen( - cmd, - close_fds=True, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - out, err = pid.communicate() - except OSError as e: - print('{}: {}({})'.format(cmd, e.strerror, e.returncode)) - except ValueError as e: - print('{}: {}'.format(cmd, e.message)) - raise - else: - return out.strip() - - tmpdir = os.environ.get('TMPDIR', '/tmp') - podman_args = [ - '--storage-driver=vfs', - '--cgroup-manager=cgroupfs', - '--root={}/crio'.format(tmpdir), - '--runroot={}/crio-run'.format(tmpdir), - '--cni-config-dir={}/cni/net.d'.format(tmpdir), - ] - - run_podman = functools.partial(run_cmd, ['podman'], podman_args) - - id = run_podman(['pull', 'alpine']) - setattr(PodmanTestCase, 'alpine_id', id) - - run_podman(['pull', 'busybox']) - run_podman(['images']) - - run_cmd(['rm', '-f', '{}/alpine_gold.tar'.format(tmpdir)]) - run_podman([ - 'save', '--output', '{}/alpine_gold.tar'.format(tmpdir), 'alpine' - ]) - - PodmanTestCase.alpine_log = open( - os.path.join('/tmp/', 'alpine.log'), 'w') - - cmd = ['podman'] - cmd.extend(podman_args) - # cmd.extend(['run', '-d', 'alpine', 'sleep', '500']) - cmd.extend(['run', '-dt', 'alpine', '/bin/sh']) - PodmanTestCase.alpine_process = subprocess.Popen( - cmd, - stdout=PodmanTestCase.alpine_log, - stderr=subprocess.STDOUT, - ) - - PodmanTestCase.busybox_log = open( - os.path.join('/tmp/', 'busybox.log'), 'w') - - cmd = ['podman'] - cmd.extend(podman_args) - cmd.extend(['create', 'busybox']) - PodmanTestCase.busybox_process = subprocess.Popen( - cmd, - stdout=PodmanTestCase.busybox_log, - stderr=subprocess.STDOUT, - ) - # give podman time to start ctnr - time.sleep(2) - - # Close our handle of file - PodmanTestCase.alpine_log.close() - PodmanTestCase.busybox_log.close() - - @classmethod - def tearDownClass(cls): - """Fixture to clean up after podman unittest.""" - try: - PodmanTestCase.alpine_process.kill() - assert 0 == PodmanTestCase.alpine_process.wait(500) - delattr(PodmanTestCase, 'alpine_process') - - PodmanTestCase.busybox_process.kill() - assert 0 == PodmanTestCase.busybox_process.wait(500) - except Exception as e: - print('Exception: {}'.format(e)) - raise - - @contextlib.contextmanager - def assertRaisesNotImplemented(self): - """Sugar for unimplemented varlink methods.""" - with self.assertRaisesRegex(VarlinkError, MethodNotImplemented): - yield |