Ejemplo n.º 1
0
 def test_relation_hybrid_property(self):
     query = (
         self.session.query(self.Article)
         .join(self.Article.category)
     ).group_by(self.Article.id)
     query = sort_query(query, '-category-articles_count')
     assert_contains('ORDER BY (SELECT count(article.id) AS count_1', query)
Ejemplo n.º 2
0
 def test_join(self):
     query = (
         self.session.query(self.Article)
         .join(self.Article.category)
     )
     query = sort_query(query, 'name', silent=False)
     assert_contains('ORDER BY article.name ASC', query)
Ejemplo n.º 3
0
 def test_hybrid_property_descending(self):
     query = self.session.query(self.Category)
     query = sort_query(query, '-articles_count')
     assert_contains(
         'ORDER BY (SELECT count(article.id) AS count_1',
         query
     )
     assert ' DESC' in str(query)
Ejemplo n.º 4
0
 def test_aliased_joined_entity(self):
     alias = sa.orm.aliased(self.Category, name='categories')
     query = self.session.query(
         self.Article
     ).join(
         alias, self.Article.category
     )
     query = sort_query(query, '-categories-name')
     assert_contains('ORDER BY categories.name DESC', query)
Ejemplo n.º 5
0
    def test_assigned_hybrid_property(self):
        def getter(self):
            return self.name

        self.Article.some_hybrid = sa.ext.hybrid.hybrid_property(
            fget=getter
        )
        query = self.session.query(self.Article)
        query = sort_query(query, 'some_hybrid')
        assert_contains('ORDER BY article.name ASC', query)
Ejemplo n.º 6
0
    def test_column_property(self):
        self.Category.article_count = sa.orm.column_property(
            sa.select([sa.func.count(self.Article.id)])
            .where(self.Article.category_id == self.Category.id)
            .label('article_count')
        )

        query = self.session.query(self.Category)
        query = sort_query(query, 'article_count')
        assert_contains('article_count ASC', query)
Ejemplo n.º 7
0
 def test_aliased_hybrid_property(self):
     alias = sa.orm.aliased(
         self.Category,
         name='categories'
     )
     query = (
         self.session.query(self.Article)
         .outerjoin(alias, self.Article.category)
         .options(
             sa.orm.contains_eager(self.Article.category, alias=alias)
         )
     ).group_by(alias.id, self.Article.id)
     query = sort_query(query, '-categories-articles_count')
     assert_contains('ORDER BY (SELECT count(article.id) AS count_1', query)
Ejemplo n.º 8
0
    def test_subqueried_scalar(self):
        article_count = (
            sa.sql.select(
                [sa.func.count(self.Article.id)],
                from_obj=[self.Article.__table__]
            )
            .where(self.Article.category_id == self.Category.id)
            .correlate(self.Category.__table__)
        )

        query = self.session.query(
            self.Category, article_count.label('articles')
        )
        query = sort_query(query, '-articles')
        assert_contains('ORDER BY articles DESC', query)
Ejemplo n.º 9
0
 def test_aliased_concat_hybrid_property(self):
     alias = sa.orm.aliased(
         self.Category,
         name='aliased'
     )
     query = (
         self.session.query(self.Article)
         .outerjoin(alias, self.Article.category)
         .options(
             sa.orm.contains_eager(self.Article.category, alias=alias)
         )
     )
     query = sort_query(query, 'aliased-full_name')
     assert_contains(
         'concat(aliased.title, :param_1, aliased.name)', query
     )
Ejemplo n.º 10
0
    def test_column_property(self):
        self.TextItem.item_count = sa.orm.column_property(
            sa.select(
                [
                    sa.func.count('1')
                ],
            )
            .select_from(self.TextItem.__table__)
            .label('item_count')
        )

        query = sort_query(
            self.session.query(self.TextItem),
            'item_count'
        )
        assert_contains('ORDER BY item_count', query)
Ejemplo n.º 11
0
 def test_annotated_label_with_descending_order(self):
     query = self.session.query(self.User).order_by(
         sa.desc(self.User.article_count))
     query = make_order_by_deterministic(query)
     assert_contains('ORDER BY article_count DESC, "user".id DESC', query)
Ejemplo n.º 12
0
 def test_calculated_value_descending(self):
     query = self.session.query(
         self.Category, sa.func.count(self.Article.id).label('articles')
     )
     query = sort_query(query, '-articles')
     assert_contains('ORDER BY articles DESC', query)
Ejemplo n.º 13
0
 def test_with_ambiguous_column(self):
     query = sort_query(
         self.session.query(self.TextItem),
         'id'
     )
     assert_contains('ORDER BY text_item.id ASC', query)
Ejemplo n.º 14
0
 def test_column_property(self):
     query = self.session.query(self.User).order_by(self.User.email_lower)
     query = make_order_by_deterministic(query)
     assert_contains('lower("user".name), "user".id ASC', query)
Ejemplo n.º 15
0
 def test_table(self):
     query = self.session.query(self.Article.__table__)
     query = sort_query(query, 'name')
     assert_contains('ORDER BY article.name', query)
Ejemplo n.º 16
0
 def test_ascending_order_by(self):
     query = self.session.query(self.User).order_by(sa.asc(self.User.name))
     query = make_order_by_deterministic(query)
     assert_contains('ORDER BY "user".name ASC, "user".id ASC', query)
Ejemplo n.º 17
0
 def test_with_ambiguous_column(self):
     query = sort_query(self.session.query(self.TextItem), 'id')
     assert_contains('ORDER BY text_item.id ASC', query)
Ejemplo n.º 18
0
 def test_child_class_attribute(self):
     query = sort_query(self.session.query(self.TextItem), 'category')
     assert_contains('ORDER BY article.category ASC', query)
Ejemplo n.º 19
0
 def test_column_descending(self):
     query = sort_query(self.session.query(self.Article), '-name')
     assert_contains('ORDER BY article.name DESC', query)
Ejemplo n.º 20
0
 def test_relation_hybrid_property(self):
     query = (self.session.query(self.Article).join(
         self.Article.category)).group_by(self.Article.id)
     query = sort_query(query, '-category-articles_count')
     assert_contains('ORDER BY (SELECT count(article.id) AS count_1', query)
Ejemplo n.º 21
0
 def test_table(self):
     query = self.session.query(self.Article.__table__)
     query = sort_query(query, 'name')
     assert_contains('ORDER BY name', query)
Ejemplo n.º 22
0
 def test_hybrid_property_descending(self):
     query = self.session.query(self.Category)
     query = sort_query(query, '-articles_count')
     assert_contains('ORDER BY (SELECT count(article.id) AS count_1', query)
     assert ' DESC' in str(query)
Ejemplo n.º 23
0
 def test_synonym_property(self):
     query = self.session.query(self.Category)
     query = sort_query(query, 'name_synonym')
     assert_contains('ORDER BY category.name ASC', query)
 def test_annotated_label_with_descending_order(self):
     query = self.session.query(self.User).order_by(
         sa.desc(self.User.article_count)
     )
     query = make_order_by_deterministic(query)
     assert_contains('ORDER BY article_count DESC, "user".id DESC', query)
Ejemplo n.º 25
0
 def test_synonym_property(self):
     query = self.session.query(self.Category)
     query = sort_query(query, 'name_synonym')
     assert_contains('ORDER BY category.name ASC', query)
Ejemplo n.º 26
0
 def test_join(self):
     query = (self.session.query(self.Article).join(self.Article.category))
     query = sort_query(query, 'name', silent=False)
     assert_contains('ORDER BY article.name ASC', query)
Ejemplo n.º 27
0
 def test_non_unique_column(self):
     query = self.session.query(self.User).order_by(self.User.name)
     query = make_order_by_deterministic(query)
     assert_contains('ORDER BY "user".name, "user".id ASC', query)
Ejemplo n.º 28
0
 def test_string_order_by(self):
     query = self.session.query(self.User).order_by('name')
     query = make_order_by_deterministic(query)
     assert_contains('ORDER BY name, "user".id ASC', query)
Ejemplo n.º 29
0
 def test_column_descending(self):
     query = sort_query(self.session.query(self.Article), '-name')
     assert_contains('ORDER BY article.name DESC', query)
Ejemplo n.º 30
0
 def test_multiple_columns(self):
     query = self.session.query(self.Article)
     query = sort_query(query, 'name', 'id')
     assert_contains('article.name ASC, article.id ASC', query)
Ejemplo n.º 31
0
 def test_multiple_columns(self):
     query = self.session.query(self.Article)
     query = sort_query(query, 'name', 'id')
     assert_contains('article.name ASC, article.id ASC', query)
Ejemplo n.º 32
0
 def test_aliased_joined_entity(self):
     alias = sa.orm.aliased(self.Category, name='categories')
     query = self.session.query(self.Article).join(alias,
                                                   self.Article.category)
     query = sort_query(query, '-categories-name')
     assert_contains('ORDER BY categories.name DESC', query)
Ejemplo n.º 33
0
 def test_child_class_attribute(self):
     query = sort_query(
         self.session.query(self.TextItem),
         'category'
     )
     assert_contains('ORDER BY article.category ASC', query)
 def test_string_order_by(self):
     query = self.session.query(self.User).order_by('name')
     query = make_order_by_deterministic(query)
     assert_contains('ORDER BY name, "user".id ASC', query)
Ejemplo n.º 35
0
 def test_joined_table_column(self):
     query = self.session.query(self.Article).join(self.Article.category)
     query = sort_query(query, 'category-name')
     assert_contains('category.name ASC', query)
 def test_annotated_label(self):
     query = self.session.query(self.User).order_by(self.User.article_count)
     query = make_order_by_deterministic(query)
     assert_contains('article_count, "user".id ASC', query)
 def test_column_property(self):
     query = self.session.query(self.User).order_by(self.User.email_lower)
     query = make_order_by_deterministic(query)
     assert_contains('lower("user".name), "user".id ASC', query)
Ejemplo n.º 38
0
 def test_annotated_label(self):
     query = self.session.query(self.User).order_by(self.User.article_count)
     query = make_order_by_deterministic(query)
     assert_contains('article_count, "user".id ASC', query)
Ejemplo n.º 39
0
 def test_joined_table_column(self):
     query = self.session.query(self.Article).join(self.Article.category)
     query = sort_query(query, 'category-name')
     assert_contains('category.name ASC', query)
 def test_non_unique_column(self):
     query = self.session.query(self.User).order_by(self.User.name)
     query = make_order_by_deterministic(query)
     assert_contains('ORDER BY "user".name, "user".id ASC', query)
 def test_ascending_order_by(self):
     query = self.session.query(self.User).order_by(
         sa.asc(self.User.name)
     )
     query = make_order_by_deterministic(query)
     assert_contains('ORDER BY "user".name ASC, "user".id ASC', query)
Ejemplo n.º 42
0
 def test_calculated_value_descending(self):
     query = self.session.query(
         self.Category,
         sa.func.count(self.Article.id).label('articles'))
     query = sort_query(query, '-articles')
     assert_contains('ORDER BY articles DESC', query)