summaryrefslogtreecommitdiff
path: root/contrib/python/podman/test/test_system.py
blob: 2b1342f8a0ce2e298da0e49772439e8d2f2f4e35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import os
import unittest
from urllib.parse import urlparse

import podman
import varlink


class TestSystem(unittest.TestCase):
    def setUp(self):
        self.host = os.environ['PODMAN_HOST']
        self.tmpdir = os.environ['TMPDIR']

    def tearDown(self):
        pass

    def test_bad_address(self):
        with self.assertRaisesRegex(varlink.client.ConnectionError,
                                    "Invalid address 'bad address'"):
            podman.Client('bad address')

    def test_ping(self):
        with podman.Client(self.host) as pclient:
            self.assertTrue(pclient.system.ping())

    def test_remote_ping(self):
        host = urlparse(self.host)
        remote_uri = 'ssh://root@localhost{}'.format(host.path)

        local_uri = 'unix:{}/tunnel/podman.sock'.format(self.tmpdir)
        with podman.Client(
                uri=local_uri,
                remote_uri=remote_uri,
                identity_file=os.path.expanduser('~/.ssh/id_rsa'),
        ) as remote_client:
            self.assertTrue(remote_client.system.ping())

    def test_versions(self):
        with podman.Client(self.host) as pclient:
            # Values change with each build so we cannot test too much
            self.assertListEqual(
                sorted([
                    'built', 'client_version', 'git_commit', 'go_version',
                    'os_arch', 'version'
                ]), sorted(list(pclient.system.versions._fields)))
            pclient.system.versions
        self.assertIsNot(podman.__version__, '0.0.0')

    def test_info(self):
        with podman.Client(self.host) as pclient:
            actual = pclient.system.info()
            # Values change too much to do exhaustive testing
            self.assertIsNotNone(actual.podman['go_version'])
            self.assertListEqual(
                sorted([
                    'host', 'insecure_registries', 'podman', 'registries',
                    'store'
                ]), sorted(list(actual._fields)))


if __name__ == '__main__':
    unittest.main()