Projet

Général

Profil

0001-profile-register-users-search-engine-26261.patch

Frédéric Péters, 01 janvier 2019 14:13

Télécharger (2,69 ko)

Voir les différences:

Subject: [PATCH] profile: register users search engine (#26261)

 combo/profile/__init__.py | 26 ++++++++++++++++++++++++++
 tests/test_search.py      | 13 +++++++++++++
 2 files changed, 39 insertions(+)
combo/profile/__init__.py
23 23
    name = 'combo.profile'
24 24
    verbose_name = _('Profile')
25 25

  
26
    def ready(self):
27
        from combo.apps.search import engines
28
        engines.register(self.get_search_engines)
29

  
30
    def get_search_engines(self):
31
        from combo.data.models import Page
32
        from django.conf import settings
33

  
34
        user_page = Page.objects.filter(sub_slug__contains='<name_id>').first()
35
        if not user_page:
36
            return
37
        user_page_base_url = user_page.get_online_url()
38

  
39
        for key, service in settings.KNOWN_SERVICES.get('authentic', {}).items():
40
            return {
41
                'users': {
42
                    'url': service['url'] + 'api/users/?q=%(q)s',
43
                    'label': _('Users'),
44
                    'signature': True,
45
                    'data_key': 'results',
46
                    'hit_url_template': user_page_base_url + '{{uuid}}/',
47
                    'hit_label_template': '{{first_name}} {{last_name}}',
48
                    'hit_description_template': '{% if city %}{{ address|default:"" }} {{ city }}{% endif %}'
49
                }
50
            }
51

  
26 52
default_app_config = 'combo.profile.AppConfig'
tests/test_search.py
373 373
        search_engines = engines.get_engines()
374 374
        assert 'tracking-code' not in search_engines.keys()
375 375
        assert len([x for x in search_engines.keys() if x.startswith('formdata:')]) == 0
376

  
377

  
378
def test_profile_search_engines(app):
379
    search_engines = engines.get_engines()
380
    assert 'users' not in search_engines.keys()
381
    with override_settings(KNOWN_SERVICES={'authentic': {'default': {'title': 'authentic', 'url': 'https://authentic/'}}}):
382
        search_engines = engines.get_engines()
383
        assert 'users' not in search_engines.keys()
384

  
385
        page = Page(slug='users', title='Users', sub_slug='(?P<name_id>[a-z0-9]+)')
386
        page.save()
387
        search_engines = engines.get_engines()
388
        assert 'users' in search_engines.keys()
376
-