100 lines
3.2 KiB
Python
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)
|