11
13
from softwarecenter.db.database import StoreDatabase
12
14
from softwarecenter.db.pkginfo import get_pkg_info
13
from softwarecenter.db.categories import CategoriesParser, get_category_by_name
15
from softwarecenter.db.categories import (
16
CategoriesParser, RecommendedForYouCategory,
17
get_category_by_name, get_query_for_category)
18
from softwarecenter.testutils import (get_test_db,
19
make_recommender_agent_recommend_top_dict)
21
class TestCategories(unittest.TestCase):
24
self.db = get_test_db()
26
@patch('softwarecenter.db.categories.RecommenderAgent')
27
def test_recommends_category(self, AgentMockCls):
28
# ensure we use the same instance in test and code
29
agent_mock_instance = AgentMockCls.return_value
30
recommends_cat = RecommendedForYouCategory()
31
docids = recommends_cat.get_documents(self.db)
32
self.assertEqual(docids, [])
33
self.assertTrue(agent_mock_instance.query_recommend_top.called)
34
# ensure we get a query when the callback is called
35
recommends_cat._recommend_top_result(
37
make_recommender_agent_recommend_top_dict())
38
self.assertNotEqual(recommends_cat.get_documents(self.db), [])
40
def test_get_query(self):
41
query = get_query_for_category(self.db, "Education")
42
self.assertNotEqual(query, None)
16
44
class TestCatParsing(unittest.TestCase):
17
45
""" tests the "where is it in the menu" code """
26
54
self.catview = CategoriesParser(self.db)
27
55
self.catview.db = self.db
28
self.cats = self.catview.parse_applications_menu('/usr/share/app-install')
56
self.cats = self.catview.parse_applications_menu(
57
'/usr/share/app-install')
30
59
def test_get_cat_by_name(self):
31
60
cat = get_category_by_name(self.cats, 'Games')
37
66
cat = get_category_by_name(self.cats, 'Featured')
38
67
self.assertEqual(cat.flags[0], 'carousel-only')
69
def test_get_documents(self):
70
cat = get_category_by_name(self.cats, 'Featured')
71
docs = cat.get_documents(self.db)
72
self.assertNotEqual(docs, [])
74
self.assertEqual(type(doc), xapian.Document)
41
77
if __name__ == "__main__":