Skip to content

Commit

Permalink
Add Mocked Tests: Image Actions (#331)
Browse files Browse the repository at this point in the history
* Add Mocked Tests: Image Actions

* Format with black, remove extra values in mocks to reduce number of lines

* remove todos
  • Loading branch information
loosla authored Sep 10, 2024
1 parent d9c2b90 commit 7b01498
Showing 1 changed file with 121 additions and 0 deletions.
121 changes: 121 additions & 0 deletions tests/mocked/test_image_actions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# pylint: disable=line-too-long
# pylint: disable=duplicate-code
"""Mock tests for the Image Actions API resource"""

import responses

from pydo import Client


@responses.activate
def test_image_actions_get(mock_client: Client, mock_client_url):
"""Tests Retrieving an Existing Image Action"""
image_id = 7938269
action_id = 36805527
expected = {
"action": {
"id": action_id,
"status": "in-progress",
"type": "transfer",
"started_at": "2014-11-14T16:42:45Z",
"completed_at": None,
"resource_id": image_id,
"resource_type": "image",
"region": {
"name": "New York 3",
"slug": "nyc3",
"sizes": ["s-1vcpu-3gb", "m-1vcpu-8gb"],
"features": ["private_networking", "image_transfer"],
"available": True,
},
"region_slug": "nyc3",
}
}

responses.add(
responses.GET,
f"{mock_client_url}/v2/images/{image_id}/actions/{action_id}",
json=expected,
)

get_resp = mock_client.image_actions.get(image_id=image_id, action_id=action_id)

assert get_resp == expected


@responses.activate
def test_image_actions_list(mock_client: Client, mock_client_url):
"""Mocks the image actions list operation"""
image_id = 7555620
expected = {
"actions": [
{
"id": 29410565,
"status": "completed",
"type": "transfer",
"started_at": "2014-07-25T15:04:21Z",
"completed_at": "2014-07-25T15:10:20Z",
"resource_id": image_id,
"resource_type": "image",
"region": {
"name": "New York 2",
"slug": "nyc2",
"sizes": ["s-1vcpu-3gb", "s-24vcpu-128gb"],
"features": ["private_networking", "image_transfer"],
"available": True,
},
"region_slug": "nyc2",
}
],
"links": {
"pages": {
"last": "https://api.digitalocean.com/v2/images/{image_id}/actions?page=5&per_page=1",
"next": "https://api.digitalocean.com/v2/images/{image_id}/actions?page=2&per_page=1",
}
},
"meta": {"total": 5},
}

responses.add(
responses.GET, f"{mock_client_url}/v2/images/{image_id}/actions", json=expected
)
list_resp = mock_client.image_actions.list(image_id=image_id)

assert list_resp == expected


@responses.activate
def test_image_actions_post(mock_client: Client, mock_client_url):
"""Mocks the image actions post operation."""
image_id = 7938269
expected = {
"action": {
"id": 36805527,
"status": "in-progress",
"type": "transfer",
"started_at": "2014-11-14T16:42:45Z",
"completed_at": None,
"resource_id": image_id,
"resource_type": "image",
"region": {
"name": "New York 3",
"slug": "nyc3",
"sizes": ["s-1vcpu-3gb", "s-24vcpu-128gb"],
"features": ["private_networking", "image_transfer"],
"available": True,
},
"region_slug": "nyc3",
}
}

responses.add(
responses.POST,
f"{mock_client_url}/v2/images/{image_id}/actions",
json=expected,
status=201,
)

create_req = {"type": "convert"}
post_resp = mock_client.image_actions.post(image_id=image_id, body=create_req)

assert post_resp == expected

0 comments on commit 7b01498

Please sign in to comment.