def test_search_description_with_html(self): """ If the description contains HTML, searching should still find words next to HTML tags. """ self._rebuild_index() results = search.auto_query('blahblah') self.assertTrue(results)
def test_search_exclude_terms(self): """ Search should exclude terms that start with - (hyphen). """ self._rebuild_index() results = search.auto_query('-blender') self.assertTrue(results) for result in results: self.assertFalse('blender' in result.text.lower())
def test_search_phrase(self): """ Phrases in quotes should be searched for as a phrase. """ self._rebuild_index() results = search.auto_query('"empty mapping"') self.assertTrue(results) for result in results: self.assertTrue('empty mapping' in result.text.lower())
def test_search(self): """ The basic query should return videos which contain the search term. """ self._rebuild_index() results = search.auto_query('blender') self.assertTrue(results) for result in results: self.assertTrue('blender' in result.text.lower(), result.text)
def test_search_or(self): """ Terms bracketed in {}s should be ORed together. """ self._rebuild_index() results = search.auto_query('{elephant render}') self.assertTrue(results) for result in results: self.assertTrue(('elephant' in result.text.lower()) or ('render' in result.text.lower()), result.text)
def test_search_or_and(self): """ Mixing OR and AND should work as expected. """ self._rebuild_index() results = search.auto_query('{import repair} -and') self.assertTrue(results) for result in results: self.assertFalse('and' in result.text.lower(), result.text) self.assertTrue(('import' in result.text.lower()) or ('repair' in result.text.lower()), result.text)
def search(self): self.clean() sqs = self.searchqueryset.models(models.Video) sqs = search.auto_query(self.cleaned_data['q'], sqs) return sqs
def search(self, query): return [result.object for result in search.auto_query(query)]