solis: do not crash on unlinked name_id (#19438)
This commit is contained in:
parent
25daecbd0c
commit
2027118345
|
@ -100,7 +100,10 @@ class Solis(BaseResource):
|
|||
return {'data': {'deleted': True}}
|
||||
|
||||
def apa_infos(self, endpoint, name_id):
|
||||
apa_link = SolisAPALink.objects.get(resource=self, name_id=name_id)
|
||||
try:
|
||||
apa_link = SolisAPALink.objects.get(resource=self, name_id=name_id)
|
||||
except SolisAPALink.DoesNotExist:
|
||||
raise APIError('unlinked name_id')
|
||||
token = self.get_apa_token(apa_link.user_id, apa_link.code)
|
||||
endpoint = 'asg/apa/' + endpoint + '/' + token
|
||||
response = self.request(endpoint)
|
||||
|
|
|
@ -144,6 +144,14 @@ def test_solis_link_infos_unlink(app, solis):
|
|||
assert not resp.json['data']
|
||||
assert resp.json['err_desc'].startswith('unknown error status:500')
|
||||
|
||||
# unlinked name_id
|
||||
endpoint = utils.generic_endpoint_url('solis', apa_endpoint, slug=solis.slug)
|
||||
endpoint += '?name_id=unlinked'
|
||||
resp = app.get(endpoint, status=200)
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'unlinked name_id'
|
||||
assert resp.json['data'] is None
|
||||
|
||||
# unlink
|
||||
endpoint = utils.generic_endpoint_url('solis', 'apa-unlink', slug=solis.slug)
|
||||
resp = app.get(endpoint, status=400) # missing name_id
|
||||
|
@ -155,8 +163,16 @@ def test_solis_link_infos_unlink(app, solis):
|
|||
assert resp.json['data'] == {'deleted': True}
|
||||
assert SolisAPALink.objects.count() == 0
|
||||
|
||||
# get informations from unlinked user
|
||||
# unlink again, no trouble
|
||||
resp = app.get(endpoint, status=200)
|
||||
assert resp.json['err'] == 0
|
||||
assert resp.json['data'] == {'deleted': True}
|
||||
assert SolisAPALink.objects.count() == 0
|
||||
|
||||
# can not get informations from unlinked user
|
||||
endpoint = utils.generic_endpoint_url('solis', 'apa-user-info', slug=solis.slug)
|
||||
endpoint += '?name_id=%s' % NAMEID
|
||||
resp = app.get(endpoint, status=404)
|
||||
resp = app.get(endpoint, status=200)
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'unlinked name_id'
|
||||
assert resp.json['data'] is None
|
||||
|
|
Loading…
Reference in New Issue