def load_test_data(self): self.reset_index() # Create a test database testa = models.SearchTest() testa.title = "Hello World" testa.save() testa.subobjects.create(name='A subobject') self.backend.add(testa) self.testa = testa testb = models.SearchTest() testb.title = "Hello" testb.live = True testb.save() self.backend.add(testb) self.testb = testb testc = models.SearchTestChild() testc.title = "Hello" testc.live = True testc.content = "Hello" testc.subtitle = "Foo" testc.save() self.backend.add(testc) self.testc = testc testd = models.SearchTestChild() testd.title = "World" testd.subtitle = "Foo" testd.save() self.backend.add(testd) self.testd = testd self.refresh_index()
def load_test_data(self): # Reset the index self.backend.reset_index() self.backend.add_type(models.SearchTest) self.backend.add_type(models.SearchTestChild) # Create a test database testa = models.SearchTest() testa.title = "Hello World" testa.save() self.backend.add(testa) self.testa = testa testb = models.SearchTest() testb.title = "Hello" testb.live = True testb.save() self.backend.add(testb) self.testb = testb testc = models.SearchTestChild() testc.title = "Hello" testc.live = True testc.save() self.backend.add(testc) self.testc = testc testd = models.SearchTestChild() testd.title = "World" testd.save() self.backend.add(testd) self.testd = testd # Refresh the index self.backend.refresh_index()
def setUp(self): # Create ES mapping self.es_mapping = Elasticsearch2SearchBackend.mapping_class(models.SearchTestChild) # Create ES document self.obj = models.SearchTestChild(title="Hello", subtitle="World", page_id=1) self.obj.save() self.obj.tags.add("a tag")
def test_gets_specific_class(self): obj = models.SearchTestChild( title="Hello", live=True, ) obj.save() # Running the command with the parent class should find the specific class again indexed_instance = index.get_indexed_instance(obj.searchtest_ptr) self.assertEqual(indexed_instance, obj)
def test_blocks_not_in_indexed_objects(self): obj = models.SearchTestChild( title="Don't index me!", live=True, ) obj.save() # We've told it not to index anything with the title "Don't index me" # get_indexed_instance should return None indexed_instance = index.get_indexed_instance(obj.searchtest_ptr) self.assertEqual(indexed_instance, None)
def setUp(self): # Import using a try-catch block to prevent crashes if the elasticsearch-py # module is not installed try: from wagtail.wagtailsearch.backends.elasticsearch import ElasticSearchMapping from elasticsearch.serializer import JSONSerializer except ImportError: raise unittest.SkipTest("elasticsearch-py not installed") self.JSONSerializer = JSONSerializer # Create ES mapping self.es_mapping = ElasticSearchMapping(models.SearchTestChild) # Create ES document self.obj = models.SearchTestChild(title="Hello", subtitle="World") self.obj.save()
def test_child_partial_search(self): # Reset the index self.reset_index() self.backend.add_type(models.SearchTest) self.backend.add_type(models.SearchTestChild) obj = models.SearchTestChild() obj.title = "WorldHello" obj.subtitle = "HelloWorld" obj.live = True obj.save() self.backend.add(obj) # Refresh the index self.refresh_index() # Search and check results = self.backend.search("HelloW", models.SearchTest.objects.all()) self.assertEqual(len(results), 1) self.assertEqual(results[0].id, obj.id)