|
|
|
@ -41,17 +41,17 @@ def test_init(compute):
|
|
|
|
|
def test_getUrl(controller):
|
|
|
|
|
|
|
|
|
|
compute = Compute("my_compute_id", protocol="https", host="localhost", port=84, controller=controller)
|
|
|
|
|
assert compute._getUrl("/test") == "https://localhost:84/v2/compute/test"
|
|
|
|
|
assert compute._getUrl("/test") == "https://localhost:84/v3/compute/test"
|
|
|
|
|
# IPV6 localhost
|
|
|
|
|
compute = Compute("my_compute_id", protocol="https", host="::1", port=84, controller=controller)
|
|
|
|
|
assert compute._getUrl("/test") == "https://[::1]:84/v2/compute/test"
|
|
|
|
|
assert compute._getUrl("/test") == "https://[::1]:84/v3/compute/test"
|
|
|
|
|
|
|
|
|
|
# Listen on all interfaces aka 0.0.0.0 require us to connect via 127.0.0.1
|
|
|
|
|
compute = Compute("my_compute_id", protocol="https", host="0.0.0.0", port=84, controller=controller)
|
|
|
|
|
assert compute._getUrl("/test") == "https://127.0.0.1:84/v2/compute/test"
|
|
|
|
|
assert compute._getUrl("/test") == "https://127.0.0.1:84/v3/compute/test"
|
|
|
|
|
# IPV6
|
|
|
|
|
compute = Compute("my_compute_id", protocol="https", host="::", port=84, controller=controller)
|
|
|
|
|
assert compute._getUrl("/test") == "https://[::1]:84/v2/compute/test"
|
|
|
|
|
assert compute._getUrl("/test") == "https://[::1]:84/v3/compute/test"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_url(controller):
|
|
|
|
@ -86,7 +86,7 @@ async def test_compute_httpQuery(compute):
|
|
|
|
|
response.status = 200
|
|
|
|
|
await compute.post("/projects", {"a": "b"})
|
|
|
|
|
await compute.close()
|
|
|
|
|
mock.assert_called_with("POST", "https://example.com:84/v2/compute/projects", data=b'{"a": "b"}', headers={'content-type': 'application/json'}, auth=None, chunked=None, timeout=20)
|
|
|
|
|
mock.assert_called_with("POST", "https://example.com:84/v3/compute/projects", data=b'{"a": "b"}', headers={'content-type': 'application/json'}, auth=None, chunked=None, timeout=20)
|
|
|
|
|
assert compute._auth is None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -101,7 +101,7 @@ async def test_compute_httpQueryAuth(compute):
|
|
|
|
|
compute.password = "toor"
|
|
|
|
|
await compute.post("/projects", {"a": "b"})
|
|
|
|
|
await compute.close()
|
|
|
|
|
mock.assert_called_with("POST", "https://example.com:84/v2/compute/projects", data=b'{"a": "b"}', headers={'content-type': 'application/json'}, auth=compute._auth, chunked=None, timeout=20)
|
|
|
|
|
mock.assert_called_with("POST", "https://example.com:84/v3/compute/projects", data=b'{"a": "b"}', headers={'content-type': 'application/json'}, auth=compute._auth, chunked=None, timeout=20)
|
|
|
|
|
assert compute._auth.login == "root"
|
|
|
|
|
assert compute._auth.password == "toor"
|
|
|
|
|
|
|
|
|
@ -161,7 +161,7 @@ async def test_compute_httpQueryNotConnectedInvalidVersion(compute):
|
|
|
|
|
with asyncio_patch("aiohttp.ClientSession.request", return_value=response) as mock:
|
|
|
|
|
with pytest.raises(ControllerError):
|
|
|
|
|
await compute.post("/projects", {"a": "b"})
|
|
|
|
|
mock.assert_any_call("GET", "https://example.com:84/v2/compute/capabilities", headers={'content-type': 'application/json'}, data=None, auth=None, chunked=None, timeout=20)
|
|
|
|
|
mock.assert_any_call("GET", "https://example.com:84/v3/compute/capabilities", headers={'content-type': 'application/json'}, data=None, auth=None, chunked=None, timeout=20)
|
|
|
|
|
await compute.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -175,7 +175,7 @@ async def test_compute_httpQueryNotConnectedNonGNS3Server(compute):
|
|
|
|
|
with asyncio_patch("aiohttp.ClientSession.request", return_value=response) as mock:
|
|
|
|
|
with pytest.raises(ControllerError):
|
|
|
|
|
await compute.post("/projects", {"a": "b"})
|
|
|
|
|
mock.assert_any_call("GET", "https://example.com:84/v2/compute/capabilities", headers={'content-type': 'application/json'}, data=None, auth=None, chunked=None, timeout=20)
|
|
|
|
|
mock.assert_any_call("GET", "https://example.com:84/v3/compute/capabilities", headers={'content-type': 'application/json'}, data=None, auth=None, chunked=None, timeout=20)
|
|
|
|
|
await compute.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -189,7 +189,7 @@ async def test_compute_httpQueryNotConnectedNonGNS3Server2(compute):
|
|
|
|
|
with asyncio_patch("aiohttp.ClientSession.request", return_value=response) as mock:
|
|
|
|
|
with pytest.raises(ControllerError):
|
|
|
|
|
await compute.post("/projects", {"a": "b"})
|
|
|
|
|
mock.assert_any_call("GET", "https://example.com:84/v2/compute/capabilities", headers={'content-type': 'application/json'}, data=None, auth=None, chunked=None, timeout=20)
|
|
|
|
|
mock.assert_any_call("GET", "https://example.com:84/v3/compute/capabilities", headers={'content-type': 'application/json'}, data=None, auth=None, chunked=None, timeout=20)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
|
|
@ -225,7 +225,7 @@ async def test_compute_httpQuery_project(compute):
|
|
|
|
|
response.status = 200
|
|
|
|
|
project = Project(name="Test")
|
|
|
|
|
await compute.post("/projects", project)
|
|
|
|
|
mock.assert_called_with("POST", "https://example.com:84/v2/compute/projects", data=json.dumps(project.__json__()), headers={'content-type': 'application/json'}, auth=None, chunked=None, timeout=20)
|
|
|
|
|
mock.assert_called_with("POST", "https://example.com:84/v3/compute/projects", data=json.dumps(project.__json__()), headers={'content-type': 'application/json'}, auth=None, chunked=None, timeout=20)
|
|
|
|
|
await compute.close()
|
|
|
|
|
|
|
|
|
|
# FIXME: https://github.com/aio-libs/aiohttp/issues/2525
|
|
|
|
@ -334,7 +334,7 @@ async def test_downloadFile(project, compute):
|
|
|
|
|
response.status = 200
|
|
|
|
|
with asyncio_patch("aiohttp.ClientSession.request", return_value=response) as mock:
|
|
|
|
|
await compute.download_file(project, "test/titi")
|
|
|
|
|
mock.assert_called_with("GET", "https://example.com:84/v2/compute/projects/{}/files/test/titi".format(project.id), auth=None)
|
|
|
|
|
mock.assert_called_with("GET", "https://example.com:84/v3/compute/projects/{}/files/test/titi".format(project.id), auth=None)
|
|
|
|
|
await compute.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -369,7 +369,7 @@ async def test_forward_get(compute):
|
|
|
|
|
response.status = 200
|
|
|
|
|
with asyncio_patch("aiohttp.ClientSession.request", return_value=response) as mock:
|
|
|
|
|
await compute.forward("GET", "qemu", "images")
|
|
|
|
|
mock.assert_called_with("GET", "https://example.com:84/v2/compute/qemu/images", auth=None, data=None, headers={'content-type': 'application/json'}, chunked=None, timeout=None)
|
|
|
|
|
mock.assert_called_with("GET", "https://example.com:84/v3/compute/qemu/images", auth=None, data=None, headers={'content-type': 'application/json'}, chunked=None, timeout=None)
|
|
|
|
|
await compute.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -392,7 +392,7 @@ async def test_forward_post(compute):
|
|
|
|
|
response.status = 200
|
|
|
|
|
with asyncio_patch("aiohttp.ClientSession.request", return_value=response) as mock:
|
|
|
|
|
await compute.forward("POST", "qemu", "img", data={"id": 42})
|
|
|
|
|
mock.assert_called_with("POST", "https://example.com:84/v2/compute/qemu/img", auth=None, data=b'{"id": 42}', headers={'content-type': 'application/json'}, chunked=None, timeout=None)
|
|
|
|
|
mock.assert_called_with("POST", "https://example.com:84/v3/compute/qemu/img", auth=None, data=b'{"id": 42}', headers={'content-type': 'application/json'}, chunked=None, timeout=None)
|
|
|
|
|
await compute.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -411,7 +411,7 @@ async def test_images(compute):
|
|
|
|
|
"filesize": 0}]).encode())
|
|
|
|
|
with asyncio_patch("aiohttp.ClientSession.request", return_value=response) as mock:
|
|
|
|
|
images = await compute.images("qemu")
|
|
|
|
|
mock.assert_called_with("GET", "https://example.com:84/v2/compute/qemu/images", auth=None, data=None, headers={'content-type': 'application/json'}, chunked=None, timeout=None)
|
|
|
|
|
mock.assert_called_with("GET", "https://example.com:84/v3/compute/qemu/images", auth=None, data=None, headers={'content-type': 'application/json'}, chunked=None, timeout=None)
|
|
|
|
|
await compute.close()
|
|
|
|
|
|
|
|
|
|
assert images == [
|
|
|
|
@ -428,7 +428,7 @@ async def test_list_files(project, compute):
|
|
|
|
|
response.status = 200
|
|
|
|
|
with asyncio_patch("aiohttp.ClientSession.request", return_value=response) as mock:
|
|
|
|
|
assert await compute.list_files(project) == res
|
|
|
|
|
mock.assert_any_call("GET", "https://example.com:84/v2/compute/projects/{}/files".format(project.id), auth=None, chunked=None, data=None, headers={'content-type': 'application/json'}, timeout=None)
|
|
|
|
|
mock.assert_any_call("GET", "https://example.com:84/v3/compute/projects/{}/files".format(project.id), auth=None, chunked=None, data=None, headers={'content-type': 'application/json'}, timeout=None)
|
|
|
|
|
await compute.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -450,7 +450,7 @@ async def test_interfaces(compute):
|
|
|
|
|
response.status = 200
|
|
|
|
|
with asyncio_patch("aiohttp.ClientSession.request", return_value=response) as mock:
|
|
|
|
|
assert await compute.interfaces() == res
|
|
|
|
|
mock.assert_any_call("GET", "https://example.com:84/v2/compute/network/interfaces", auth=None, chunked=None, data=None, headers={'content-type': 'application/json'}, timeout=20)
|
|
|
|
|
mock.assert_any_call("GET", "https://example.com:84/v3/compute/network/interfaces", auth=None, chunked=None, data=None, headers={'content-type': 'application/json'}, timeout=20)
|
|
|
|
|
await compute.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|