Example #1
0
    def testTagsView(self):
        db = new_test_database()
        tags = TagsView(db)

        alltags = tags.list_all_tags()
        self.assertEqual(set(t.name for t in alltags), set(TAGS.keys()))

        alltags = tags.list_all_tags_by_n_pages()
        self.assertEqual(set(t.name for t in alltags), set(TAGS.keys()))

        self.assertEqual(tags.n_list_all_tags(), len(TAGS))

        for name in TAGS:
            indextag = tags.lookup_by_tagname(name)
            self.assertEqual(indextag.name, name)
            pages = tags.list_pages(name)
            self.assertEqual([p.name for p in pages], TAGS[name])
            self.assertEqual(tags.n_list_pages(name), len(TAGS[name]))

        mytags = tags.list_tags(Path('Bar'))
        self.assertEqual([t.name for t in mytags], ['tag1', 'tag2'])
        self.assertEqual(tags.n_list_tags(Path('Bar')), 2)

        mytag = tags.lookup_by_tagname('tag1')
        mytags = tags.list_intersecting_tags([mytag])
        self.assertEqual([t.name for t in mytags], ['tag1', 'tag2'])

        with self.assertRaises(IndexNotFoundError):
            tags.list_pages('foooo')
Example #2
0
	def testTagsTreePathMethods(self):
		db = new_test_database()
		mockindex = tests.MockObject()
		mockindex._db = db
 		mockindex.update_iter = tests.MockObject()
 		mockindex.update_iter.pages = tests.MockObject()
 		mockindex.update_iter.tags = tests.MockObject()

		model = TagsTreeModelMixin(mockindex, tags=('tag1', 'tag2'))
		tags = TagsView(db)

		# Test all pages
		for name, treepath in TREEPATHS_TAGS_12:
			myiter = model.get_mytreeiter(treepath)
			self.assertEqual(myiter.row['name'], name)
			self.assertEqual(myiter.treepath, treepath)
			if len(treepath) == 1:
				tag = tags.lookup_by_tagname(name)
				my_treepaths = model.find_all(tag)
			else:
				my_treepaths = model.find_all(Path(name))

			self.assertIn(treepath, my_treepaths)
			for treepath in my_treepaths:
				myiter = model.get_mytreeiter(treepath)
				self.assertEqual(myiter.row['name'], name)

		# Test no more data than above
		treepaths = list(self.walk_treepaths(model))
		self.assertEqual(treepaths, list(TREEPATHS_TAGS_12))

		# Test non-existing
		p = model.get_mytreeiter((1, 2, 3, 4, 5))
		self.assertIsNone(p)
		self.assertRaises(IndexNotFoundError, model.find_all, Path('non-existing-page'))