1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
from httpx import Response
import pytest
from tests.common import get_response_json
@pytest.mark.asyncio
async def test_get_list(respx_mock, xbl_client):
route = respx_mock.get("https://eplists.xboxlive.com").mock(
return_value=Response(200, json=get_response_json("lists_get_items"))
)
ret = await xbl_client.lists.get_items(xbl_client.xuid)
assert ret.list_metadata.list_count == 3
assert route.called
@pytest.mark.asyncio
async def test_list_add(respx_mock, xbl_client):
route = respx_mock.post("https://eplists.xboxlive.com").mock(
return_value=Response(200, json=get_response_json("list_add_item"))
)
post_body = {
"Items": [
{
"Locale": "en-US",
"ContentType": "DDurable",
"Title": "Destiny 2: Shadowkeep + Season",
"ItemId": "361f6d1c-7d72-4b95-8481-92fdf167363f",
"DeviceType": "XboxOne",
"ImageUrl": r"https:\/\/store-images.s-microsoft.com\/image\/apps.47381.13678370117067710.1218a7fe-a12c-4b72-ab48-1609d37bb31e.08ee0643-ed52-4e52-9e24-1d944888baf7",
}
]
}
ret = await xbl_client.lists.insert_items(xbl_client.xuid, post_body)
assert ret.list_count == 8
assert route.called
@pytest.mark.asyncio
async def test_list_delete(respx_mock, xbl_client):
route = respx_mock.delete("https://eplists.xboxlive.com").mock(
return_value=Response(200, json=get_response_json("list_delete_item"))
)
post_body = {
"Items": [
{
"Locale": "en-US",
"ContentType": "DDurable",
"Title": "Destiny 2: Shadowkeep + Season",
"ItemId": "361f6d1c-7d72-4b95-8481-92fdf167363f",
"DeviceType": "XboxOne",
"ImageUrl": r"https:\/\/store-images.s-microsoft.com\/image\/apps.47381.13678370117067710.1218a7fe-a12c-4b72-ab48-1609d37bb31e.08ee0643-ed52-4e52-9e24-1d944888baf7",
}
]
}
ret = await xbl_client.lists.remove_items(xbl_client.xuid, post_body)
assert ret.list_count == 7
assert route.called
|