Esempio n. 1
0
    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}
            """))
Esempio n. 2
0
    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}
            """))