Beispiel #1
0
    def test_use_sqlalchemy_sort_index_if_mapping_exists(self):
        config = DummySQLTableSourceConfig(self.portal,
                                           self.request,
                                           sql_indexes={'member_id': Membership.member_id})
        source = SqlTableSource(config, self.request)

        self.assertIn('ORDER BY memberships.member_id',
                      str(source.build_query()))
    def test_no_sorting_if_column_does_not_exist(self):
        config = DummySQLTableSourceConfig(
            self.portal,
            self.request,
            sql_indexes={'member_id': Membership.member_id})
        config.sort_on = 'this_column_does_not_exist'
        source = SqlTableSource(config, self.request)

        query = source.build_query()
        sorted_query = source.extend_query_with_ordering(query)

        self.assertNotIn('ORDER BY this_column_does_not_exist',
                         str(sorted_query))
    def test_no_sorting_if_column_does_not_exist(self):
        config = DummySQLTableSourceConfig(
            self.portal,
            self.request,
            sql_indexes={'member_id': Membership.member_id})
        config.sort_on = 'this_column_does_not_exist'
        source = SqlTableSource(config, self.request)

        query = source.build_query()
        sorted_query = source.extend_query_with_ordering(query)

        self.assertNotIn(
            'ORDER BY this_column_does_not_exist',
            str(sorted_query))
    def test_allow_special_order_by_in_additional_sql_indices(self):
        config = DummySQLTableSourceConfig(
            self.portal,
            self.request,
            sql_indexes={'member_id': Member.fullname})
        config.sort_on = 'member_id'
        source = SqlTableSource(config, self.request)

        query = source.build_query()
        sorted_query = source.extend_query_with_ordering(query)

        # fullname is  a col-property it will order by lastname and firstname.
        # only assert against lastname as the rest of the query serializes
        # in a weird way here
        self.assertIn('ORDER BY members.lastname', str(sorted_query))
    def test_allow_special_order_by_in_additional_sql_indices(self):
        config = DummySQLTableSourceConfig(
            self.portal,
            self.request,
            sql_indexes={'member_id': Member.fullname})
        config.sort_on = 'member_id'
        source = SqlTableSource(config, self.request)

        query = source.build_query()
        sorted_query = source.extend_query_with_ordering(query)

        # fullname is  a col-property it will order by lastname and firstname.
        # only assert against lastname as the rest of the query serializes
        # in a weird way here
        self.assertIn(
            'ORDER BY members.lastname',
            str(sorted_query))
Beispiel #6
0
 def test_use_default_sort_index_if_no_sqlalchemy_sort_index_mapping_exists(self):
     config = DummySQLTableSourceConfig(self.portal, self.request)
     source = SqlTableSource(config, self.request)
     self.assertIn('ORDER BY member_id',
                   str(source.build_query()))