Fix unit tests
This commit is contained in:
parent
f4270b8243
commit
de62252824
|
|
@ -13,6 +13,7 @@ from graphql_relay import to_global_id
|
|||
from api.test_utils import create_client, DefaultUserTestCase
|
||||
from assignments.models import Assignment, StudentSubmission
|
||||
from users.factories import SchoolClassFactory
|
||||
from users.models import SchoolClassMember
|
||||
from ..factories import AssignmentFactory, StudentSubmissionFactory, SubmissionFeedbackFactory
|
||||
|
||||
|
||||
|
|
@ -25,13 +26,16 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
|
|||
)
|
||||
self.assignment_id = to_global_id('AssignmentNode', self.assignment.pk)
|
||||
|
||||
self.student_submission = StudentSubmissionFactory(assignment=self.assignment, student=self.student1, final=False)
|
||||
self.student_submission = StudentSubmissionFactory(assignment=self.assignment, student=self.student1,
|
||||
final=False)
|
||||
self.student_submission_id = to_global_id('StudentSubmissionNode', self.student_submission.pk)
|
||||
|
||||
school_class = SchoolClassFactory()
|
||||
school_class.users.add(self.student1)
|
||||
school_class.users.add(self.teacher)
|
||||
school_class.users.add(self.teacher2)
|
||||
for user in [self.student1, self.teacher, self.teacher2]:
|
||||
SchoolClassMember.objects.create(
|
||||
user=user,
|
||||
school_class=school_class
|
||||
)
|
||||
|
||||
def _create_submission_feedback(self, user, final, text, student_submission_id):
|
||||
mutation = '''
|
||||
|
|
@ -122,19 +126,17 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
|
|||
})
|
||||
|
||||
def test_teacher_can_create_feedback(self):
|
||||
|
||||
result = self._create_submission_feedback(self.teacher, False, 'Balalal', self.student_submission_id)
|
||||
|
||||
self.assertIsNone(result.get('errors'))
|
||||
self.assertIsNotNone(result.get('data').get('updateSubmissionFeedback').get('updatedSubmissionFeedback').get('id'))
|
||||
self.assertIsNotNone(
|
||||
result.get('data').get('updateSubmissionFeedback').get('updatedSubmissionFeedback').get('id'))
|
||||
|
||||
def test_student_cannot_create_feedback(self):
|
||||
|
||||
result = self._create_submission_feedback(self.student1, False, 'Balalal', self.student_submission_id)
|
||||
self.assertIsNotNone(result.get('errors'))
|
||||
|
||||
def test_teacher_can_update_feedback(self):
|
||||
|
||||
assignment = AssignmentFactory(
|
||||
owner=self.teacher
|
||||
)
|
||||
|
|
@ -148,13 +150,13 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
|
|||
|
||||
self.assertIsNone(result.get('errors'))
|
||||
|
||||
submission_feedback_response = result.get('data').get('updateSubmissionFeedback').get('updatedSubmissionFeedback')
|
||||
submission_feedback_response = result.get('data').get('updateSubmissionFeedback').get(
|
||||
'updatedSubmissionFeedback')
|
||||
|
||||
self.assertTrue(submission_feedback_response.get('final'))
|
||||
self.assertEqual(submission_feedback_response.get('text'), 'Some')
|
||||
|
||||
def test_rogue_teacher_cannot_update_feedback(self):
|
||||
|
||||
assignment = AssignmentFactory(
|
||||
owner=self.teacher
|
||||
)
|
||||
|
|
@ -169,14 +171,12 @@ class SubmissionFeedbackTestCase(DefaultUserTestCase):
|
|||
self.assertIsNotNone(result.get('errors'))
|
||||
|
||||
def test_student_does_not_see_non_final_feedback(self):
|
||||
|
||||
SubmissionFeedbackFactory(teacher=self.teacher, final=False, student_submission=self.student_submission)
|
||||
result = self._fetch_assignment_student(self.student1)
|
||||
|
||||
self.assertIsNone(result.get('data').get('submissionFeedback'))
|
||||
|
||||
def test_student_does_see_final_feedback(self):
|
||||
|
||||
submission_feedback = SubmissionFeedbackFactory(teacher=self.teacher, final=True,
|
||||
student_submission=self.student_submission)
|
||||
result = self._fetch_assignment_student(self.student1)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import os
|
|||
import requests
|
||||
from django.conf import settings
|
||||
|
||||
from users.models import User, SchoolClass, Role, UserRole
|
||||
from users.models import User, SchoolClass, Role, UserRole, SchoolClassMember
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
|
@ -40,7 +40,10 @@ class Command(BaseCommand):
|
|||
self.stdout.write("Adding to class(es) {}".format(', '.join(school_class_names)))
|
||||
for school_class_name in school_class_names:
|
||||
school, _ = SchoolClass.objects.get_or_create(name=school_class_name)
|
||||
user.school_classes.add(school)
|
||||
SchoolClassMember.objects.create(
|
||||
school_class=school,
|
||||
user=user
|
||||
)
|
||||
|
||||
self.stdout.write("")
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ from graphene import relay
|
|||
from core.views import SetPasswordView
|
||||
from registration.models import License
|
||||
from registration.serializers import RegistrationSerializer
|
||||
from users.models import User, Role, UserRole, SchoolClass
|
||||
from users.models import User, Role, UserRole, SchoolClass, SchoolClassMember
|
||||
|
||||
|
||||
class PublicFieldError(graphene.ObjectType):
|
||||
|
|
@ -61,7 +61,10 @@ class Registration(relay.ClientIDMutation):
|
|||
UserRole.objects.get_or_create(user=user, role=teacher_role)
|
||||
default_class_name = SchoolClass.generate_default_group_name()
|
||||
default_class = SchoolClass.objects.create(name=default_class_name)
|
||||
user.school_classes.add(default_class)
|
||||
SchoolClassMember.objects.create(
|
||||
user=user,
|
||||
school_class=default_class
|
||||
)
|
||||
else:
|
||||
student_role = Role.objects.get(key=Role.objects.STUDENT_KEY)
|
||||
UserRole.objects.get_or_create(user=user, role=student_role)
|
||||
|
|
|
|||
|
|
@ -124,7 +124,10 @@ class JoinClass(relay.ClientIDMutation):
|
|||
school_class = SchoolClass.objects.get(Q(code__iexact=code))
|
||||
|
||||
if user not in list(school_class.users.all()):
|
||||
school_class.users.add(user)
|
||||
SchoolClassMember.objects.create(
|
||||
user=user,
|
||||
school_class=school_class
|
||||
)
|
||||
else:
|
||||
raise CodeNotFoundException('[CAJ] Schüler ist bereits in Klasse') # CAJ = Class Already Joined
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from graphene.test import Client
|
|||
|
||||
from core.factories import UserFactory
|
||||
from users.factories import SchoolClassFactory
|
||||
from users.models import SchoolClass
|
||||
from users.models import SchoolClass, SchoolClassMember
|
||||
from api.schema import schema
|
||||
|
||||
|
||||
|
|
@ -45,7 +45,10 @@ class JoinSchoolClassTest(TestCase):
|
|||
def test_class_already_joined(self):
|
||||
code = 'YYYY'
|
||||
school_class = SchoolClass.objects.get(code=code)
|
||||
school_class.users.add(self.user)
|
||||
SchoolClassMember.objects.create(
|
||||
user=self.user,
|
||||
school_class=school_class
|
||||
)
|
||||
|
||||
self.assertEqual(self.user.school_classes.count(), 2)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue