api: remove deprecated statistics from API listing (#86177) #247
|
@ -1642,7 +1642,7 @@ class StatisticsAPI(ViewSet):
|
|||
filters.append(group_by_filter)
|
||||
deprecated = False
|
||||
else:
|
||||
deprecated = True
|
||||
continue # stop listing deprecated statistics (#86177)
|
||||
yweber marked this conversation as resolved
Outdated
|
||||
|
||||
yweber marked this conversation as resolved
Outdated
vdeniaud
commented
On peut enlever cette ligne commentée On peut enlever cette ligne commentée
|
||||
filters.extend(self.get_additional_filters(action.filters))
|
||||
data = {
|
||||
|
|
|
@ -33,13 +33,12 @@ User = get_user_model()
|
|||
def test_api_statistics_list(app, admin):
|
||||
yweber marked this conversation as resolved
Outdated
vdeniaud
commented
Plus besoin de renommer le test Plus besoin de renommer le test
|
||||
headers = basic_authorization_header(admin)
|
||||
resp = app.get('/api/statistics/', headers=headers)
|
||||
assert len(resp.json['data']) == 8
|
||||
login_stats = {
|
||||
'name': 'Login count by authentication type',
|
||||
'url': 'https://testserver/api/statistics/login/',
|
||||
'id': 'login',
|
||||
assert len(resp.json['data']) == 2
|
||||
login_new = {
|
||||
'deprecated': False,
|
||||
'filters': [
|
||||
{
|
||||
'default': 'month',
|
||||
'id': 'time_interval',
|
||||
'label': 'Time interval',
|
||||
'options': [
|
||||
|
@ -48,19 +47,27 @@ def test_api_statistics_list(app, admin):
|
|||
{'id': 'year', 'label': 'Year'},
|
||||
],
|
||||
'required': True,
|
||||
'default': 'month',
|
||||
},
|
||||
{'id': 'service', 'label': 'Service', 'options': []},
|
||||
{
|
||||
'has_subfilters': True,
|
||||
'id': 'group_by',
|
||||
'label': 'Group by',
|
||||
'options': [
|
||||
{'id': 'authentication_type', 'label': 'Authentication type'},
|
||||
{'id': 'service', 'label': 'Service'},
|
||||
{'id': 'service_ou', 'label': 'Organizational unit'},
|
||||
],
|
||||
},
|
||||
],
|
||||
'deprecated': True,
|
||||
'id': 'login-new',
|
||||
'name': 'Login count',
|
||||
'url': 'https://testserver/api/statistics/login_new/',
|
||||
}
|
||||
assert login_stats in resp.json['data']
|
||||
assert {
|
||||
'name': 'Login count by service',
|
||||
'url': 'https://testserver/api/statistics/service_login/',
|
||||
'id': 'service-login',
|
||||
register_new = {
|
||||
'deprecated': False,
|
||||
'filters': [
|
||||
{
|
||||
'default': 'month',
|
||||
'id': 'time_interval',
|
||||
'label': 'Time interval',
|
||||
'options': [
|
||||
|
@ -69,56 +76,26 @@ def test_api_statistics_list(app, admin):
|
|||
{'id': 'year', 'label': 'Year'},
|
||||
],
|
||||
'required': True,
|
||||
'default': 'month',
|
||||
},
|
||||
{
|
||||
'has_subfilters': True,
|
||||
'id': 'group_by',
|
||||
'label': 'Group by',
|
||||
'options': [
|
||||
{'id': 'authentication_type', 'label': 'Authentication type'},
|
||||
{'id': 'service', 'label': 'Service'},
|
||||
{'id': 'service_ou', 'label': 'Organizational unit'},
|
||||
],
|
||||
},
|
||||
],
|
||||
'deprecated': True,
|
||||
} in resp.json['data']
|
||||
|
||||
service = Service.objects.create(name='Service1', slug='service1', ou=get_default_ou())
|
||||
service = Service.objects.create(name='Service2', slug='service2', ou=get_default_ou())
|
||||
login_stats['filters'][1]['options'].append({'id': 'service1 default', 'label': 'Service1'})
|
||||
login_stats['filters'][1]['options'].append({'id': 'service2 default', 'label': 'Service2'})
|
||||
|
||||
resp = app.get('/api/statistics/', headers=headers)
|
||||
assert login_stats == resp.json['data'][0]
|
||||
|
||||
# adding second ou doesn't change anything
|
||||
ou = OU.objects.create(name='Second OU', slug='second')
|
||||
resp = app.get('/api/statistics/', headers=headers)
|
||||
assert login_stats in resp.json['data']
|
||||
|
||||
# if there are services in two differents OUs, filter is shown
|
||||
service.ou = ou
|
||||
service.save()
|
||||
login_stats['filters'][1]['options'][1]['id'] = 'service2 second'
|
||||
login_stats['filters'].append(
|
||||
{
|
||||
'id': 'services_ou',
|
||||
'label': 'Services organizational unit',
|
||||
'options': [
|
||||
{'id': 'default', 'label': 'Default organizational unit'},
|
||||
{'id': 'second', 'label': 'Second OU'},
|
||||
],
|
||||
}
|
||||
)
|
||||
resp = app.get('/api/statistics/', headers=headers)
|
||||
assert login_stats in resp.json['data']
|
||||
|
||||
# same goes with users
|
||||
User.objects.create(username='john.doe', email='john.doe@example.com', ou=ou)
|
||||
login_stats['filters'].append(
|
||||
{
|
||||
'id': 'users_ou',
|
||||
'label': 'Users organizational unit',
|
||||
'options': [
|
||||
{'id': 'default', 'label': 'Default organizational unit'},
|
||||
{'id': 'second', 'label': 'Second OU'},
|
||||
],
|
||||
}
|
||||
)
|
||||
resp = app.get('/api/statistics/', headers=headers)
|
||||
assert login_stats in resp.json['data']
|
||||
'id': 'registration-new',
|
||||
'name': 'Registration count',
|
||||
'url': 'https://testserver/api/statistics/registration_new/',
|
||||
}
|
||||
assert login_new in resp.json['data']
|
||||
assert register_new in resp.json['data']
|
||||
actions_id = {elt['id'] for elt in resp.json['data']}
|
||||
assert {'login-new', 'registration-new'} == actions_id
|
||||
|
||||
|
||||
def test_api_statistics_list_new(app, admin):
|
||||
|
|
Loading…
Reference in New Issue
Pour moi on se passer de ce nouveau paramètre, je ne vois pas d'usage où il serait utile (d'autant plus que l'API pour lister les stats est commune à toutes les briques, on ne peut pas passer un paramètre à une seule facilement)