Skip to content

Commit cc5221b

Browse files
authored
Merge pull request #379 from griendt/feature/in-operator
Add IN operator to query builder
2 parents cc140ed + 67783d0 commit cc5221b

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

gqlalchemy/query_builders/declarative_base.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ class Operator(Enum):
8686
EQUAL = "="
8787
GEQ_THAN = ">="
8888
GREATER_THAN = ">"
89+
IN = "IN"
8990
INEQUAL = "<>"
9091
LABEL_FILTER = ":"
9192
LESS_THAN = "<"

tests/query_builders/test_query_builders.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,23 @@ def test_where_label(self, vendor):
420420

421421
mock.assert_called_with(expected_query)
422422

423+
def test_where_in(self, vendor):
424+
query_builder = (
425+
vendor[1]
426+
.match()
427+
.node(labels="L1", variable="n")
428+
.to(relationship_type="TO")
429+
.node(labels="L2", variable="m")
430+
.where(item="n.name", operator=Operator.IN, literal=["best_name", "worst_name"])
431+
.return_()
432+
)
433+
expected_query = ' MATCH (n:L1)-[:TO]->(m:L2) WHERE n.name IN ["best_name", "worst_name"] RETURN * '
434+
435+
with patch.object(vendor[0], "execute_and_fetch", return_value=None) as mock:
436+
query_builder.execute()
437+
438+
mock.assert_called_with(expected_query)
439+
423440
def test_where_not_label(self, vendor):
424441
query_builder = (
425442
vendor[1]

0 commit comments

Comments
 (0)