Fix oauth tests
This commit is contained in:
parent
2c771e5a97
commit
c71d8fd6e5
|
|
@ -73,7 +73,6 @@ class LoginTests(TestCase):
|
||||||
self.assertEqual(user.email, ME_DATA['email'])
|
self.assertEqual(user.email, ME_DATA['email'])
|
||||||
self.assertTrue(self.user.is_authenticated)
|
self.assertTrue(self.user.is_authenticated)
|
||||||
|
|
||||||
|
|
||||||
@patch.object(HepClient, 'fetch_eorders', return_value=VALID_TEACHERS_ORDERS)
|
@patch.object(HepClient, 'fetch_eorders', return_value=VALID_TEACHERS_ORDERS)
|
||||||
@patch.object(DjangoRemoteApp, 'authorize_access_token', return_value=TOKEN)
|
@patch.object(DjangoRemoteApp, 'authorize_access_token', return_value=TOKEN)
|
||||||
@patch.object(HepClient, 'user_details', return_value=ME_DATA)
|
@patch.object(HepClient, 'user_details', return_value=ME_DATA)
|
||||||
|
|
@ -119,15 +118,15 @@ class LoginTests(TestCase):
|
||||||
self.assertEqual(response.url, '/login-success?state=success')
|
self.assertEqual(response.url, '/login-success?state=success')
|
||||||
self.assertTrue(self.user.is_authenticated)
|
self.assertTrue(self.user.is_authenticated)
|
||||||
|
|
||||||
@patch.object(HepClient, 'fetch_eorders', return_value=VALID_STUDENT_ORDERS)
|
@patch.object(HepClient, 'is_email_verified', return_value=False)
|
||||||
@patch.object(DjangoRemoteApp, 'authorize_access_token', return_value=TOKEN)
|
@patch.object(DjangoRemoteApp, 'authorize_access_token', return_value=TOKEN)
|
||||||
@patch.object(HepClient, 'user_details', return_value=ME_DATA)
|
@patch.object(HepClient, 'user_details', return_value=ME_DATA)
|
||||||
def test_user_with_unconfirmed_email_cannot_login(self, user_mock, authorize_mock, verified_mock):
|
def test_user_with_unconfirmed_email_cannot_login(self, user_mock, authorize_mock, verified_mock):
|
||||||
response = self._login('/api/oauth/authorize?code=1234')
|
response = self._login('/api/oauth/authorize?code=1234')
|
||||||
|
|
||||||
User.objects.get(email=ME_DATA['email'])
|
User.objects.get(email=ME_DATA['email'])
|
||||||
self.assertEqual(response.status_code, 302)
|
self.assertEqual(302, response.status_code)
|
||||||
self.assertEqual(response.url, f'/login-success?state={EMAIL_NOT_VERIFIED}')
|
self.assertEqual(f'/login-success?state={EMAIL_NOT_VERIFIED}', response.url)
|
||||||
|
|
||||||
@patch.object(HepClient, 'fetch_eorders', return_value=[])
|
@patch.object(HepClient, 'fetch_eorders', return_value=[])
|
||||||
@patch.object(DjangoRemoteApp, 'authorize_access_token', return_value=TOKEN)
|
@patch.object(DjangoRemoteApp, 'authorize_access_token', return_value=TOKEN)
|
||||||
|
|
@ -160,30 +159,6 @@ class LoginTests(TestCase):
|
||||||
self.assertEqual(response.status_code, 302)
|
self.assertEqual(response.status_code, 302)
|
||||||
self.assertEqual(response.url, f'/login-success?state={UNKNOWN_ERROR}')
|
self.assertEqual(response.url, f'/login-success?state={UNKNOWN_ERROR}')
|
||||||
|
|
||||||
|
|
||||||
def test_user_data_is_synced_on_login(self, user_mock, authorize_mock):
|
|
||||||
|
|
||||||
old_mail = 'aschi@iterativ.ch'
|
|
||||||
|
|
||||||
self.user.hep_id = ME_DATA['id']
|
|
||||||
self.user.email = old_mail
|
|
||||||
self.user.username = old_mail
|
|
||||||
self.user.save()
|
|
||||||
|
|
||||||
now = timezone.now()
|
|
||||||
expiry_date = now + timedelta(365)
|
|
||||||
LicenseFactory(expire_date=expiry_date, licensee=self.user, for_role=self.teacher_role).save()
|
|
||||||
|
|
||||||
response = self._login('/api/oauth/authorize?code=1234')
|
|
||||||
user = User.objects.get(hep_id=self.user.hep_id)
|
|
||||||
|
|
||||||
self.assertEqual(response.status_code, 302)
|
|
||||||
self.assertEqual(response.url, '/login-success?state=success')
|
|
||||||
self.assertEqual(user.username, ME_DATA['email'])
|
|
||||||
self.assertEqual(user.email, ME_DATA['email'])
|
|
||||||
self.assertTrue(self.user.is_authenticated)
|
|
||||||
|
|
||||||
|
|
||||||
@patch.object(HepClient, 'fetch_eorders', return_value=VALID_TEACHERS_ORDERS)
|
@patch.object(HepClient, 'fetch_eorders', return_value=VALID_TEACHERS_ORDERS)
|
||||||
@patch.object(DjangoRemoteApp, 'authorize_access_token', return_value=TOKEN)
|
@patch.object(DjangoRemoteApp, 'authorize_access_token', return_value=TOKEN)
|
||||||
@patch.object(HepClient, 'user_details', return_value=NEW_ME_DATA)
|
@patch.object(HepClient, 'user_details', return_value=NEW_ME_DATA)
|
||||||
|
|
|
||||||
|
|
@ -14,11 +14,11 @@ def handle_user_and_verify_products(user_data, token):
|
||||||
|
|
||||||
user = User.objects.get_or_create_hep_user(user_data)
|
user = User.objects.get_or_create_hep_user(user_data)
|
||||||
|
|
||||||
# try:
|
try:
|
||||||
# if not hep_client.is_email_verified(user_data):
|
if not hep_client.is_email_verified(user_data):
|
||||||
# return user, EMAIL_NOT_VERIFIED
|
return user, EMAIL_NOT_VERIFIED
|
||||||
# except HepClientException:
|
except HepClientException:
|
||||||
# return user, UNKNOWN_ERROR
|
return user, UNKNOWN_ERROR
|
||||||
|
|
||||||
license = License.objects.get_active_license_for_user(user)
|
license = License.objects.get_active_license_for_user(user)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,13 +12,11 @@ import json
|
||||||
from django.http import JsonResponse
|
from django.http import JsonResponse
|
||||||
from django.views import View
|
from django.views import View
|
||||||
|
|
||||||
from core.hep_client import HepClient, HepClientException
|
|
||||||
|
|
||||||
|
|
||||||
class RegistrationProxyView(View):
|
class RegistrationProxyView(View):
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
hep_client = HepClient()
|
|
||||||
data = json.loads(request.body)
|
data = json.loads(request.body)
|
||||||
|
|
||||||
if not self.terms_accepted(data):
|
if not self.terms_accepted(data):
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": 5,
|
"id": 5,
|
||||||
"email": "hans.meier@iterativ.ch",
|
"email": "hans.meier@iterativ.ch",
|
||||||
"email_verified_at": null,
|
"email_verified_at": 123456789,
|
||||||
"salutation": null,
|
"salutation": null,
|
||||||
"company": null,
|
"company": null,
|
||||||
"first_name": "Hans",
|
"first_name": "Hans",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue