Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rc/5.4.5 #866

Merged
merged 12 commits into from
Mar 10, 2025
Prev Previous commit
Next Next commit
Improve test with data check
mariusconjeaud committed Mar 7, 2025
commit 2a7cf7e524922a1acb1d404d2eb8a50f564bb873
13 changes: 12 additions & 1 deletion test/async_/test_match_api.py
Original file line number Diff line number Diff line change
@@ -2,7 +2,6 @@
from datetime import datetime
from test._async_compat import mark_async_test

import numpy as np
from pytest import raises, skip, warns

from neomodel import (
@@ -1159,12 +1158,16 @@ async def test_in_filter_with_array_property():
async def test_unique_variables():
arabica = await Species(name="Arabica").save()
nescafe = await Coffee(name="Nescafe", price=99).save()
gold3000 = await Coffee(name="Gold 3000", price=11).save()
supplier1 = await Supplier(name="Supplier 1", delivery_cost=3).save()
supplier2 = await Supplier(name="Supplier 2", delivery_cost=20).save()
supplier3 = await Supplier(name="Supplier 3", delivery_cost=20).save()

await nescafe.suppliers.connect(supplier1, {"since": datetime(2020, 4, 1, 0, 0)})
await nescafe.suppliers.connect(supplier2, {"since": datetime(2010, 4, 1, 0, 0)})
await nescafe.species.connect(arabica)
await gold3000.suppliers.connect(supplier1, {"since": datetime(2020, 4, 1, 0, 0)})
await gold3000.species.connect(arabica)

nodeset = Supplier.nodes.fetch_relations("coffees", "coffees__species").filter(
coffees__name="Nescafe"
@@ -1173,6 +1176,10 @@ async def test_unique_variables():
query = ast.build_query()
assert "coffee_coffees1" in query
assert "coffee_coffees2" in query
results = await nodeset.all()
# This will be 3 because 2 suppliers for Nescafe and 1 for Gold 3000
# Gold 3000 is traversed because coffees__species redefines the coffees traversal
assert len(results) == 3

nodeset = (
Supplier.nodes.fetch_relations("coffees", "coffees__species")
@@ -1184,6 +1191,10 @@ async def test_unique_variables():
assert "coffee_coffees" in query
assert "coffee_coffees1" not in query
assert "coffee_coffees2" not in query
results = await nodeset.all()
# This will 2 because Gold 3000 is excluded this time
# As coffees will be reused in coffees__species
assert len(results) == 2


@mark_async_test
13 changes: 12 additions & 1 deletion test/sync_/test_match_api.py
Original file line number Diff line number Diff line change
@@ -2,7 +2,6 @@
from datetime import datetime
from test._async_compat import mark_sync_test

import numpy as np
from pytest import raises, skip, warns

from neomodel import (
@@ -1143,12 +1142,16 @@ def test_in_filter_with_array_property():
def test_unique_variables():
arabica = Species(name="Arabica").save()
nescafe = Coffee(name="Nescafe", price=99).save()
gold3000 = Coffee(name="Gold 3000", price=11).save()
supplier1 = Supplier(name="Supplier 1", delivery_cost=3).save()
supplier2 = Supplier(name="Supplier 2", delivery_cost=20).save()
supplier3 = Supplier(name="Supplier 3", delivery_cost=20).save()

nescafe.suppliers.connect(supplier1, {"since": datetime(2020, 4, 1, 0, 0)})
nescafe.suppliers.connect(supplier2, {"since": datetime(2010, 4, 1, 0, 0)})
nescafe.species.connect(arabica)
gold3000.suppliers.connect(supplier1, {"since": datetime(2020, 4, 1, 0, 0)})
gold3000.species.connect(arabica)

nodeset = Supplier.nodes.fetch_relations("coffees", "coffees__species").filter(
coffees__name="Nescafe"
@@ -1157,6 +1160,10 @@ def test_unique_variables():
query = ast.build_query()
assert "coffee_coffees1" in query
assert "coffee_coffees2" in query
results = nodeset.all()
# This will be 3 because 2 suppliers for Nescafe and 1 for Gold 3000
# Gold 3000 is traversed because coffees__species redefines the coffees traversal
assert len(results) == 3

nodeset = (
Supplier.nodes.fetch_relations("coffees", "coffees__species")
@@ -1168,6 +1175,10 @@ def test_unique_variables():
assert "coffee_coffees" in query
assert "coffee_coffees1" not in query
assert "coffee_coffees2" not in query
results = nodeset.all()
# This will 2 because Gold 3000 is excluded this time
# As coffees will be reused in coffees__species
assert len(results) == 2


@mark_sync_test