mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-19 10:51:34 +08:00
Add unit tests for query_parameter_as_list
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
from typing import List
|
||||
|
||||
from fastapi.applications import FastAPI
|
||||
from fastapi.param_functions import (
|
||||
Depends,
|
||||
Query,
|
||||
)
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from galaxy.webapps.galaxy.api.common import query_parameter_as_list
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
client = TestClient(app)
|
||||
|
||||
|
||||
@app.get("/test/get_value_as_list")
|
||||
async def get_value_as_list(
|
||||
values: List[str] = Depends(query_parameter_as_list(Query(alias="value"))),
|
||||
):
|
||||
return values
|
||||
|
||||
|
||||
def test_single_value():
|
||||
query_params = "value=val"
|
||||
result = _get_result_for_params(query_params)
|
||||
assert len(result) == 1
|
||||
assert result[0] == "val"
|
||||
|
||||
|
||||
def test_list_as_comma_separated_values():
|
||||
query_params = "value=val1,val2,val3"
|
||||
result = _get_result_for_params(query_params)
|
||||
|
||||
assert len(result) == 3
|
||||
assert result[0] == "val1"
|
||||
assert result[1] == "val2"
|
||||
assert result[2] == "val3"
|
||||
|
||||
|
||||
def test_list_as_multiple_query_entries():
|
||||
query_params = "value=val1&value=val2&value=val3"
|
||||
result = _get_result_for_params(query_params)
|
||||
|
||||
assert len(result) == 3
|
||||
assert result[0] == "val1"
|
||||
assert result[1] == "val2"
|
||||
assert result[2] == "val3"
|
||||
|
||||
|
||||
def _get_result_for_params(query_params: str):
|
||||
response = client.get(f"/test/get_value_as_list?{query_params}")
|
||||
|
||||
assert response.status_code == 200
|
||||
result = response.json()
|
||||
return result
|
||||
Reference in New Issue
Block a user