sqlalchemy.asc.nulls_first

Here are the examples of the python api sqlalchemy.asc.nulls_first taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

1 Examples 7

0 Source : test_query.py
with MIT License
from sqlalchemy

    def test_order_by_nulls(self, connection):
        """Exercises ORDER BY clause generation.

        Tests simple, compound, aliased and DESC clauses.
        """

        users = self.tables.users

        connection.execute(users.insert(), dict(user_id=1))
        connection.execute(users.insert(), dict(user_id=2, user_name="b"))
        connection.execute(users.insert(), dict(user_id=3, user_name="a"))

        def a_eq(executable, wanted):
            got = list(connection.execute(executable))
            eq_(got, wanted)

        for labels in False, True:
            label_style = (
                LABEL_STYLE_NONE
                if labels is False
                else LABEL_STYLE_TABLENAME_PLUS_COL
            )
            a_eq(
                users.select()
                .order_by(users.c.user_name.nulls_first())
                .set_label_style(label_style),
                [(1, None), (3, "a"), (2, "b")],
            )

            a_eq(
                users.select()
                .order_by(users.c.user_name.nulls_last())
                .set_label_style(label_style),
                [(3, "a"), (2, "b"), (1, None)],
            )

            a_eq(
                users.select()
                .order_by(asc(users.c.user_name).nulls_first())
                .set_label_style(label_style),
                [(1, None), (3, "a"), (2, "b")],
            )

            a_eq(
                users.select()
                .order_by(asc(users.c.user_name).nulls_last())
                .set_label_style(label_style),
                [(3, "a"), (2, "b"), (1, None)],
            )

            a_eq(
                users.select()
                .order_by(users.c.user_name.desc().nulls_first())
                .set_label_style(label_style),
                [(1, None), (2, "b"), (3, "a")],
            )

            a_eq(
                users.select()
                .order_by(users.c.user_name.desc().nulls_last())
                .set_label_style(label_style),
                [(2, "b"), (3, "a"), (1, None)],
            )

            a_eq(
                users.select()
                .order_by(desc(users.c.user_name).nulls_first())
                .set_label_style(label_style),
                [(1, None), (2, "b"), (3, "a")],
            )

            a_eq(
                users.select()
                .order_by(desc(users.c.user_name).nulls_last())
                .set_label_style(label_style),
                [(2, "b"), (3, "a"), (1, None)],
            )

            a_eq(
                users.select()
                .order_by(
                    users.c.user_name.nulls_first(),
                    users.c.user_id,
                )
                .set_label_style(label_style),
                [(1, None), (3, "a"), (2, "b")],
            )

            a_eq(
                users.select()
                .order_by(users.c.user_name.nulls_last(), users.c.user_id)
                .set_label_style(label_style),
                [(3, "a"), (2, "b"), (1, None)],
            )

    def test_in_filtering(self, connection):