def test_let_expr(self): q = AQLQuery(collection="user") q.let("name", "u.first_name")\ .let("email", F.LENGTH("u.email"))\ .result(name="name", email="email")\ assert_equal( CLEANUP(q.build_query()), CLEANUP(""" FOR obj IN user LET name = u.first_name LET email = LENGTH(u.email) RETURN {"email": email, "name": name} """))
def test_let_subquery_expr(self): m = AQLQuery(collection="memberships") c = AQLQuery(collection="memberships") q = AQLQuery(collection="user") q.let("membership", m.iter("m1").result( within="m1.within", count=F.LENGTH(c.iter("m") .result(groups="m.groups"))))\ .result(name="obj.name", email="obj.email") assert_equal( CLEANUP(q.build_query()), CLEANUP(u""" FOR obj IN user LET membership = ( FOR m1 IN memberships RETURN {"count": LENGTH( FOR m IN memberships RETURN {"groups": m.groups} ), "within": m1.within} ) RETURN {"email": obj.email, "name": obj.name} """))