mirror of
https://github.com/deepset-ai/haystack.git
synced 2026-01-05 19:47:45 +00:00
Add type check for meta on REST API & add tests (#2184)
* Add type check for meta & add tests * Improve tests * Handle properly the ValueError ad an HTTPException Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
parent
ed6e64494e
commit
00795bd71e
@ -91,7 +91,10 @@ def upload_file(
|
||||
|
||||
file_paths: list = []
|
||||
file_metas: list = []
|
||||
meta_form = json.loads(meta) # type: ignore
|
||||
|
||||
meta_form = json.loads(meta) or {} # type: ignore
|
||||
if not isinstance(meta_form, dict):
|
||||
raise HTTPException(status_code=500, detail=f"The meta field must be a dict or None, not {type(meta_form)}")
|
||||
|
||||
for file in files:
|
||||
try:
|
||||
|
||||
@ -124,6 +124,9 @@ def test_delete_documents(populated_client: TestClient):
|
||||
|
||||
|
||||
def test_file_upload(client: TestClient):
|
||||
response = client.post(url="/documents/get_by_filters", data='{"filters": {}}')
|
||||
assert len(response.json()) == 0
|
||||
|
||||
file_to_upload = {"files": (Path(__file__).parent / "samples" / "pdf" / "sample_pdf_1.pdf").open("rb")}
|
||||
response = client.post(
|
||||
url="/file-upload",
|
||||
@ -132,6 +135,41 @@ def test_file_upload(client: TestClient):
|
||||
)
|
||||
assert 200 == response.status_code
|
||||
|
||||
response = client.post(url="/documents/get_by_filters", data='{"filters": {}}')
|
||||
assert len(response.json()) > 0
|
||||
|
||||
|
||||
def test_file_upload_with_no_meta(client: TestClient):
|
||||
response = client.post(url="/documents/get_by_filters", data='{"filters": {}}')
|
||||
assert len(response.json()) == 0
|
||||
|
||||
file_to_upload = {"files": (Path(__file__).parent / "samples" / "pdf" / "sample_pdf_1.pdf").open("rb")}
|
||||
response = client.post(
|
||||
url="/file-upload",
|
||||
files=file_to_upload,
|
||||
data={"meta": ""},
|
||||
)
|
||||
assert 200 == response.status_code
|
||||
|
||||
response = client.post(url="/documents/get_by_filters", data='{"filters": {}}')
|
||||
assert len(response.json()) > 0
|
||||
|
||||
|
||||
def test_file_upload_with_wrong_meta(client: TestClient):
|
||||
response = client.post(url="/documents/get_by_filters", data='{"filters": {}}')
|
||||
assert len(response.json()) == 0
|
||||
|
||||
file_to_upload = {"files": (Path(__file__).parent / "samples" / "pdf" / "sample_pdf_1.pdf").open("rb")}
|
||||
response = client.post(
|
||||
url="/file-upload",
|
||||
files=file_to_upload,
|
||||
data={"meta": "1"},
|
||||
)
|
||||
assert 500 == response.status_code
|
||||
|
||||
response = client.post(url="/documents/get_by_filters", data='{"filters": {}}')
|
||||
assert len(response.json()) == 0
|
||||
|
||||
|
||||
def test_query_with_no_filter(populated_client: TestClient):
|
||||
query_with_no_filter_value = {"query": "Who made the PDF specification?"}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user