def assert_finds(self, query, books): """Takes a query and tests against books expected to be found.""" tree = etree.fromstring( self.client.get('/opds/search/?%s' % query).content) elem_ids = tree.findall('.//%s/%s' % (AtomNS('entry'), AtomNS('id'))) slugs = [WLURI(elem.text).slug for elem in elem_ids] self.assertEqual(set(slugs), set(b.slug for b in books), u"OPDS search '%s' failed." % query)