Fix e2e tests (allow BetaLogin endpoint, add licenses)

This commit is contained in:
Christian Cueni 2021-05-27 13:39:01 +02:00
parent a2df6ff7bd
commit 050ca414a8
4 changed files with 31 additions and 7 deletions

View File

@ -12,7 +12,6 @@ from wagtail.core.models import Page
from books.factories import BookFactory, TopicFactory, ModuleFactory, ChapterFactory, ContentBlockFactory from books.factories import BookFactory, TopicFactory, ModuleFactory, ChapterFactory, ContentBlockFactory
from core.factories import UserFactory from core.factories import UserFactory
from objectives.factories import ObjectiveGroupFactory, ObjectiveFactory from objectives.factories import ObjectiveGroupFactory, ObjectiveFactory
from users.models import Role
from users.services import create_users, create_student from users.services import create_users, create_student
from .data.module_data import data from .data.module_data import data

View File

@ -39,9 +39,7 @@ def is_private_api_call_allowed(user, body):
except AttributeError: except AttributeError:
return False return False
# logout, me and coupon resources are always allowed. Even if the user has no valid license if is_endpoint_allowed(body_unicode):
if re.search(r"mutation\s*.*\s*logout\s*{", body_unicode) or re.search(r"query\s*.*\s*me\s*{", body_unicode) \
or re.search(r"mutation\s*Coupon", body_unicode):
return True return True
license_expiry = user.license_expiry_date license_expiry = user.license_expiry_date
@ -53,6 +51,12 @@ def is_private_api_call_allowed(user, body):
return True return True
# logout, betalogin, me and coupon resources are always allowed. Even if the user has no valid license
def is_endpoint_allowed(body):
return re.search(r"mutation\s*.*\s*logout\s*{", body) or re.search(r"query\s*.*\s*me\s*{", body) \
or re.search(r"mutation\s*Coupon", body) or re.search(r"mutation\s*BetaLogin", body)
def sync_hidden_for(model, school_class_template, school_class_to_sync): def sync_hidden_for(model, school_class_template, school_class_to_sync):
if model.hidden_for.filter(id=school_class_template.id).exists() and not model.hidden_for.filter( if model.hidden_for.filter(id=school_class_template.id).exists() and not model.hidden_for.filter(
id=school_class_to_sync.id).exists(): id=school_class_to_sync.id).exists():

View File

@ -1,8 +1,11 @@
import random import random
from datetime import timedelta
import factory import factory
from users.models import SchoolClass, SchoolClassMember, License, Team from users.models import SchoolClass, SchoolClassMember, License, Team
from django.utils.timezone import now
class_types = ['DA', 'KV', 'INF', 'EE'] class_types = ['DA', 'KV', 'INF', 'EE']
class_suffix = ['A', 'B', 'C', 'D', 'E'] class_suffix = ['A', 'B', 'C', 'D', 'E']
@ -44,3 +47,6 @@ class TeamFactory(factory.django.DjangoModelFactory):
class LicenseFactory(factory.django.DjangoModelFactory): class LicenseFactory(factory.django.DjangoModelFactory):
class Meta: class Meta:
model = License model = License
expire_date = now() + timedelta(days=7)
order_id = factory.Sequence(lambda n: n)

View File

@ -1,5 +1,10 @@
from datetime import timedelta
from django.utils.timezone import now
from core.factories import UserFactory from core.factories import UserFactory
from users.factories import SchoolClassFactory from users.factories import SchoolClassFactory, LicenseFactory
from users.licenses import MYSKILLBOX_LICENSES
from users.models import Role, UserRole, DEFAULT_SCHOOL_ID from users.models import Role, UserRole, DEFAULT_SCHOOL_ID
@ -47,6 +52,9 @@ def create_users(data=None):
) )
else: else:
in_a_week = now() + timedelta(days=7)
hep_id = 1
for school_class in data: for school_class in data:
first, last = school_class.get('teacher') first, last = school_class.get('teacher')
teacher = UserFactory( teacher = UserFactory(
@ -54,19 +62,26 @@ def create_users(data=None):
first_name=first, first_name=first,
last_name=last, last_name=last,
email='{}.{}@skillbox.example'.format(first, last).lower(), email='{}.{}@skillbox.example'.format(first, last).lower(),
onboarding_visited=True onboarding_visited=True,
license_expiry_date=in_a_week,
hep_id=hep_id
) )
UserRole.objects.create(user=teacher, role=teacher_role) UserRole.objects.create(user=teacher, role=teacher_role)
students = [] students = []
for first, last in school_class.get('students'): for first, last in school_class.get('students'):
hep_id += 1
student = create_student( student = create_student(
username='{}.{}'.format(first, last).lower(), username='{}.{}'.format(first, last).lower(),
first_name=first, first_name=first,
last_name=last, last_name=last,
email='{}.{}@skillbox.example'.format(first, last).lower(), email='{}.{}@skillbox.example'.format(first, last).lower(),
onboarding_visited=True onboarding_visited=True,
license_expiry_date=in_a_week,
hep_id=hep_id
) )
students.append(student) students.append(student)
SchoolClassFactory( SchoolClassFactory(