Source code for query_state_save.tests.test_save_query_data

# pylint: disable=C0116

import json
from collections.abc import Callable
from typing import Any

import pytest
from rest_framework import status

from query_state_save.models import PAGE_TYPE_OPTIONS


[docs] def test_save_endpoint( query_save: Callable[[Any, str, str], str | None], simple_query_data: dict[str, Any], ) -> None: url_code = query_save(simple_query_data, "genotype", "user") assert url_code != ""
[docs] @pytest.mark.parametrize("page_type", PAGE_TYPE_OPTIONS) def test_load_endpoint( query_save: Callable[[Any, str, str], str | None], query_load: Callable[[str], Any], simple_query_data: dict[str, Any], page_type: str, ) -> None: url_code = query_save(simple_query_data, page_type, "user") assert url_code is not None loaded = query_load(url_code) assert loaded["data"] == simple_query_data assert loaded["page"] == page_type
[docs] @pytest.mark.usefixtures("db") def test_invalid_page_fails( user_client: Any, simple_query_data: dict[str, Any], ) -> None: url = "/api/v3/query_state/save" query = {"data": simple_query_data, "page": "alabala", "origin": "user"} response = user_client.post( url, json.dumps(query), content_type="application/json", format="json", ) assert response.status_code == status.HTTP_400_BAD_REQUEST