Commit 8def62a0 by Usman Khalid

Added test for DatabaseError in assessment.api.self.create_assessment.

TNL-812
parent 3c93c61d
...@@ -6,12 +6,16 @@ Tests for self-assessment API. ...@@ -6,12 +6,16 @@ Tests for self-assessment API.
import copy import copy
import datetime import datetime
import pytz import pytz
from openassessment.test_utils import CacheResetTest
from submissions.api import create_submission from django.db import DatabaseError
from mock import patch
from openassessment.assessment.api.self import ( from openassessment.assessment.api.self import (
create_assessment, submitter_is_finished, get_assessment create_assessment, submitter_is_finished, get_assessment
) )
from openassessment.assessment.errors import SelfAssessmentRequestError from openassessment.assessment.errors import SelfAssessmentInternalError, SelfAssessmentRequestError
from openassessment.test_utils import CacheResetTest
from submissions.api import create_submission
class TestSelfApi(CacheResetTest): class TestSelfApi(CacheResetTest):
...@@ -287,3 +291,18 @@ class TestSelfApi(CacheResetTest): ...@@ -287,3 +291,18 @@ class TestSelfApi(CacheResetTest):
self.assertEqual( self.assertEqual(
part["feedback"], u'I thought it was about as accurate as Scrubs is to the medical profession.' part["feedback"], u'I thought it was about as accurate as Scrubs is to the medical profession.'
) )
@patch('openassessment.assessment.api.self._complete_assessment')
def test_create_assessment_database_error(self, mock_complete_assessment):
mock_complete_assessment.side_effect = DatabaseError
# Create a submission to self-assess
submission = create_submission(self.STUDENT_ITEM, "Test answer")
with self.assertRaises(SelfAssessmentInternalError):
# Create a self-assessment for the submission
assessment = create_assessment(
submission['uuid'], u'𝖙𝖊𝖘𝖙 𝖚𝖘𝖊𝖗',
self.OPTIONS_SELECTED, self.CRITERION_FEEDBACK, self.OVERALL_FEEDBACK, self.RUBRIC,
scored_at=datetime.datetime(2014, 4, 1).replace(tzinfo=pytz.utc)
)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment