Added support for multiple string where's

This commit is contained in:
Donkie
2023-09-09 09:48:01 +02:00
parent 841cc8b6df
commit 6d68a40313
2 changed files with 16 additions and 3 deletions

View File

@@ -47,7 +47,7 @@ def add_where_clause_str_opt(
if len(value) == 0:
stmt = stmt.where(sqlalchemy.or_(field.is_(None), field == ""))
else:
stmt = stmt.where(field.ilike(f"%{value}%"))
stmt = stmt.where(sqlalchemy.or_(*(field.ilike(f"%{value}%") for value in value.split(","))))
return stmt
@@ -61,7 +61,7 @@ def add_where_clause_str(
if len(value) == 0:
stmt = stmt.where(field == "")
else:
stmt = stmt.where(field.ilike(f"%{value}%"))
stmt = stmt.where(sqlalchemy.or_(*(field.ilike(f"%{value}%") for value in value.split(","))))
return stmt

View File

@@ -289,7 +289,20 @@ def test_find_filaments_by_material(filaments: Fixture):
# Verify
filaments_result = result.json()
assert filaments_result[0] == filaments.filaments[1]
assert filaments_result == [filaments.filaments[1]]
def test_find_filaments_by_multiple_materials(filaments: Fixture):
# Execute
result = httpx.get(
f"{URL}/api/v1/filament",
params={"material": "abs,pla"},
)
result.raise_for_status()
# Verify
filaments_result = result.json()
assert filament_lists_equal(filaments_result, filaments.filaments[:2])
def test_find_filaments_by_empty_material(filaments: Fixture):