skillbox/server/assignments/tests/test_read_only.py

100 lines
3.2 KiB
Python

from datetime import timedelta, date
from graphql_relay import to_global_id
from assignments.factories import AssignmentFactory, StudentSubmissionFactory
from assignments.tests.queries.mutations import (
UPDATE_ASSIGNMENT_MUTATION,
UPDATE_SUBMISSION_FEEDBACK_MUTATION,
)
from core.tests.base_test import SkillboxTestCase
class AssignmentReadOnlyTestCase(SkillboxTestCase):
def setUp(self) -> None:
self.createDefault()
yesterday = date.today() - timedelta(days=1)
self.student1.license_expiry_date = yesterday
self.student1.save()
self.teacher.license_expiry_date = yesterday
self.teacher.save()
self.assignment = AssignmentFactory()
self.assignment_id = to_global_id("AssignmentNode", self.assignment.id)
def test_edit_assignment_fails(self):
variables = {
"input": {
"assignment": {
"answer": "bla",
"document": "",
"final": False,
"id": self.assignment_id,
}
}
}
result = self.get_client(self.student1).execute(
UPDATE_ASSIGNMENT_MUTATION, variables=variables
)
self.assertIsNotNone(result.errors)
def test_share_assignment_fails(self):
variables = {
"input": {
"assignment": {
"answer": "bla",
"document": "",
"final": True,
"id": self.assignment_id,
}
}
}
result = self.get_client(self.student1).execute(
UPDATE_ASSIGNMENT_MUTATION, variables=variables
)
self.assertIsNotNone(result.errors)
def test_edit_feedback_fails(self):
student_submission = StudentSubmissionFactory(
assignment=self.assignment, student=self.student1, final=True
)
student_submission_id = to_global_id(
"StudentSubmissionNode", student_submission.id
)
result = self.get_client(self.teacher).execute(
UPDATE_SUBMISSION_FEEDBACK_MUTATION,
variables={
"input": {
"submissionFeedback": {
"studentSubmission": student_submission_id,
"text": "Feedback",
"final": False,
}
}
},
)
self.assertIsNotNone(result.errors)
def test_share_feedback_fails(self):
student_submission = StudentSubmissionFactory(
assignment=self.assignment, student=self.student1, final=True
)
student_submission_id = to_global_id(
"StudentSubmissionNode", student_submission.id
)
result = self.get_client(self.teacher).execute(
UPDATE_SUBMISSION_FEEDBACK_MUTATION,
variables={
"input": {
"submissionFeedback": {
"studentSubmission": student_submission_id,
"text": "Feedback",
"final": True,
}
}
},
)
self.assertIsNotNone(result.errors)