Ejemplo n.º 1
0
def get_list_from_id(list_id):
    user = get_current_user()
    _, list_id = from_global_id(list_id)
    list_ = List.filter(user=user, id=list_id).first()
    if not list_:
        raise GraphQLError("No list with this id")
    return list_
Ejemplo n.º 2
0
def test_move_container(client, list_, access_token, container_id,
                        new_container_id):
    nb_containers = len(list_.item_containers)

    url = url_for("graphql")
    list_id = to_global_id("TypeList", list_.id)
    res = client.post(
        url,
        headers={"Authorization": f"Bearer {access_token}"},
        json={
            "query": move_container_query,
            "variables": {
                "id": list_id,
                "containerId": container_id,
                "newContainerId": new_container_id
            },
        },
    )

    assert res.status_code == HTTPStatus.OK, res.json

    res = res.json
    assert res["data"]["moveContainer"]["list"]["countItems"] == nb_containers

    list_ = List.filter(id=list_.id).first()
    assert len(list_.item_containers) == nb_containers
    for i, container in enumerate(list_.item_containers):
        if i < min(container_id, new_container_id):
            assert len(container.items) == i + 1
        elif i == new_container_id:
            assert len(container.items) == container_id + 1
Ejemplo n.º 3
0
def test_create_list(client, user, access_token, name, description):

    url = url_for("graphql")

    res = client.post(
        url,
        headers={"Authorization": f"Bearer {access_token}"},
        json={
            "query": create_list_query,
            "variables": {
                "name": name,
                "description": description
            }
        },
    )

    assert res.status_code == HTTPStatus.OK

    queryset = List.filter(user=user)
    assert queryset.count() == 1
    list_ = queryset.first()
    assert list_.user == user
    assert list_.name == name
    assert list_.slug == slugify(name)
    assert list_.description == description

    res = res.json
    assert res["data"]["createList"]["list"]
    assert res["data"]["createList"]["list"]["name"] == name
Ejemplo n.º 4
0
def test_get_current_user_lists(client, user, nb_lists, access_token):

    other_user = User.create(username="******", steam_id="bar")
    List.create(user=other_user, name="Foo", slug="foo")
    for _ in range(nb_lists):
        List.create(user=user, name="Foo", slug="foo")
    assert List.filter(user=user).count() == nb_lists

    url = url_for("graphql")

    res = client.post(url,
                      headers={"Authorization": f"Bearer {access_token}"},
                      json={"query": get_current_user_lists_query})

    assert res.status_code == HTTPStatus.OK

    res = res.json
    assert res["data"]["currentUserLists"]

    lists = [edge["node"] for edge in res["data"]["currentUserLists"]["edges"]]
    assert len(lists) == nb_lists
Ejemplo n.º 5
0
 def resolve_current_user_lists(self, info, **kwargs):
     user = get_current_user()
     lists = List.filter(user=user)
     return lists
Ejemplo n.º 6
0
 def resolve_user_list(self, info, **kwargs):
     _, list_id = from_global_id(kwargs["id"])
     list_ = List.filter(id=list_id).first()
     return list_