tests: fix overly-confident references to object identifiers (#43916)
This commit is contained in:
parent
5134fba117
commit
d13df9f38f
|
@ -372,20 +372,21 @@ def test_chartng_cell_view(app, normal_user):
|
|||
cell = ChartNgCell(page=page, order=1, placeholder='content')
|
||||
cell.data_reference = 'plop:example'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/') # get data in cache
|
||||
location = '/api/dataviz/graph/%s/' % cell.id
|
||||
resp = app.get(location) # get data in cache
|
||||
resp = app.get('/')
|
||||
assert 'min-height: 250px' in resp.text
|
||||
assert '/api/dataviz/graph/1/' in resp.text
|
||||
assert location in resp.text
|
||||
|
||||
resp = app.get('/api/dataviz/graph/1/?width=400')
|
||||
resp = app.get(location + '?width=400')
|
||||
assert resp.content_type == 'image/svg+xml'
|
||||
|
||||
resp = app.get('/api/dataviz/graph/1/?width=') # no crash
|
||||
resp = app.get(location + '?width=') # no crash
|
||||
assert resp.content_type == 'image/svg+xml'
|
||||
|
||||
page.public = False
|
||||
page.save()
|
||||
resp = app.get('/api/dataviz/graph/1/?width=400', status=403)
|
||||
resp = app.get(location + '?width=400', status=403)
|
||||
|
||||
page.public = True
|
||||
page.save()
|
||||
|
@ -394,14 +395,14 @@ def test_chartng_cell_view(app, normal_user):
|
|||
cell.public = False
|
||||
cell.groups.set([group])
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/?width=400', status=403)
|
||||
resp = app.get(location + '?width=400', status=403)
|
||||
|
||||
app = login(app, username='normal-user', password='normal-user')
|
||||
resp = app.get('/api/dataviz/graph/1/?width=400', status=403)
|
||||
resp = app.get(location + '?width=400', status=403)
|
||||
|
||||
normal_user.groups.set([group])
|
||||
normal_user.save()
|
||||
resp = app.get('/api/dataviz/graph/1/?width=400', status=200)
|
||||
resp = app.get(location + '?width=400', status=200)
|
||||
|
||||
# table visualization
|
||||
cell.chart_type = 'table'
|
||||
|
@ -412,20 +413,20 @@ def test_chartng_cell_view(app, normal_user):
|
|||
# unsupported dataset
|
||||
cell.data_reference = 'plop:seventh'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/') # get data in cache
|
||||
resp = app.get(location) # get data in cache
|
||||
resp = app.get('/')
|
||||
assert 'Unsupported dataset' in resp.text
|
||||
|
||||
cell.chart_type = 'bar'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/?width=400', status=200)
|
||||
resp = app.get(location + '?width=400', status=200)
|
||||
assert 'Unsupported dataset' in resp.text
|
||||
|
||||
# durations
|
||||
cell.data_reference = 'plop:eighth'
|
||||
cell.chart_type = 'table'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/') # get data in cache
|
||||
resp = app.get(location) # get data in cache
|
||||
resp = app.get('/')
|
||||
assert '<td>Less than an hour</td>' in resp.text
|
||||
assert '<td>1 day and 10 hours</td>' in resp.text
|
||||
|
@ -434,7 +435,7 @@ def test_chartng_cell_view(app, normal_user):
|
|||
|
||||
cell.chart_type = 'bar'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/?width=400', status=200)
|
||||
resp = app.get(location + '?width=400', status=200)
|
||||
assert '>Less than an hour<' in resp.text
|
||||
assert '>1 day and 10 hours<' in resp.text
|
||||
assert '>2 hours<' in resp.text
|
||||
|
@ -444,19 +445,19 @@ def test_chartng_cell_view(app, normal_user):
|
|||
cell.data_reference = 'plop:tenth'
|
||||
cell.chart_type = 'table'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/') # get data in cache
|
||||
resp = app.get(location) # get data in cache
|
||||
resp = app.get('/')
|
||||
assert '<td>10.0%</td>' in resp.text
|
||||
|
||||
cell.chart_type = 'bar'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/?width=400', status=200)
|
||||
resp = app.get(location + '?width=400', status=200)
|
||||
assert '>10.0%<' in resp.text
|
||||
|
||||
# deleted visualization
|
||||
cell.data_reference = 'plop:eleventh'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/')
|
||||
resp = app.get(location)
|
||||
assert 'not found' in resp.text
|
||||
|
||||
# cell with missing cached_json (probably after import and missing
|
||||
|
@ -511,32 +512,33 @@ def test_table_cell(app, admin_user):
|
|||
cell.data_reference = 'plop:example'
|
||||
cell.chart_type = 'table'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/')
|
||||
location = '/api/dataviz/graph/%s/' % cell.id
|
||||
resp = app.get(location)
|
||||
resp = app.get('/')
|
||||
assert resp.text.count('Total') == 1
|
||||
|
||||
cell.data_reference = 'plop:second'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/')
|
||||
resp = app.get(location)
|
||||
resp = app.get('/')
|
||||
assert resp.text.count('Total') == 1
|
||||
|
||||
cell.data_reference = 'plop:third'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/')
|
||||
resp = app.get(location)
|
||||
resp = app.get('/')
|
||||
assert '114' in resp.text
|
||||
assert resp.text.count('Total') == 2
|
||||
|
||||
cell.data_reference = 'plop:fourth'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/')
|
||||
resp = app.get(location)
|
||||
resp = app.get('/')
|
||||
assert resp.text.count('Total') == 0
|
||||
|
||||
# total of durations is not computed
|
||||
cell.data_reference = 'plop:eigth'
|
||||
cell.save()
|
||||
resp = app.get('/api/dataviz/graph/1/')
|
||||
resp = app.get(location)
|
||||
resp = app.get('/')
|
||||
assert resp.text.count('Total') == 0
|
||||
|
|
|
@ -741,14 +741,14 @@ def test_add_edit_cell(app, admin_user):
|
|||
cells = CellBase.get_cells(page_id=page.id)
|
||||
assert len(cells) == 1
|
||||
assert isinstance(cells[0], TextCell)
|
||||
assert resp.location.endswith('/manage/pages/1/#cell-%s' % cells[0].get_reference())
|
||||
assert resp.location.endswith('/manage/pages/%s/#cell-%s' % (page.id, cells[0].get_reference()))
|
||||
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
assert ('data-cell-reference="%s"' % cells[0].get_reference()) in resp.text
|
||||
resp.forms[0]['c%s-text' % cells[0].get_reference()].value = 'Hello world'
|
||||
resp = resp.forms[0].submit()
|
||||
assert resp.status_int == 302
|
||||
assert resp.location.endswith('/manage/pages/1/#cell-%s' % cells[0].get_reference())
|
||||
assert resp.location.endswith('/manage/pages/%s/#cell-%s' % (page.id, cells[0].get_reference()))
|
||||
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
assert resp.forms[0]['c%s-text' % cells[0].get_reference()].value == 'Hello world'
|
||||
|
@ -1669,12 +1669,13 @@ def test_page_versionning(app, admin_user):
|
|||
# check with asynchronous cells
|
||||
resp = app.get('/manage/pages/%s/add-cell-to-content/data_jsoncell/default/' % page.id)
|
||||
resp = resp.follow()
|
||||
resp.forms[3]['cdata_jsoncell-1-template_string'].value = 'A{{json.data.0.text}}B'
|
||||
resp.forms[3]['cdata_jsoncell-1-url'].value = 'http://example.com'
|
||||
cell_id = JsonCell.objects.last().id
|
||||
resp.forms[3]['cdata_jsoncell-%s-template_string' % cell_id].value = 'A{{json.data.0.text}}B'
|
||||
resp.forms[3]['cdata_jsoncell-%s-url' % cell_id].value = 'http://example.com'
|
||||
resp = resp.forms[3].submit().follow()
|
||||
assert PageSnapshot.objects.all().count() == 5 # add + change
|
||||
|
||||
resp.forms[3]['cdata_jsoncell-1-template_string'].value = 'C{{json.data.0.text}}D'
|
||||
resp.forms[3]['cdata_jsoncell-%s-template_string' % cell_id].value = 'C{{json.data.0.text}}D'
|
||||
resp = resp.forms[3].submit().follow()
|
||||
assert PageSnapshot.objects.all().count() == 6
|
||||
|
||||
|
@ -1762,16 +1763,17 @@ def test_json_cell_syntax_validation(app, admin_user):
|
|||
# syntax error
|
||||
resp = app.get('/manage/pages/%s/add-cell-to-content/data_jsoncell/default/' % page.id)
|
||||
resp = resp.follow()
|
||||
resp.forms[0]['cdata_jsoncell-1-template_string'].value = '{% syntax|error %}'
|
||||
resp.forms[0]['cdata_jsoncell-1-url'].value = 'http://example.com'
|
||||
cell_id = JsonCell.objects.last().id
|
||||
resp.forms[0]['cdata_jsoncell-%s-template_string' % cell_id].value = '{% syntax|error %}'
|
||||
resp.forms[0]['cdata_jsoncell-%s-url' % cell_id].value = 'http://example.com'
|
||||
resp = resp.forms[0].submit()
|
||||
assert 'syntax error: Invalid block tag' in resp.text
|
||||
assert JsonCell.objects.count() == 1
|
||||
assert JsonCell.objects.first().template_string is None
|
||||
# valid syntax
|
||||
resp = app.get('/manage/pages/%s/' % page.id)
|
||||
resp.forms[0]['cdata_jsoncell-1-template_string'].value = '{{ ok }}'
|
||||
resp.forms[0]['cdata_jsoncell-1-url'].value = 'http://example.com'
|
||||
resp.forms[0]['cdata_jsoncell-%s-template_string' % cell_id].value = '{{ ok }}'
|
||||
resp.forms[0]['cdata_jsoncell-%s-url' % cell_id].value = 'http://example.com'
|
||||
resp = resp.forms[0].submit().follow()
|
||||
assert 'syntax error' not in resp.text
|
||||
assert JsonCell.objects.count() == 1
|
||||
|
|
|
@ -146,7 +146,7 @@ def test_cell_rendering(app, layer, tiles_layer):
|
|||
assert 'data-max-zoom="19"' in rendered
|
||||
assert 'data-init-lat="48.83369263315934"' in rendered
|
||||
assert 'data-init-lng="2.3233688436448574"' in rendered
|
||||
assert '/ajax/mapcell/geojson/1/%s/' % layer.slug in rendered
|
||||
assert '/ajax/mapcell/geojson/%s/%s/' % (cell.id, layer.slug) in rendered
|
||||
assert 'data-group-markers="1"' not in rendered
|
||||
resp = app.get('/test_map_cell/')
|
||||
assert 'xstatic/leaflet.js' in resp.text
|
||||
|
|
|
@ -146,24 +146,26 @@ def test_notification_cell(app, john_doe, jane_doe):
|
|||
|
||||
app = login_app(app, username='jane.doe', password='jane.doe')
|
||||
resp = app.get('/api/menu-badges/?page[]=%s' % page.id)
|
||||
assert resp.json == {'1': {'badge': '1'}}
|
||||
assert resp.json == {'{}'.format(page.id): {'badge': '1'}}
|
||||
|
||||
|
||||
def test_notification_ws(john_doe):
|
||||
|
||||
def notify(data, check_id, count):
|
||||
def notify(data, count, check_id=None):
|
||||
resp = client.post(reverse('api-notification-add'), json.dumps(data),
|
||||
content_type='application/json')
|
||||
assert resp.status_code == 200
|
||||
result = json.loads(force_text(resp.content))
|
||||
assert result == {'data': {'id': check_id}, 'err': 0}
|
||||
assert result['err'] == 0
|
||||
if 'id' in data:
|
||||
assert check_id is not None and result['data']['id'] == check_id
|
||||
assert Notification.objects.filter(user=john_doe).count() == count
|
||||
return Notification.objects.find(john_doe, check_id).get()
|
||||
return Notification.objects.filter(user=john_doe).order_by('id').last()
|
||||
|
||||
login(john_doe)
|
||||
notify({'summary': 'foo'}, '1', 1)
|
||||
notify({'summary': 'bar'}, '2', 2)
|
||||
notify({'summary': 'bar', 'id': 'ns:noti3'}, 'ns:noti3', 3)
|
||||
notify({'summary': 'foo'}, 1)
|
||||
notify({'summary': 'bar'}, 2)
|
||||
notify({'summary': 'bar', 'id': 'ns:noti3'}, 3, check_id='ns:noti3')
|
||||
notif = {
|
||||
'summary': 'bar',
|
||||
'url': 'http://www.example.net',
|
||||
|
@ -172,7 +174,7 @@ def test_notification_ws(john_doe):
|
|||
'start_timestamp': '2016-11-11T11:11',
|
||||
'end_timestamp': '2016-12-12T12:12',
|
||||
}
|
||||
result = notify(notif, '4', 4)
|
||||
result = notify(notif, 4)
|
||||
assert result.summary == notif['summary']
|
||||
assert result.url == notif['url']
|
||||
assert result.body == notif['body']
|
||||
|
@ -182,23 +184,24 @@ def test_notification_ws(john_doe):
|
|||
|
||||
del notif['end_timestamp']
|
||||
notif['duration'] = 3600
|
||||
result = notify(notif, '5', 5)
|
||||
result = notify(notif, 5)
|
||||
assert result.end_timestamp.isoformat()[:19] == '2016-11-11T12:11:00'
|
||||
|
||||
notif['duration'] = '3600'
|
||||
result = notify(notif, '6', 6)
|
||||
result = notify(notif, 6)
|
||||
assert result.end_timestamp.isoformat()[:19] == '2016-11-11T12:11:00'
|
||||
|
||||
resp = client.get(reverse('api-notification-ack', kwargs={'notification_id': '6'}))
|
||||
notif_id = Notification.objects.order_by('id').last().id
|
||||
resp = client.get(reverse('api-notification-ack', kwargs={'notification_id': '%s' % notif_id}))
|
||||
assert resp.status_code == 200
|
||||
assert Notification.objects.filter(acked=True).count() == 1
|
||||
assert Notification.objects.filter(acked=True).get().public_id == '6'
|
||||
assert Notification.objects.filter(acked=True).get().public_id == '%s' % notif_id
|
||||
|
||||
resp = client.get(reverse('api-notification-forget', kwargs={'notification_id': '5'}))
|
||||
resp = client.get(reverse('api-notification-forget', kwargs={'notification_id': '%s' % (notif_id - 1)}))
|
||||
assert resp.status_code == 200
|
||||
assert Notification.objects.filter(acked=True).count() == 2
|
||||
notif = Notification.objects.find(john_doe, '5').get()
|
||||
assert notif.public_id == '5'
|
||||
notif = Notification.objects.find(john_doe, '%s' % (notif_id - 1)).get()
|
||||
assert notif.public_id == '%s' % (notif_id - 1)
|
||||
assert notif.acked is True
|
||||
assert notif.end_timestamp < now()
|
||||
|
||||
|
@ -206,12 +209,12 @@ def test_notification_ws(john_doe):
|
|||
assert resp.status_code == 200
|
||||
assert json.loads(force_text(resp.content))['new'] == 3
|
||||
assert json.loads(force_text(resp.content))['total'] == 3
|
||||
resp = client.get(reverse('api-notification-ack', kwargs={'notification_id': '1'}))
|
||||
resp = client.get(reverse('api-notification-ack', kwargs={'notification_id': '%s' % (notif_id - 5)}))
|
||||
resp = client.get(reverse('api-notification-count'))
|
||||
assert resp.status_code == 200
|
||||
assert json.loads(force_text(resp.content))['new'] == 2
|
||||
assert json.loads(force_text(resp.content))['total'] == 3
|
||||
resp = client.get(reverse('api-notification-forget', kwargs={'notification_id': '1'}))
|
||||
resp = client.get(reverse('api-notification-forget', kwargs={'notification_id': '%s' % (notif_id - 5)}))
|
||||
resp = client.get(reverse('api-notification-count'))
|
||||
assert resp.status_code == 200
|
||||
assert json.loads(force_text(resp.content))['new'] == 2
|
||||
|
|
Loading…
Reference in New Issue