matomo: add services urls on re-configuration (#37614)
This commit is contained in:
parent
53a4eb066e
commit
71dfae0ced
|
@ -178,9 +178,19 @@ class MatomoWS(object):
|
|||
raise MatomoException('get_site_id_from_site_url fails')
|
||||
return tag.text
|
||||
|
||||
def add_site(self, site_name, site_urls):
|
||||
def add_site(self, site_name):
|
||||
data = {'method': 'SitesManager.addSite',
|
||||
'siteName': site_name}
|
||||
tree = self.call(data)
|
||||
try:
|
||||
tag = tree.xpath('/result')[0]
|
||||
except IndexError:
|
||||
raise MatomoException('add_site fails')
|
||||
return tag.text
|
||||
|
||||
def add_site_alias_urls(self, id_site, site_urls):
|
||||
data = {'method': 'SitesManager.addSiteAliasUrls',
|
||||
'idSite': id_site}
|
||||
cpt = 0
|
||||
for url in site_urls:
|
||||
key = 'urls[%i]' % cpt
|
||||
|
@ -190,7 +200,7 @@ class MatomoWS(object):
|
|||
try:
|
||||
tag = tree.xpath('/result')[0]
|
||||
except IndexError:
|
||||
raise MatomoException('add_site fails')
|
||||
raise MatomoException('add_site_alias_urls fails')
|
||||
return tag.text
|
||||
|
||||
def add_user(self, user_login, password, initial_id_site):
|
||||
|
@ -247,9 +257,10 @@ def upgrade_site(matomo, tenant_name, site_urls):
|
|||
id_site = matomo.get_site_id_from_site_url(tenant_name)
|
||||
except MatomoError as exc:
|
||||
if str(exc) == 'url not found':
|
||||
id_site = matomo.add_site(tenant_name, site_urls)
|
||||
id_site = matomo.add_site(tenant_name)
|
||||
else:
|
||||
raise exc
|
||||
matomo.add_site_alias_urls(id_site, site_urls)
|
||||
return id_site
|
||||
|
||||
def upgrade_user(matomo, user_login, id_site):
|
||||
|
|
|
@ -87,6 +87,16 @@ ADD_SITE_BAD_RESPONSE = """<?xml version="1.0" encoding="utf-8" ?>
|
|||
<not_result>no result tag</not_result>
|
||||
"""
|
||||
|
||||
ADD_SITE_ALIAS_URLS_SUCCESS = """<?xml version="1.0" encoding="utf-8" ?>
|
||||
<result>1</result>
|
||||
"""
|
||||
|
||||
ADD_SITE_ALIAS_URLS_ERROR = """<?xml version="1.0" encoding="utf-8" ?>
|
||||
<result>
|
||||
<error message="Please specify a value for 'idSite'." />
|
||||
</result>
|
||||
"""
|
||||
|
||||
USER_ALREADY_THERE = """<?xml version="1.0" encoding="utf-8" ?>
|
||||
<result>
|
||||
<error message="Username 'hobo.dev.publik.love' already exists." />
|
||||
|
@ -352,15 +362,13 @@ def test_get_site_from_site_url(mocked_post):
|
|||
def test_add_site(mocked_post):
|
||||
"""webservice to add a new site"""
|
||||
mocked_post.return_value.status_code = 200
|
||||
urls = ['https://combo.dev.publik.love',
|
||||
'https://wcs.dev.publik.love']
|
||||
with override_settings(MATOMO_SERVER=CONFIG):
|
||||
matomo = MatomoWS()
|
||||
|
||||
# success
|
||||
content = ADD_SITE_SUCCESS
|
||||
mocked_post.return_value.content = content
|
||||
site_id = matomo.add_site("hobo.dev.publik.love", urls)
|
||||
site_id = matomo.add_site("hobo.dev.publik.love")
|
||||
assert site_id == '42'
|
||||
|
||||
# error
|
||||
|
@ -368,13 +376,41 @@ def test_add_site(mocked_post):
|
|||
mocked_post.return_value.content = content
|
||||
with pytest.raises(MatomoError,
|
||||
match="Please specify a value for 'siteName'."):
|
||||
site_id = matomo.add_site("hobo.dev.publik.love", urls)
|
||||
site_id = matomo.add_site("hobo.dev.publik.love")
|
||||
|
||||
# strange message
|
||||
content = ADD_SITE_BAD_RESPONSE
|
||||
mocked_post.return_value.content = content
|
||||
with pytest.raises(MatomoException, match='add_site fails'):
|
||||
site_id = matomo.add_site("hobo.dev.publik.love", urls)
|
||||
site_id = matomo.add_site("hobo.dev.publik.love")
|
||||
|
||||
@mock.patch('requests.post')
|
||||
def test_add_site_alias_url(mocked_post):
|
||||
"""webservice to add a new site"""
|
||||
mocked_post.return_value.status_code = 200
|
||||
urls = ['https://combo.dev.publik.love',
|
||||
'https://wcs.dev.publik.love']
|
||||
with override_settings(MATOMO_SERVER=CONFIG):
|
||||
matomo = MatomoWS()
|
||||
|
||||
# success
|
||||
content = ADD_SITE_ALIAS_URLS_SUCCESS
|
||||
mocked_post.return_value.content = content
|
||||
site_id = matomo.add_site_alias_urls('42', urls)
|
||||
assert site_id == '1'
|
||||
|
||||
# error
|
||||
content = ADD_SITE_ALIAS_URLS_ERROR
|
||||
mocked_post.return_value.content = content
|
||||
with pytest.raises(MatomoError,
|
||||
match="Please specify a value for 'idSite'."):
|
||||
site_id = matomo.add_site_alias_urls(None, urls)
|
||||
|
||||
# strange message
|
||||
content = ADD_SITE_BAD_RESPONSE
|
||||
mocked_post.return_value.content = content
|
||||
with pytest.raises(MatomoException, match='add_site_alias_urls fails'):
|
||||
site_id = matomo.add_site_alias_urls('42', urls)
|
||||
|
||||
@mock.patch('requests.post')
|
||||
def test_add_user(mocked_post):
|
||||
|
@ -525,17 +561,23 @@ def test_upgrade_site(mocked_post):
|
|||
matomo = MatomoWS()
|
||||
|
||||
# site not already here
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS]
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS, ADD_SITE_ALIAS_URLS_SUCCESS]
|
||||
mocked_post.side_effect = requests_post_mocked_replies(contents)
|
||||
site_id = upgrade_site(matomo, "hobo.dev.publik.love", urls)
|
||||
assert site_id == '42'
|
||||
|
||||
# site already here
|
||||
contents = [GET_SITE_42_FROM_URL]
|
||||
contents = [GET_SITE_42_FROM_URL, ADD_SITE_ALIAS_URLS_SUCCESS]
|
||||
mocked_post.side_effect = requests_post_mocked_replies(contents)
|
||||
site_id = upgrade_site(matomo, "hobo.dev.publik.love", urls)
|
||||
assert site_id == '42'
|
||||
|
||||
# error while updating urls
|
||||
contents = [GET_SITE_42_FROM_URL, ADD_SITE_ALIAS_URLS_ERROR]
|
||||
mocked_post.side_effect = requests_post_mocked_replies(contents)
|
||||
with pytest.raises(MatomoException):
|
||||
upgrade_site(matomo, "hobo.dev.publik.love", urls)
|
||||
|
||||
# error while adding new site
|
||||
contents = [GET_NO_SITE_FROM_URL, MATOMO_ERROR]
|
||||
mocked_post.side_effect = requests_post_mocked_replies(contents)
|
||||
|
@ -663,7 +705,7 @@ def test_auto_configure_matomo(mocked_post):
|
|||
Fargo.objects.create(base_url='https://fargo.dev.publik.love')
|
||||
|
||||
with override_settings(MATOMO_SERVER=CONFIG):
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS,
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS, ADD_SITE_ALIAS_URLS_SUCCESS,
|
||||
DEL_UNKNOWN_USER, MATOMO_SUCCESS,
|
||||
JAVASCRIPT_TAG, PING_SUCCESS]
|
||||
mocked_post.side_effect = requests_post_mocked_replies(contents)
|
||||
|
@ -696,7 +738,7 @@ def test_auto_configure_matomo_error(mocked_post):
|
|||
Fargo.objects.create(base_url='https://fargo.dev.publik.love')
|
||||
|
||||
with override_settings(MATOMO_SERVER=CONFIG):
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS,
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS, ADD_SITE_ALIAS_URLS_SUCCESS,
|
||||
DEL_UNKNOWN_USER, MATOMO_SUCCESS,
|
||||
JAVASCRIPT_TAG_BAD_RESPONSE]
|
||||
mocked_post.side_effect = requests_post_mocked_replies(contents)
|
||||
|
|
|
@ -28,6 +28,10 @@ ADD_SITE_SUCCESS = """<?xml version="1.0" encoding="utf-8" ?>
|
|||
<result>42</result>
|
||||
"""
|
||||
|
||||
ADD_SITE_ALIAS_URLS_SUCCESS = """<?xml version="1.0" encoding="utf-8" ?>
|
||||
<result>1</result>
|
||||
"""
|
||||
|
||||
DEL_UNKNOWN_USER = """<?xml version="1.0" encoding="utf-8" ?>
|
||||
<result>
|
||||
<error message="User 'hobo.dev.publik.love' doesn't exist." />
|
||||
|
@ -161,7 +165,7 @@ def test_enable_auto(mocked_post, admin_user):
|
|||
Wcs.objects.create(base_url='https://wcs.dev.publik.love')
|
||||
Fargo.objects.create(base_url='https://fargo.dev.publik.love')
|
||||
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS,
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS, ADD_SITE_ALIAS_URLS_SUCCESS,
|
||||
DEL_UNKNOWN_USER, MATOMO_SUCCESS,
|
||||
JAVASCRIPT_TAG, PING_SUCCESS]
|
||||
|
||||
|
@ -185,7 +189,7 @@ def test_enable_auto_warning(mocked_post, admin_user):
|
|||
Wcs.objects.create(base_url='https://wcs.dev.publik.love')
|
||||
Fargo.objects.create(base_url='https://fargo.dev.publik.love')
|
||||
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS,
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS, ADD_SITE_ALIAS_URLS_SUCCESS,
|
||||
DEL_UNKNOWN_USER, MATOMO_SUCCESS,
|
||||
JAVASCRIPT_TAG, PING_ERROR]
|
||||
|
||||
|
@ -212,7 +216,7 @@ def test_enable_auto_error(mocked_post, admin_user):
|
|||
Wcs.objects.create(base_url='https://wcs.dev.publik.love')
|
||||
Fargo.objects.create(base_url='https://fargo.dev.publik.love')
|
||||
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS,
|
||||
contents = [GET_NO_SITE_FROM_URL, ADD_SITE_SUCCESS, ADD_SITE_ALIAS_URLS_SUCCESS,
|
||||
DEL_UNKNOWN_USER, MATOMO_SUCCESS,
|
||||
JAVASCRIPT_TAG_BAD_RESPONSE]
|
||||
|
||||
|
|
Loading…
Reference in New Issue