def setUp(self): self.lxd = LXD('http+unix://%2Fvar%2Flib%2Flxd%2Funix.socket')
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())