예제 #1
0
    def test_getitem_with_slice(self):
        e = xso_query._SoftExprMixin()

        with contextlib.ExitStack() as stack:
            Nth = stack.enter_context(
                unittest.mock.patch(
                    "aioxmpp.xso.query.Nth",
                )
            )

            Constant = stack.enter_context(
                unittest.mock.patch(
                    "aioxmpp.xso.query.Constant",
                )
            )

            result = e[1:2:3]

        Constant.assert_called_with(
            slice(1, 2, 3),
        )

        Nth.assert_called_with(
            e,
            Constant()
        )

        self.assertEqual(
            result,
            Nth()
        )
예제 #2
0
    def test_getitem_uses_as_expr(self):
        index = unittest.mock.sentinel.index
        e = xso_query._SoftExprMixin()

        with contextlib.ExitStack() as stack:
            as_expr = stack.enter_context(
                unittest.mock.patch("aioxmpp.xso.query.as_expr")
            )

            Nth = stack.enter_context(
                unittest.mock.patch("aioxmpp.xso.query.Nth")
            )

            result = e[index]

        as_expr.assert_called_with(index)
        Nth.assert_called_with(
            e,
            as_expr(),
        )

        self.assertEqual(
            result,
            Nth(),
        )
예제 #3
0
    def test_expr_slash_Expr(self):
        e = xso_query._SoftExprMixin()

        e2 = unittest.mock.Mock(spec=xso_query.Expr)

        with unittest.mock.patch("aioxmpp.xso.query.as_expr") as as_expr:
            result = e / e2

        as_expr.assert_called_with(e2, lhs=e)
        self.assertEqual(
            result,
            as_expr(),
        )
예제 #4
0
    def test_expr_getitem_where(self):
        expr = xso_query._SoftExprMixin()

        w = unittest.mock.Mock(spec=xso_query.where)
        w.expr = unittest.mock.Mock(spec=xso_query.Expr)

        with unittest.mock.patch("aioxmpp.xso.query.ExprFilter") as ExprFilter:
            result = expr[w]

        ExprFilter.assert_called_with(expr, w.expr)
        self.assertEqual(
            result,
            ExprFilter(),
        )
예제 #5
0
    def test_expr_slash_Expr(self):
        e = xso_query._SoftExprMixin()

        e2 = unittest.mock.Mock(spec=xso_query.Expr)

        with unittest.mock.patch(
                "aioxmpp.xso.query.as_expr") as as_expr:
            result = e / e2

        as_expr.assert_called_with(e2, lhs=e)
        self.assertEqual(
            result,
            as_expr(),
        )
예제 #6
0
    def test_expr_getitem_where(self):
        expr = xso_query._SoftExprMixin()

        w = unittest.mock.Mock(spec=xso_query.where)
        w.expr = unittest.mock.Mock(spec=xso_query.Expr)

        with unittest.mock.patch(
                "aioxmpp.xso.query.ExprFilter") as ExprFilter:
            result = expr[w]

        ExprFilter.assert_called_with(expr, w.expr)
        self.assertEqual(
            result,
            ExprFilter(),
        )
예제 #7
0
    def test_getitem_with_slice(self):
        e = xso_query._SoftExprMixin()

        with contextlib.ExitStack() as stack:
            Nth = stack.enter_context(
                unittest.mock.patch("aioxmpp.xso.query.Nth", ))

            Constant = stack.enter_context(
                unittest.mock.patch("aioxmpp.xso.query.Constant", ))

            result = e[1:2:3]

        Constant.assert_called_with(slice(1, 2, 3), )

        Nth.assert_called_with(e, Constant())

        self.assertEqual(result, Nth())
예제 #8
0
    def test_getitem_uses_as_expr(self):
        index = unittest.mock.sentinel.index
        e = xso_query._SoftExprMixin()

        with contextlib.ExitStack() as stack:
            as_expr = stack.enter_context(
                unittest.mock.patch("aioxmpp.xso.query.as_expr"))

            Nth = stack.enter_context(
                unittest.mock.patch("aioxmpp.xso.query.Nth"))

            result = e[index]

        as_expr.assert_called_with(index)
        Nth.assert_called_with(
            e,
            as_expr(),
        )

        self.assertEqual(
            result,
            Nth(),
        )