Projet

Général

Profil

0001-matomo-manage-secondary-instances-37576.patch

Nicolas Roche, 12 novembre 2019 21:17

Télécharger (6,33 ko)

Voir les différences:

Subject: [PATCH] matomo: manage secondary instances (#37576)

 hobo/matomo/utils.py       |  7 +--
 tests/test_matomo_utils.py | 88 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 92 insertions(+), 3 deletions(-)
hobo/matomo/utils.py
89 89
def get_tenant_name_and_public_urls():
90 90
    """get an alias for our matomo's id and urls to monitor"""
91 91
    tenant_name = None
92
    services = [x for x in Combo.objects.all() if 'portal-user' in x.template_name]
92
    services = [x for x in Combo.objects.all()
93
                if 'portal-user' in x.template_name and not x.secondary]
93 94
    if services != [] and services[0] != '':
94 95
        tenant_name = urlparse.urlparse(services[0].base_url).netloc
95
    services += [x for x in Wcs.objects.all()]
96
    services += [x for x in Fargo.objects.all()]
96
    services += [x for x in Wcs.objects.all() if not x.secondary]
97
    services += [x for x in Fargo.objects.all() if not x.secondary]
97 98
    site_urls = [x.base_url for x in services if x.base_url != '']
98 99
    return tenant_name, site_urls
99 100

  
tests/test_matomo_utils.py
220 220
                         'https://wcs.dev.publik.love/',
221 221
                         'https://fargo.dev.publik.love/']
222 222

  
223
def test_get_tenant_name_and_public_urls_on_primary():
224
    Hobo.objects.create(base_url='https://hobo.ville1.love',
225
                        slug='hobo-ville1')
226
    Hobo.objects.create(base_url='https://hobo.ville2.love',
227
                        slug='hobo-ville2')
228
    Combo.objects.create(base_url='https://combo.agglo.love',
229
                         template_name='...portal-user...',
230
                         slug='portal')
231
    Combo.objects.create(base_url='https://combo.ville1.love',
232
                         template_name='...portal-user...',
233
                         slug='_hobo-ville1_portal',
234
                         secondary=True)
235
    Combo.objects.create(base_url='https://combo.ville2.love',
236
                         template_name='...portal-user...',
237
                         slug='_hobo-ville2_portal',
238
                         secondary=True)
239
    Combo.objects.create(base_url='https://agent-combo.agglo.love',
240
                         template_name='...portal-agent...',
241
                         slug='portal-agent')
242
    Combo.objects.create(base_url='https://agent-combo.ville1.love',
243
                         template_name='...portal-agent...',
244
                         slug='_hobo-ville1_portal-agent',
245
                         secondary=True)
246
    Combo.objects.create(base_url='https://agent-combo.ville2.love',
247
                         template_name='...portal-agent...',
248
                         slug='_hobo-ville2_portal-agent',
249
                         secondary=True)
250
    Wcs.objects.create(base_url='https://wcs.agglo.love',
251
                       slug='eservices')
252
    Wcs.objects.create(base_url='https://wcs.ville1.love',
253
                       slug='_hobo-ville1_eservices',
254
                       secondary=True)
255
    Wcs.objects.create(base_url='https://wcs.ville2.love',
256
                       slug='_hobo-ville2_eservices',
257
                       secondary=True)
258
    Fargo.objects.create(base_url='https://fargo.agglo.love',
259
                         slug='porte-doc')
260
    Fargo.objects.create(base_url='https://fargo.ville1.love',
261
                         slug='_hobo-ville1_porte-doc',
262
                         secondary=True)
263
    Fargo.objects.create(base_url='https://fargo.ville2.love',
264
                         slug='_hobo-ville2_porte-doc',
265
                         secondary=True)
266

  
267
    tenant_name, site_urls = get_tenant_name_and_public_urls()
268
    assert tenant_name == 'combo.agglo.love'
269
    assert site_urls == ['https://combo.agglo.love/',
270
                         'https://wcs.agglo.love/',
271
                         'https://fargo.agglo.love/']
272

  
273
def test_get_tenant_name_and_public_urls_on_secondary():
274
    Hobo.objects.create(base_url='https://hobo.agglo.love',
275
                        slug='_interco_hobo')
276
    Hobo.objects.create(base_url='https://hobo.ville1.love',
277
                        slug='_interco_hobo-ville1')
278
    Hobo.objects.create(base_url='https://hobo.ville2.love',
279
                        slug='_interco_hobo-ville2')
280
    Combo.objects.create(base_url='https://combo.agglo.love',
281
                         template_name='...portal-user...',
282
                         slug='_interco_portal',
283
                         secondary=True)
284
    Combo.objects.create(base_url='https://combo.ville2.love',
285
                         template_name='...portal-user...',
286
                         slug='portal')
287
    Combo.objects.create(base_url='https://agent-combo.agglo.love',
288
                         template_name='...portal-agent...',
289
                         slug='_interco_portal-agent',
290
                         secondary=True)
291
    Combo.objects.create(base_url='https://agent-combo.ville2.love',
292
                         template_name='...portal-agent...',
293
                         slug='portal-agent')
294
    Wcs.objects.create(base_url='https://wcs.agglo.love',
295
                       slug='_interco_eservices',
296
                       secondary=True)
297
    Wcs.objects.create(base_url='https://wcs.ville2.love',
298
                       slug='eservices')
299
    Fargo.objects.create(base_url='https://fargo.agglo.love',
300
                         slug='_interco_porte-doc',
301
                         secondary=True)
302
    Fargo.objects.create(base_url='https://fargo.ville2.love',
303
                         slug='porte-doc')
304

  
305
    tenant_name, site_urls = get_tenant_name_and_public_urls()
306
    assert tenant_name == 'combo.ville2.love'
307
    assert site_urls == ['https://combo.ville2.love/',
308
                         'https://wcs.ville2.love/',
309
                         'https://fargo.ville2.love/']
310

  
223 311
def test_matomo_constructor():
224 312
    """build the matomo webservice object"""
225 313
    with override_settings(MATOMO_SERVER=CONFIG):
226
-