def test_indexers_persons_get_es_documents_unpublished(self): """Unpublished persons should not be indexed""" PersonFactory() # The unpublished person should not get indexed self.assertEqual( list( PersonsIndexer.get_es_documents( index="some_index", action="some_action" ) ), [], )
def test_indexers_persons_get_es_documents_language_fallback(self): """Absolute urls should be computed as expected with language fallback.""" PersonFactory( page_title={ "fr": "ma première personne", }, should_publish=True, ) indexed_persons = list( PersonsIndexer.get_es_documents(index="some_index", action="some_action") ) self.assertEqual( indexed_persons[0]["absolute_url"], { "en": "/en/ma-premiere-personne/", "fr": "/fr/ma-premiere-personne/", }, )
def test_indexers_persons_get_es_documents(self, _mock_picture): """ Happy path: person data is fetched from the models properly formatted """ person1 = PersonFactory( fill_portrait=True, page_title={"en": "my first person", "fr": "ma première personne"}, should_publish=True, ) person2 = PersonFactory( page_title={"en": "my second person", "fr": "ma deuxième personne"}, should_publish=True, ) # Add a description in several languages to the first person placeholder = person1.public_extension.extended_object.placeholders.get( slot="bio" ) plugin_params = {"placeholder": placeholder, "plugin_type": "CKEditorPlugin"} add_plugin(body="english bio line 1.", language="en", **plugin_params) add_plugin(body="english bio line 2.", language="en", **plugin_params) add_plugin(body="texte français ligne 1.", language="fr", **plugin_params) add_plugin(body="texte français ligne 2.", language="fr", **plugin_params) # The results were properly formatted and passed to the consumer self.assertEqual( sorted( list( PersonsIndexer.get_es_documents( index="some_index", action="some_action" ) ), key=lambda p: p["_id"], ), [ { "_id": str(person1.public_extension.extended_object.id), "_index": "some_index", "_op_type": "some_action", "absolute_url": { "en": "/en/my-first-person/", "fr": "/fr/ma-premiere-personne/", }, "bio": { "en": "english bio line 1. english bio line 2.", "fr": "texte français ligne 1. texte français ligne 2.", }, "complete": { "en": ["my first person", "first person", "person"], "fr": ["ma première personne", "première personne", "personne"], }, "portrait": {"en": "portrait info", "fr": "portrait info"}, "title": {"en": "my first person", "fr": "ma première personne"}, "title_raw": { "en": "my first person", "fr": "ma première personne", }, }, { "_id": str(person2.public_extension.extended_object.id), "_index": "some_index", "_op_type": "some_action", "absolute_url": { "en": "/en/my-second-person/", "fr": "/fr/ma-deuxieme-personne/", }, "bio": {}, "complete": { "en": ["my second person", "second person", "person"], "fr": ["ma deuxième personne", "deuxième personne", "personne"], }, "portrait": {}, "title": {"en": "my second person", "fr": "ma deuxième personne"}, "title_raw": { "en": "my second person", "fr": "ma deuxième personne", }, }, ], )