Added support for multiple string where's
This commit is contained in:
@@ -47,7 +47,7 @@ def add_where_clause_str_opt(
|
|||||||
if len(value) == 0:
|
if len(value) == 0:
|
||||||
stmt = stmt.where(sqlalchemy.or_(field.is_(None), field == ""))
|
stmt = stmt.where(sqlalchemy.or_(field.is_(None), field == ""))
|
||||||
else:
|
else:
|
||||||
stmt = stmt.where(field.ilike(f"%{value}%"))
|
stmt = stmt.where(sqlalchemy.or_(*(field.ilike(f"%{value}%") for value in value.split(","))))
|
||||||
return stmt
|
return stmt
|
||||||
|
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ def add_where_clause_str(
|
|||||||
if len(value) == 0:
|
if len(value) == 0:
|
||||||
stmt = stmt.where(field == "")
|
stmt = stmt.where(field == "")
|
||||||
else:
|
else:
|
||||||
stmt = stmt.where(field.ilike(f"%{value}%"))
|
stmt = stmt.where(sqlalchemy.or_(*(field.ilike(f"%{value}%") for value in value.split(","))))
|
||||||
return stmt
|
return stmt
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -289,7 +289,20 @@ def test_find_filaments_by_material(filaments: Fixture):
|
|||||||
|
|
||||||
# Verify
|
# Verify
|
||||||
filaments_result = result.json()
|
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):
|
def test_find_filaments_by_empty_material(filaments: Fixture):
|
||||||
|
|||||||
Reference in New Issue
Block a user