]> git.phdru.name Git - m_librarian.git/blob - tests/test_search.py
7fdf9fe136f2e51af3dab30dc5ab8dc41dbb42cf
[m_librarian.git] / tests / test_search.py
1 # coding: utf-8
2
3 from tests import TestCase
4 from m_librarian.db import Author, Book
5 from m_librarian.search import mk_search_conditions, \
6     search_authors, search_books
7
8
9 class TestSearch(TestCase):
10     def test_search_authors(self):
11         self.import_inpx('test.inpx')
12         self.assertEqual(
13             search_authors('full', True, {'surname': u'Друг'}).count(), 1)
14         self.assertEqual(
15             search_authors('start', True, {'surname': u'Друг'}).count(), 2)
16         self.assertEqual(
17             search_authors('substring', True, {'surname': u'Друг'}).count(), 2)
18         self.assertEqual(
19             search_authors('substring', False, {'surname': u'друг'}).count(),
20             3)
21
22         join_expressions = []
23         join_expressions.append(Book.j.authors)
24         conditions = mk_search_conditions(
25             Author, 'start', False, {'surname': u'друг'})
26         join_expressions.extend(conditions)
27         self.assertEqual(
28             search_books('start', False,
29                          {'title': u'тест'}, join_expressions).count(),
30             2)