import all
This commit is contained in:
commit
881baaa1ed
25 files changed
+1779
No files matched your search
@@ -0,0 +1,62 @@
|
||||
import pytest
|
||||
import asyncio
|
||||
from unittest.mock import patch, AsyncMock
|
||||
from ..src.abricksetapi import get_set
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@patch("abricksetapi.login", new_callable=AsyncMock)
|
||||
@patch("abricksetapi.aiohttp.ClientSession")
|
||||
async def test_get_set_success(mock_session_cls, mock_login):
|
||||
# Mock login response
|
||||
mock_login.return_value = {"hash": "fakehash"}
|
||||
|
||||
# Prepare mock response data
|
||||
mock_response_data = {
|
||||
"sets": [
|
||||
{
|
||||
"number": "10349-1",
|
||||
"name": "Icons: Modular Jazz Club",
|
||||
"image": {"thumbnailURL": "http://image.url"},
|
||||
"barcode": {"UPC": "123456789012"},
|
||||
"LEGOCom": {"US": {"retailPrice": 229.99}},
|
||||
}
|
||||
]
|
||||
}
|
||||
mock_response = AsyncMock()
|
||||
mock_response.status = 200
|
||||
mock_response.read.return_value = asyncio.Future()
|
||||
mock_response.read.return_value.set_result(
|
||||
str.encode(str(mock_response_data).replace("'", '"'))
|
||||
)
|
||||
|
||||
# Mock session.get to return our mock_response
|
||||
mock_session = AsyncMock()
|
||||
mock_session.get.return_value.__aenter__.return_value = mock_response
|
||||
mock_session_cls.return_value.__aenter__.return_value = mock_session
|
||||
|
||||
result = await get_set("10349")
|
||||
assert result["set_num"] == "10349-1"
|
||||
assert result["set_name"] == "Icons: Modular Jazz Club"
|
||||
assert result["set_image"] == "http://image.url"
|
||||
assert result["set_barcode"] == "123456789012"
|
||||
assert result["set_retailprice"] == 230
|
||||
assert "set_adjustredprice" in result
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@patch("abricksetapi.login", new_callable=AsyncMock)
|
||||
@patch("abricksetapi.aiohttp.ClientSession")
|
||||
async def test_get_set_api_error(mock_session_cls, mock_login):
|
||||
mock_login.return_value = {"hash": "fakehash"}
|
||||
mock_response = AsyncMock()
|
||||
mock_response.status = 500
|
||||
mock_response.read.return_value = asyncio.Future()
|
||||
mock_response.read.return_value.set_result(b"{}")
|
||||
mock_session = AsyncMock()
|
||||
mock_session.get.return_value.__aenter__.return_value = mock_response
|
||||
mock_session_cls.return_value.__aenter__.return_value = mock_session
|
||||
|
||||
with pytest.raises(Exception) as excinfo:
|
||||
await get_set("badset")
|
||||
assert "Internal Server Error" in str(excinfo.value)
|
||||
Reference in new issue
Block a user