add more services tests

remotes/1708433653850144806/def_tests
def 2022-08-31 23:56:26 +02:00
parent 39caea8b5c
commit ed8d9b4c8d
1 changed files with 184 additions and 76 deletions

View File

@ -13,6 +13,16 @@ def service_to_graphql_service_mock():
pass pass
class BlockDevicesMock:
def get_block_device(self, name: str):
pass
class BlockDevicesReturnNoneMock:
def get_block_device(self, name: str):
return None
class NextcloudMock: class NextcloudMock:
def __init__(self, args, **kwargs): def __init__(self, args, **kwargs):
self.args = args self.args = args
@ -27,6 +37,35 @@ class NextcloudMock:
def stop(self): def stop(self):
pass pass
def is_movable(self):
return True
def move_to_volume(self):
pass
returncode = 0
class NextcloudReturnFalseMock:
def __init__(self, args, **kwargs):
self.args = args
self.kwargs = kwargs
def enable(self):
pass
def disable(self):
pass
def stop(self):
pass
def is_movable(self):
return False
def move_to_volume(self):
pass
returncode = 0 returncode = 0
@ -50,6 +89,36 @@ def mock_nextcloud(mocker):
return mock return mock
@pytest.fixture
def mock_block_devices_return_none(mocker):
mock = mocker.patch(
"selfprivacy_api.utils.block_devices.BlockDevices",
autospec=True,
return_value=BlockDevicesReturnNoneMock,
)
return mock
@pytest.fixture
def mock_block_devices(mocker):
mock = mocker.patch(
"selfprivacy_api.utils.block_devices.BlockDevices",
autospec=True,
return_value=BlockDevicesMock,
)
return mock
@pytest.fixture
def mock_nextcloud_return_false(mocker):
mock = mocker.patch(
"selfprivacy_api.services.nextcloud.__init__.Nextcloud",
autospec=True,
return_value=NextcloudReturnFalseMock,
)
return mock
@pytest.fixture @pytest.fixture
def mock_get_service_by_id_return_none(mocker): def mock_get_service_by_id_return_none(mocker):
mock = mocker.patch( mock = mocker.patch(
@ -384,7 +453,7 @@ def test_graphql_restart_not_found_service(
assert response.json()["data"]["restartService"]["success"] is False assert response.json()["data"]["restartService"]["success"] is False
def test_graphql_restart_services( def test_graphql_restart_service(
authorized_client, authorized_client,
mock_get_service_by_id, mock_get_service_by_id,
mock_nextcloud, mock_nextcloud,
@ -405,86 +474,125 @@ def test_graphql_restart_services(
assert response.json()["data"]["restartService"]["success"] is True assert response.json()["data"]["restartService"]["success"] is True
# API_MOVE_SERVICE_MUTATION = """ API_MOVE_SERVICE_MUTATION = """
# mutation moveService($input: MoveServiceInput!) { mutation moveService($input: MoveServiceInput!) {
# moveService(input: $input) { moveService(input: $input) {
# success success
# message message
# code code
# } }
# } }
# """ """
# def test_graphql_restart_service_unathorized_client( def test_graphql_move_service_unathorized_client(
# client, client,
# mock_get_service_by_id_return_none, mock_get_service_by_id_return_none,
# mock_nextcloud, mock_nextcloud,
# mock_service_to_graphql_service, mock_service_to_graphql_service,
# ): ):
# response = client.post( response = client.post(
# "/graphql", "/graphql",
# json={ json={
# "query": API_MOVE_SERVICE_MUTATION, "query": API_MOVE_SERVICE_MUTATION,
# "variables": { "variables": {
# "input": { "input": {"service_id": "nextcloud", "location": "sdx"},
# "service_id": "nextcloud", },
# "location": "sdx" },
# }, )
# }, assert response.status_code == 200
# }, assert response.json().get("data") is None
# )
# assert response.status_code == 200
# assert response.json().get("data") is None
# def test_graphql_restart_not_found_service( def test_graphql_move_not_found_service(
# authorized_client, authorized_client,
# mock_get_service_by_id_return_none, mock_get_service_by_id_return_none,
# mock_nextcloud, mock_nextcloud,
# mock_service_to_graphql_service, mock_service_to_graphql_service,
# ): ):
# response = authorized_client.post( response = authorized_client.post(
# "/graphql", "/graphql",
# json={ json={
# "query": API_MOVE_SERVICE_MUTATION, "query": API_MOVE_SERVICE_MUTATION,
# "variables": { "variables": {
# "input": { "input": {"service_id": "nextcloud", "location": "sdx"},
# "service_id": "nextcloud", },
# "location": "sdx" },
# }, )
# }, assert response.status_code == 200
# }, assert response.json().get("data") is not None
# )
# assert response.status_code == 200
# assert response.json().get("data") is not None
# assert response.json()["data"]["moveService"]["code"] == 404 assert response.json()["data"]["moveService"]["code"] == 404
# assert response.json()["data"]["moveService"]["message"] is not None assert response.json()["data"]["moveService"]["message"] is not None
# assert response.json()["data"]["moveService"]["success"] is False assert response.json()["data"]["moveService"]["success"] is False
# def test_graphql_restart_services( def test_graphql_move_not_moveble_service(
# authorized_client, authorized_client,
# mock_get_service_by_id, mock_get_service_by_id,
# mock_nextcloud, mock_nextcloud_return_false,
# mock_service_to_graphql_service, mock_service_to_graphql_service,
# ): ):
# response = authorized_client.post( response = authorized_client.post(
# "/graphql", "/graphql",
# json={ json={
# "query": API_MOVE_SERVICE_MUTATION, "query": API_MOVE_SERVICE_MUTATION,
# "variables": { "variables": {
# "input": { "input": {"service_id": "nextcloud", "location": "sdx"},
# "service_id": "nextcloud", },
# "location": "sdx" },
# }, )
# }, assert response.status_code == 200
# }, assert response.json().get("data") is not None
# )
# assert response.status_code == 200
# assert response.json().get("data") is not None
# assert response.json()["data"]["moveService"]["code"] == 200 assert response.json()["data"]["moveService"]["code"] == 400
# assert response.json()["data"]["moveService"]["message"] is not None assert response.json()["data"]["moveService"]["message"] is not None
# assert response.json()["data"]["moveService"]["success"] is True assert response.json()["data"]["moveService"]["success"] is False
def test_graphql_move_service_volume_not_found(
authorized_client,
mock_get_service_by_id,
mock_nextcloud,
mock_service_to_graphql_service,
mock_block_devices_return_none,
):
response = authorized_client.post(
"/graphql",
json={
"query": API_MOVE_SERVICE_MUTATION,
"variables": {
"input": {"service_id": "nextcloud", "location": "sdx"},
},
},
)
assert response.status_code == 200
assert response.json().get("data") is not None
assert response.json()["data"]["moveService"]["code"] == 400
assert response.json()["data"]["moveService"]["message"] is not None
assert response.json()["data"]["moveService"]["success"] is False
def test_graphql_move_service(
authorized_client,
mock_get_service_by_id,
mock_nextcloud,
mock_service_to_graphql_service,
mock_block_devices,
):
response = authorized_client.post(
"/graphql",
json={
"query": API_MOVE_SERVICE_MUTATION,
"variables": {
"input": {"service_id": "nextcloud", "location": "sdx"},
},
},
)
assert response.status_code == 200
assert response.json().get("data") is not None
assert response.json()["data"]["moveService"]["code"] == 200
assert response.json()["data"]["moveService"]["message"] is not None
assert response.json()["data"]["moveService"]["success"] is True