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.assertTrue(self.user.is_authenticated)
|
||||
|
||||
|
||||
@patch.object(HepClient, 'fetch_eorders', return_value=VALID_TEACHERS_ORDERS)
|
||||
@patch.object(DjangoRemoteApp, 'authorize_access_token', return_value=TOKEN)
|
||||
@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.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(HepClient, 'user_details', return_value=ME_DATA)
|
||||
def test_user_with_unconfirmed_email_cannot_login(self, user_mock, authorize_mock, verified_mock):
|
||||
response = self._login('/api/oauth/authorize?code=1234')
|
||||
|
||||
User.objects.get(email=ME_DATA['email'])
|
||||
self.assertEqual(response.status_code, 302)
|
||||
self.assertEqual(response.url, f'/login-success?state={EMAIL_NOT_VERIFIED}')
|
||||
self.assertEqual(302, response.status_code)
|
||||
self.assertEqual(f'/login-success?state={EMAIL_NOT_VERIFIED}', response.url)
|
||||
|
||||
@patch.object(HepClient, 'fetch_eorders', return_value=[])
|
||||
@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.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(DjangoRemoteApp, 'authorize_access_token', return_value=TOKEN)
|
||||
@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)
|
||||
|
||||
# try:
|
||||
# if not hep_client.is_email_verified(user_data):
|
||||
# return user, EMAIL_NOT_VERIFIED
|
||||
# except HepClientException:
|
||||
# return user, UNKNOWN_ERROR
|
||||
try:
|
||||
if not hep_client.is_email_verified(user_data):
|
||||
return user, EMAIL_NOT_VERIFIED
|
||||
except HepClientException:
|
||||
return user, UNKNOWN_ERROR
|
||||
|
||||
license = License.objects.get_active_license_for_user(user)
|
||||
|
||||
|
|
|
|||
|
|
@ -12,13 +12,11 @@ import json
|
|||
from django.http import JsonResponse
|
||||
from django.views import View
|
||||
|
||||
from core.hep_client import HepClient, HepClientException
|
||||
|
||||
|
||||
class RegistrationProxyView(View):
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
hep_client = HepClient()
|
||||
data = json.loads(request.body)
|
||||
|
||||
if not self.terms_accepted(data):
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": 5,
|
||||
"email": "hans.meier@iterativ.ch",
|
||||
"email_verified_at": null,
|
||||
"email_verified_at": 123456789,
|
||||
"salutation": null,
|
||||
"company": null,
|
||||
"first_name": "Hans",
|
||||
|
|
|
|||
Loading…
Reference in New Issue