87 |
87 |
<not_result>no result tag</not_result>
|
88 |
88 |
"""
|
89 |
89 |
|
|
90 |
ADD_SITE_ALIAS_URLS_SUCCESS = """<?xml version="1.0" encoding="utf-8" ?>
|
|
91 |
<result>1</result>
|
|
92 |
"""
|
|
93 |
|
|
94 |
ADD_SITE_ALIAS_URLS_ERROR = """<?xml version="1.0" encoding="utf-8" ?>
|
|
95 |
<result>
|
|
96 |
<error message="Merci de specifier une valeur pour idSite" />
|
|
97 |
</result>
|
|
98 |
"""
|
|
99 |
|
90 |
100 |
USER_ALREADY_THERE = """<?xml version="1.0" encoding="utf-8" ?>
|
91 |
101 |
<result>
|
92 |
102 |
<error message="Username 'hobo.dev.publik.love' already exists." />
|
... | ... | |
220 |
230 |
'https://wcs.dev.publik.love/',
|
221 |
231 |
'https://fargo.dev.publik.love/']
|
222 |
232 |
|
|
233 |
def test_get_tenant_name_and_public_urls_on_primary():
|
|
234 |
Hobo.objects.create(base_url='https://hobo.ville1.love',
|
|
235 |
slug='hobo-ville1')
|
|
236 |
Hobo.objects.create(base_url='https://hobo.ville2.love',
|
|
237 |
slug='hobo-ville2')
|
|
238 |
Combo.objects.create(base_url='https://combo.agglo.love',
|
|
239 |
template_name='...portal-user...',
|
|
240 |
slug='portal')
|
|
241 |
Combo.objects.create(base_url='https://combo.ville1.love',
|
|
242 |
template_name='...portal-user...',
|
|
243 |
slug='_hobo-ville1_portal',
|
|
244 |
secondary=True)
|
|
245 |
Combo.objects.create(base_url='https://combo.ville2.love',
|
|
246 |
template_name='...portal-user...',
|
|
247 |
slug='_hobo-ville2_portal',
|
|
248 |
secondary=True)
|
|
249 |
Combo.objects.create(base_url='https://agent-combo.agglo.love',
|
|
250 |
template_name='...portal-agent...',
|
|
251 |
slug='portal-agent')
|
|
252 |
Combo.objects.create(base_url='https://agent-combo.ville1.love',
|
|
253 |
template_name='...portal-agent...',
|
|
254 |
slug='_hobo-ville1_portal-agent',
|
|
255 |
secondary=True)
|
|
256 |
Combo.objects.create(base_url='https://agent-combo.ville2.love',
|
|
257 |
template_name='...portal-agent...',
|
|
258 |
slug='_hobo-ville2_portal-agent',
|
|
259 |
secondary=True)
|
|
260 |
Wcs.objects.create(base_url='https://wcs.agglo.love',
|
|
261 |
slug='eservices')
|
|
262 |
Wcs.objects.create(base_url='https://wcs.ville1.love',
|
|
263 |
slug='_hobo-ville1_eservices',
|
|
264 |
secondary=True)
|
|
265 |
Wcs.objects.create(base_url='https://wcs.ville2.love',
|
|
266 |
slug='_hobo-ville2_eservices',
|
|
267 |
secondary=True)
|
|
268 |
Fargo.objects.create(base_url='https://fargo.agglo.love',
|
|
269 |
slug='porte-doc')
|
|
270 |
Fargo.objects.create(base_url='https://fargo.ville1.love',
|
|
271 |
slug='_hobo-ville1_porte-doc',
|
|
272 |
secondary=True)
|
|
273 |
Fargo.objects.create(base_url='https://fargo.ville2.love',
|
|
274 |
slug='_hobo-ville2_porte-doc',
|
|
275 |
secondary=True)
|
|
276 |
|
|
277 |
tenant_name, site_urls = get_tenant_name_and_public_urls()
|
|
278 |
assert tenant_name == 'combo.agglo.love'
|
|
279 |
assert site_urls == ['https://combo.agglo.love/',
|
|
280 |
'https://wcs.agglo.love/',
|
|
281 |
'https://fargo.agglo.love/']
|
|
282 |
|
|
283 |
def test_get_tenant_name_and_public_urls_on_secondary():
|
|
284 |
Hobo.objects.create(base_url='https://hobo.agglo.love',
|
|
285 |
slug='_interco_hobo')
|
|
286 |
Hobo.objects.create(base_url='https://hobo.ville1.love',
|
|
287 |
slug='_interco_hobo-ville1')
|
|
288 |
Hobo.objects.create(base_url='https://hobo.ville2.love',
|
|
289 |
slug='_interco_hobo-ville2')
|
|
290 |
Combo.objects.create(base_url='https://combo.agglo.love',
|
|
291 |
template_name='...portal-user...',
|
|
292 |
slug='_interco_portal',
|
|
293 |
secondary=True)
|
|
294 |
Combo.objects.create(base_url='https://combo.ville2.love',
|
|
295 |
template_name='...portal-user...',
|
|
296 |
slug='portal')
|
|
297 |
Combo.objects.create(base_url='https://agent-combo.agglo.love',
|
|
298 |
template_name='...portal-agent...',
|
|
299 |
slug='_interco_portal-agent',
|
|
300 |
secondary=True)
|
|
301 |
Combo.objects.create(base_url='https://agent-combo.ville2.love',
|
|
302 |
template_name='...portal-agent...',
|
|
303 |
slug='portal-agent')
|
|
304 |
Wcs.objects.create(base_url='https://wcs.agglo.love',
|
|
305 |
slug='_interco_eservices',
|
|
306 |
secondary=True)
|
|
307 |
Wcs.objects.create(base_url='https://wcs.ville2.love',
|
|
308 |
slug='eservices')
|
|
309 |
Fargo.objects.create(base_url='https://fargo.agglo.love',
|
|
310 |
slug='_interco_porte-doc',
|
|
311 |
secondary=True)
|
|
312 |
Fargo.objects.create(base_url='https://fargo.ville2.love',
|
|
313 |
slug='porte-doc')
|
|
314 |
|
|
315 |
tenant_name, site_urls = get_tenant_name_and_public_urls()
|
|
316 |
assert tenant_name == 'combo.ville2.love'
|
|
317 |
assert site_urls == ['https://combo.ville2.love/',
|
|
318 |
'https://wcs.ville2.love/',
|
|
319 |
'https://fargo.ville2.love/']
|
|
320 |
|
223 |
321 |
def test_matomo_constructor():
|
224 |
322 |
"""build the matomo webservice object"""
|
225 |
323 |
with override_settings(MATOMO_SERVER=CONFIG):
|
... | ... | |
352 |
450 |
def test_add_site(mocked_post):
|
353 |
451 |
"""webservice to add a new site"""
|
354 |
452 |
mocked_post.return_value.status_code = 200
|
355 |
|
urls = ['https://combo.dev.publik.love',
|
356 |
|
'https://wcs.dev.publik.love']
|
357 |
453 |
with override_settings(MATOMO_SERVER=CONFIG):
|
358 |
454 |
matomo = MatomoWS()
|
359 |
455 |
|
360 |
456 |
# success
|
361 |
457 |
content = ADD_SITE_SUCCESS
|
362 |
458 |
mocked_post.return_value.content = content
|
363 |
|
site_id = matomo.add_site("hobo.dev.publik.love", urls)
|
|
459 |
site_id = matomo.add_site("hobo.dev.publik.love")
|
364 |
460 |
assert site_id == '42'
|
365 |
461 |
|
366 |
462 |
# error
|
... | ... | |
368 |
464 |
mocked_post.return_value.content = content
|
369 |
465 |
with pytest.raises(MatomoError,
|
370 |
466 |
match="Please specify a value for 'siteName'."):
|
371 |
|
site_id = matomo.add_site("hobo.dev.publik.love", urls)
|
|
467 |
site_id = matomo.add_site("hobo.dev.publik.love")
|
372 |
468 |
|
373 |
469 |
# strange message
|
374 |
470 |
content = ADD_SITE_BAD_RESPONSE
|
375 |
471 |
mocked_post.return_value.content = content
|
376 |
472 |
with pytest.raises(MatomoException, match='add_site fails'):
|
377 |
|
site_id = matomo.add_site("hobo.dev.publik.love", urls)
|
|
473 |
site_id = matomo.add_site("hobo.dev.publik.love")
|
|
474 |
|
|
475 |
@mock.patch('requests.post')
|
|
476 |
def test_add_site_alias_url(mocked_post):
|
|
477 |
"""webservice to add a new site"""
|
|
478 |
mocked_post.return_value.status_code = 200
|
|
479 |
urls = ['https://combo.dev.publik.love',
|
|
480 |
'https://wcs.dev.publik.love']
|
|
481 |
with override_settings(MATOMO_SERVER=CONFIG):
|
|
482 |
matomo = MatomoWS()
|
|
483 |
|
|
484 |
# success
|
|
485 |
content = ADD_SITE_ALIAS_URLS_SUCCESS
|
|
486 |
mocked_post.return_value.content = content
|
|
487 |
site_id = matomo.add_site_alias_urls('42', urls)
|
|
488 |
assert site_id == '1'
|
|
489 |
|
|
490 |
# error
|
|
491 |
content = ADD_SITE_ALIAS_URLS_ERROR
|
|
492 |
mocked_post.return_value.content = content
|
|
493 |
with pytest.raises(MatomoError,
|
|
494 |
match="Merci de specifier une valeur pour idSite"):
|
|
495 |
site_id = matomo.add_site_alias_urls(None, urls)
|
|
496 |
|
|
497 |
# strange message
|
|
498 |
content = ADD_SITE_BAD_RESPONSE
|
|
499 |
mocked_post.return_value.content = content
|
|
500 |
with pytest.raises(MatomoException, match='add_site_alias_urls fails'):
|
|
501 |
site_id = matomo.add_site_alias_urls('42', urls)
|
378 |
502 |
|
379 |
503 |
@mock.patch('requests.post')
|
380 |
504 |
def test_add_user(mocked_post):
|
... | ... | |
525 |
649 |
matomo = MatomoWS()
|
526 |
650 |
|
527 |
651 |
# site not already here
|
528 |
|
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS]
|
|
652 |
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS, ADD_SITE_ALIAS_URLS_SUCCESS]
|
529 |
653 |
mocked_post.side_effect = requests_post_mocked_replies(contents)
|
530 |
654 |
site_id = upgrade_site(matomo, "hobo.dev.publik.love", urls)
|
531 |
655 |
assert site_id == '42'
|
532 |
656 |
|
533 |
657 |
# site already here
|
534 |
|
contents = [GET_SITE_42_FROM_URL]
|
|
658 |
contents = [GET_SITE_42_FROM_URL, ADD_SITE_ALIAS_URLS_SUCCESS]
|
535 |
659 |
mocked_post.side_effect = requests_post_mocked_replies(contents)
|
536 |
660 |
site_id = upgrade_site(matomo, "hobo.dev.publik.love", urls)
|
537 |
661 |
assert site_id == '42'
|
538 |
662 |
|
|
663 |
# error while updating urls
|
|
664 |
contents = [GET_SITE_42_FROM_URL, ADD_SITE_ALIAS_URLS_ERROR]
|
|
665 |
mocked_post.side_effect = requests_post_mocked_replies(contents)
|
|
666 |
with pytest.raises(MatomoException):
|
|
667 |
upgrade_site(matomo, "hobo.dev.publik.love", urls)
|
|
668 |
|
539 |
669 |
# error while adding new site
|
540 |
670 |
contents = [GET_NO_SITE_FROM_URL, MATOMO_ERROR]
|
541 |
671 |
mocked_post.side_effect = requests_post_mocked_replies(contents)
|
... | ... | |
663 |
793 |
Fargo.objects.create(base_url='https://fargo.dev.publik.love')
|
664 |
794 |
|
665 |
795 |
with override_settings(MATOMO_SERVER=CONFIG):
|
666 |
|
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS,
|
|
796 |
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS, ADD_SITE_ALIAS_URLS_SUCCESS,
|
667 |
797 |
DEL_UNKNOWN_USER, MATOMO_SUCCESS,
|
668 |
798 |
JAVASCRIPT_TAG, PING_SUCCESS]
|
669 |
799 |
mocked_post.side_effect = requests_post_mocked_replies(contents)
|
... | ... | |
696 |
826 |
Fargo.objects.create(base_url='https://fargo.dev.publik.love')
|
697 |
827 |
|
698 |
828 |
with override_settings(MATOMO_SERVER=CONFIG):
|
699 |
|
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS,
|
|
829 |
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS, ADD_SITE_ALIAS_URLS_SUCCESS,
|
700 |
830 |
DEL_UNKNOWN_USER, MATOMO_SUCCESS,
|
701 |
831 |
JAVASCRIPT_TAG_BAD_RESPONSE]
|
702 |
832 |
mocked_post.side_effect = requests_post_mocked_replies(contents)
|