コード例 #1
0
ファイル: test_base.py プロジェクト: sergiusens/pylxd
 def setUp(self):
     self.lxd = LXD('http+unix://%2Fvar%2Flib%2Flxd%2Funix.socket')
コード例 #2
0
ファイル: test_base.py プロジェクト: sergiusens/pylxd
class TestBaseAssumptions(unittest.TestCase):
    """lxd makes some common base assumptions about the rest api."""

    def setUp(self):
        self.lxd = LXD('http+unix://%2Fvar%2Flib%2Flxd%2Funix.socket')

    def test_root(self):
        """GET to / is allowed for everyone (lists the API endpoints)."""
        expected = {
            'type': 'sync',
            'status': 'Success',
            'status_code': 200,
            'metadata': ['/1.0']
        }

        result = self.lxd.get()

        self.assertEqual(200, result.status_code)
        self.assertEqual(expected, result.json())

    def test_1_0(self):
        """GET to /1.0 is allowed for everyone (but result varies)."""
        expected = {
            "type": "sync",
            "status": "Success",
            "status_code": 200,
            "metadata": {
                "api_compat": 1,
                "auth": "trusted",
                "config": {
                    "images.remote_cache_expiry": "10"
                },
                "environment": {
                    "addresses": [],
                    "architectures": [2, 1],
                    "driver": "lxc",
                    "driver_version": "1.1.5",
                    "kernel": "Linux",
                    "kernel_architecture": "x86_64",
                    "kernel_version": "4.2.0-19-generic",
                    "server": "lxd",
                    "server_pid": 7453,
                    "server_version": "0.20",
                    "storage": "dir",
                    "storage_version": ""
                }
            }
        }

        result = self.lxd['1.0'].get()

        self.assertEqual(200, result.status_code)
        self.assertEqual(expected, result.json())

    def test_1_0_images(self):
        """GET to /1.0/images/* is allowed for everyone.

        ...but only returns public images for unauthenticated users.
        """
        expected = {
            "type": "sync",
            "status": "Success",
            "status_code": 200,
            "metadata": []
        }

        result = self.lxd['1.0'].images.get()
        json = result.json()
        # metadata should exist, but its content varies.
        json['metadata'] = []

        self.assertEqual(200, result.status_code)
        self.assertEqual(expected, json)

    def test_1_0_certificates_POST(self):
        """POST to /1.0/certificates is allowed for everyone.

        ...with a client certificate.
        """
        expected = {
            "type": "sync",
            "status": "Success",
            "status_code": 200,
            "metadata": {}
        }

        data = {
            'type': 'client',
            'certificate': CERT,
        }
        result = self.lxd['1.0'].certificates.post(json=data)

        self.assertEqual(200, result.status_code)
        self.assertEqual(expected, result.json())