83 lines
3.1 KiB
Python
83 lines
3.1 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
|
|
from users.models import User
|
|
|
|
|
|
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.get('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.get('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.get('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.get('errors'))
|