Skip to content

Commit

Permalink
✨ feat: add async tests for package management
Browse files Browse the repository at this point in the history
  • Loading branch information
guptadev21 committed Dec 4, 2024
1 parent 0889509 commit a1c1671
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions tests/async_tests/test_package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import pytest
import pytest_asyncio # noqa: F401
import httpx
from munch import Munch
from asyncmock import AsyncMock

from tests.utils.test_util import (
async_client as client, # noqa: F401
package_body,
)


@pytest.mark.asyncio
async def test_list_packages_success(client, mocker: AsyncMock): # noqa: F811
mock_get = mocker.patch("httpx.AsyncClient.get")

mock_get.return_value = httpx.Response(
status_code=200,
json={
"metadata": {"continue": 1},
"items": [{"name": "test_package", "guid": "mock_package_guid"}],
},
)

response = await client.list_packages()

assert isinstance(response, Munch)
assert response["items"] == [{"name": "test_package", "guid": "mock_package_guid"}]


@pytest.mark.asyncio
async def test_list_packages_not_found(client, mocker: AsyncMock): # noqa: F811
mock_get = mocker.patch("httpx.AsyncClient.get")

mock_get.return_value = httpx.Response(
status_code=404,
json={"error": "not found"},
)

with pytest.raises(Exception) as exc:
await client.list_packages()
assert str(exc.value) == "not found"


@pytest.mark.asyncio
async def test_create_package_success(client, mocker: AsyncMock): # noqa: F811
mock_post = mocker.patch("httpx.AsyncClient.post")

mock_post.return_value = httpx.Response(
status_code=200,
json={
"kind": "Package",
"metadata": {"name": "test-package", "guid": "mock_package_guid"},
"spec": {
"users": [{"userGUID": "mock_user_guid", "emailID": "mock_email"}]
},
},
)

response = await client.create_package(package_body)

assert isinstance(response, Munch)
assert response["metadata"]["guid"] == "mock_package_guid"

0 comments on commit a1c1671

Please sign in to comment.