diff --git a/members/tests.py b/members/tests.py index d2d6bb4..622fbf6 100644 --- a/members/tests.py +++ b/members/tests.py @@ -2,8 +2,11 @@ from django.test import TestCase, Client from django.contrib.auth.models import User - +from members.management.commands.createsahkopiikkiuser import Command as SahkopiikkiCommand from members.models import Member +from rest_framework.authtoken.models import Token + +import logging class MemberRegisterTestCase(TestCase): @@ -18,6 +21,9 @@ class MemberRegisterTestCase(TestCase): self.c = Client() self.c.login(username=username, password=password) + sc = SahkopiikkiCommand() + sc.handle() + def test_member_created(self): """Test member creation.""" exists = Member.objects.filter(first_name="Tidus").exists() @@ -50,3 +56,34 @@ class MemberRegisterTestCase(TestCase): response = self.c.get('/members/member-autocomplete?q={}'.format(search_terms), follow=True) results = response.json()['results'] self.assertEqual(len(results), 0) + + def test_sahkopiikki_check_by_email_not_found(self): + """Test if sähköpiikki auth and search work""" + email = 'teppo@tulppu.fi' + wrong_email = 'asd@asd.fi' + Member.objects.create(email=email, first_name='Teppo', last_name='Tulppu') + token = Token.objects.get(user__username='sahkopiikki').key + self.c.defaults['HTTP_AUTHORIZATION'] = 'Token ' + token + + response = self.c.get('/members/check?email={}'.format(wrong_email), follow=True) + self.assertEqual(response.json()['exists'], False) + + def test_sahkopiikki_check_by_email_found(self): + """Test if sähköpiikki auth and search work""" + email = 'teppo@tulppu.fi' + Member.objects.create(email=email, first_name='Teppo', last_name='Tulppu') + token = Token.objects.get(user__username='sahkopiikki').key + self.c.defaults['HTTP_AUTHORIZATION'] = 'Token ' + token + + response = self.c.get('/members/check?email={}'.format(email), follow=True) + self.assertEqual(response.json()['exists'], True) + + def test_sahkopiikki_check_by_email_forbidden(self): + """Test if sähköpiikki auth and search work""" + email = 'teppo@tulppu.fi' + Member.objects.create(email=email, first_name='Teppo', last_name='Tulppu') + token = Token.objects.get(user__username='sahkopiikki').key + self.c.defaults['HTTP_AUTHORIZATION'] = 'Token ' + token + 'DERP' + + response = self.c.get('/members/check?email={}'.format(email), follow=True) + self.assertEqual(response.status_code, 401)