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_
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
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
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
def resolve_current_user_lists(self, info, **kwargs): user = get_current_user() lists = List.filter(user=user) return lists
def resolve_user_list(self, info, **kwargs): _, list_id = from_global_id(kwargs["id"]) list_ = List.filter(id=list_id).first() return list_