Пример #1
0
def test_in():
    books = create_books()
    assert apply_in_listing_filters(str(books[0].pk)) == [books[0]]
    assert apply_in_listing_filters(str(books[1].pk), '23') == [books[1]]
    assert apply_in_listing_filters(str(books[1].pk),
                                    str(books[0].pk)) == books
    assert apply_in_listing_filters('23') == []
Пример #2
0
def test_id():
    filter_name = 'id'
    books = create_books()
    assert filter_field(filter_name, CO.EQ, books[0].pk) == [books[0]]
    assert filter_field(filter_name, CO.EQ, 3) == []
    assert filter_field(filter_name, CO.NE, books[1].pk) == [books[0]]
    assert filter_field(filter_name, CO.LT, books[1].pk) == [books[0]]
    assert filter_field(filter_name, CO.GE, books[0].pk) == books
Пример #3
0
def test_anno_title_non_dynamic():
    filter_name = 'anno_title_non_dynamic'

    books = create_books()
    books[0].title = 'text'
    books[0].save(update_fields=['title'])

    assert filter_field(filter_name, CO.EQ, RQL_NULL) == [books[1]]
    assert filter_field(filter_name, CO.EQ, 'text') == [books[0]]
def test_anno_title_dynamic():
    filter_name = 'anno_title_dynamic'

    books = create_books()
    books[0].title = 'text'
    books[0].save(update_fields=['title'])

    assert filter_field(filter_name, CO.EQ, 'text') == [books[0]]
    assert filter_field(filter_name, SearchOperators.I_LIKE, 'Te*') == [books[0]]
Пример #5
0
def test_tuple(filter_string):
    books = create_books()
    comp_filter = filter_string.format(
        email=books[0].author.email,
        published_at=books[0].published_at.date(),
        publisher_id=books[0].author.publisher.id,
        second_book_email=books[1].author.email,
    )
    assert apply_filters(comp_filter) == [books[0]]
Пример #6
0
def test_null_with_in_or():
    books = create_books()

    title = 'null'
    books[0].title = title
    books[0].save(update_fields=['title'])

    assert apply_filters('in(title,({},{}))'.format(title, RQL_NULL)) == books
    assert apply_filters('or(title=eq={},eq(title,{}))'.format(
        title, RQL_NULL)) == books
Пример #7
0
def test_custom_filter_ordering():
    class CustomCls(BooksFilterClass):
        def build_name_for_custom_ordering(self, filter_name):
            return 'id'

        def assert_ordering(self, filter_name, expected):
            assert list(
                self.apply_filters(
                    'ordering({0})'.format(filter_name))[1]) == expected

    books = create_books()

    CustomCls(book_qs).assert_ordering('ordering_filter', [books[0], books[1]])
    CustomCls(book_qs).assert_ordering('-ordering_filter',
                                       [books[1], books[0]])
Пример #8
0
def test_ignored_filters(filter_name, operator):
    books = create_books()
    assert filter_field(filter_name, operator, 'value') == books
Пример #9
0
def test_anno_str_ok():
    filter_name = 'anno_str'
    books = create_books()

    assert filter_field(filter_name, CO.EQ, 'te') == []
    assert filter_field(filter_name, CO.EQ, 'text') == books
Пример #10
0
def test_anno_int_ok(filter_name):
    books = create_books()

    assert filter_field(filter_name, CO.EQ, 10) == []
    assert filter_field(filter_name, CO.EQ, 1000) == books
Пример #11
0
def test_ordering_by_empty_value():
    books = create_books()
    assert apply_filters('ordering()') == books
Пример #12
0
def test_ordering_sources():
    books = create_books()
    assert apply_filters('ordering(d_id)') == [books[0], books[1]]
    assert apply_filters('ordering(-d_id)') == [books[1], books[0]]
Пример #13
0
def test_null():
    books = create_books()
    assert apply_filters('title={0}'.format(RQL_NULL)) == books
    assert apply_filters('title=ne={0}'.format(RQL_NULL)) == []
Пример #14
0
def test_tuple_syntax_terms_not_fail(filter_string):
    books = create_books()
    assert apply_filters(filter_string) == books