File: test_lists.py

package info (click to toggle)
python-xbox-webapi 2.1.0-1.2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 2,900 kB
  • sloc: python: 4,973; makefile: 79
file content (61 lines) | stat: -rw-r--r-- 2,158 bytes parent folder | download
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