This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
authentic2-auth-fc/tests/test_api.py

40 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
from authentic2_auth_fc.models import FcAccount
def test_api_fc_unlink(app, admin, user_cartman):
url = '/api/users/%s/fc-unlink/' % user_cartman.uuid
# test unauthorized caller
app.delete(url, status=401)
# test unauthorized method
app.authorization = ('Basic', (admin.username, admin.username))
app.get(url, status=405)
# test success
app.delete(url, status=204)
assert FcAccount.objects.filter(user=user_cartman).exists() is False
def test_api_user_franceconnect(settings, app, admin, user_cartman):
settings.A2_FC_ENABLE = True
url = '/api/users/%s/' % user_cartman.uuid
# test unauthorized method
app.authorization = ('Basic', (admin.username, admin.username))
response = app.get(url)
assert 'franceconnect' not in response.json
response = app.get(url + '?full')
assert 'franceconnect' in response.json, 'missing franceconnect field in user API'
content = response.json['franceconnect']
assert isinstance(content, dict), 'franceconnect field is not a dict'
assert content.get('linked') is True
assert content.get('link_url').startswith('http://')
assert content.get('link_url').endswith('/callback/')
assert content.get('unlink_url').startswith('http://')
assert content.get('unlink_url').endswith('/unlink/')
unlink_url = '/api/users/%s/fc-unlink/' % user_cartman.uuid
app.delete(unlink_url, status=204)
response = app.get(url + '?full')
assert response.json['franceconnect']['linked'] is False