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