diff --git a/tests/test_graphql/test_api_storage.py b/tests/test_graphql/test_api_storage.py index 497db12b..5d49dda7 100644 --- a/tests/test_graphql/test_api_storage.py +++ b/tests/test_graphql/test_api_storage.py @@ -1,4 +1,20 @@ -from typing import ByteString +import pytest + + +class BlockDevicesMockReturnNone: + """Mock BlockDevices""" + + def __init__(self, args, **kwargs): + self.args = args + self.kwargs = kwargs + + def get_block_device(self, name: str): + return None + + def resize(self): + pass + + returncode = 0 class BlockDevicesMock: @@ -8,20 +24,33 @@ class BlockDevicesMock: self.args = args self.kwargs = kwargs - def get_block_device(name: str): # pylint: disable=no-method-argument - return None + def get_block_device(self, name: str): + return 0 + + def resize(self): + pass returncode = 0 -@ByteString.fixture -def mock_get_block_device(mocker): - mock = mocker.patch("BlockDevices", autospec=True) +@pytest.fixture +def mock_block_device_return_none(mocker): + mock = mocker.patch( + "selfprivacy_api.graphql.mutations.storage_mutation.BlockDevices", autospec=True + ) + return mock + + +@pytest.fixture +def mock_block_device_return(mocker): + mock = mocker.patch( + "selfprivacy_api.graphql.mutations.storage_mutation.BlockDevices", autospec=True + ) return mock API_RESIZE_VOLUME_MUTATION = """ -mutation resizeVolume($name: str!) { +mutation resizeVolume($name: String!) { resizeVolume(name: $name) { success message @@ -30,14 +59,27 @@ mutation resizeVolume($name: str!) { } """ -def test_graphql_get_nonexistent_block_device(authorized_client, mock_get_block_device): + +def test_graphql_resize_volumea_unathorized_client(client, mock_block_device): + response = client.post( + "/graphql", + json={ + "query": API_RESIZE_VOLUME_MUTATION, + "variables": {"name": "sdx"}, + }, + ) + assert response.status_code == 200 + assert response.json().get("data") is None + + +def test_graphql_resize_volume_nonexistent_block_device( + authorized_client, mock_block_device +): response = authorized_client.post( "/graphql", json={ "query": API_RESIZE_VOLUME_MUTATION, - "variables": { - "name": "sdc" - }, + "variables": {"name": "sdx"}, }, ) assert response.status_code == 200 @@ -46,3 +88,19 @@ def test_graphql_get_nonexistent_block_device(authorized_client, mock_get_block_ assert response.json()["data"]["resizeVolume"]["code"] == 404 assert response.json()["data"]["resizeVolume"]["message"] is not None assert response.json()["data"]["resizeVolume"]["success"] is False + + +def test_graphql_resize_volume(authorized_client, mock_block_device): + response = authorized_client.post( + "/graphql", + json={ + "query": API_RESIZE_VOLUME_MUTATION, + "variables": {"name": "sdx"}, + }, + ) + assert response.status_code == 200 + assert response.json().get("data") is not None + + assert response.json()["data"]["resizeVolume"]["code"] == 200 + assert response.json()["data"]["resizeVolume"]["message"] is not None + assert response.json()["data"]["resizeVolume"]["success"] is True