tests: add some new statistics tests (#73770)
This commit is contained in:
parent
b32d5edfd5
commit
ad0f4413d3
|
@ -563,6 +563,23 @@ def test_statistics_forms_count_subfilters(pub, formdef):
|
|||
new_resp = get_app(pub).get(sign_uri('/api/statistics/forms/count/?form=%s' % formdef.url_name))
|
||||
assert new_resp.json == resp.json
|
||||
|
||||
# add items field inside block field, it should not appear
|
||||
items_field = fields.ItemsField(
|
||||
id='2',
|
||||
varname='items',
|
||||
label='Block items',
|
||||
type='items',
|
||||
items=['foo', 'bar', 'baz'],
|
||||
anonymise=False,
|
||||
display_locations=['statistics'],
|
||||
)
|
||||
formdef.fields[2].block.fields.append(bool_field)
|
||||
formdef.store()
|
||||
formdata.data['4'] = {'data': [{'2': ['bar']}]}
|
||||
formdata.store()
|
||||
new_resp = get_app(pub).get(sign_uri('/api/statistics/forms/count/?form=%s' % formdef.url_name))
|
||||
assert new_resp.json == resp.json
|
||||
|
||||
# remove fields and statuses
|
||||
workflow = Workflow(name='Empty wf')
|
||||
workflow.store()
|
||||
|
@ -587,7 +604,7 @@ def test_statistics_forms_count_subfilters_query(pub, formdef):
|
|||
formdata.data['1'] = True
|
||||
formdata.data['2'] = 'foo'
|
||||
formdata.data['3'] = ['bar', 'baz']
|
||||
formdata.data['4'] = {'data': [{'1': True}]}
|
||||
formdata.data['4'] = {'data': [{'1': True}, {'1': False}]}
|
||||
elif i % 2:
|
||||
formdata.data['1'] = False
|
||||
formdata.data['2'] = 'baz'
|
||||
|
@ -646,7 +663,7 @@ def test_statistics_forms_count_subfilters_query(pub, formdef):
|
|||
assert resp.json['data']['series'][0]['data'][0] == 13
|
||||
|
||||
resp = get_app(pub).get(sign_uri(url + '&filter-blockdata_bool=false'))
|
||||
assert resp.json['data']['series'][0]['data'][0] == 3
|
||||
assert resp.json['data']['series'][0]['data'][0] == 16
|
||||
|
||||
# filter on status
|
||||
resp = get_app(pub).get(sign_uri(url + '&filter-status=_all'))
|
||||
|
@ -718,6 +735,25 @@ def test_statistics_forms_count_subfilters_query_same_varname(pub, formdef):
|
|||
assert resp.json['data']['series'] == [{'data': [], 'label': 'Forms Count'}]
|
||||
|
||||
|
||||
def test_statistics_forms_count_subfilters_query_integer_items(pub, formdef):
|
||||
for i in range(10):
|
||||
formdata = formdef.data_class()()
|
||||
formdata.just_created()
|
||||
if i % 2:
|
||||
formdata.data['3'] = ['1', '2']
|
||||
else:
|
||||
formdata.data['3'] = ['1']
|
||||
formdata.receipt_time = datetime.datetime(2021, 1, 1, 0, 0).timetuple()
|
||||
formdata.store()
|
||||
|
||||
url = '/api/statistics/forms/count/?form=%s' % formdef.url_name
|
||||
resp = get_app(pub).get(sign_uri(url + '&filter-test-items=1'))
|
||||
assert resp.json['data']['series'][0]['data'][0] == 10
|
||||
|
||||
resp = get_app(pub).get(sign_uri(url + '&filter-test-items=2'))
|
||||
assert resp.json['data']['series'][0]['data'][0] == 5
|
||||
|
||||
|
||||
@pytest.mark.parametrize('anonymise', [False, True])
|
||||
def test_statistics_forms_count_group_by(pub, formdef, anonymise):
|
||||
for i in range(20):
|
||||
|
|
Loading…
Reference in New Issue