docs: def get_previous_unanswered_question(self, assessment_section_id, item_id):
          """Gets the previous unanswered question in this assesment section.
  
          arg:    assessment_section_id (osid.id.Id): ``Id`` of the
                  ``AssessmentSection``
          arg:    item_id (osid.id.Id): ``Id`` of the ``Item``
          return: (osid.assessment.Question) - the previous unanswered
                  question
          raise:  IllegalState - ``has_previous_unanswered_question()`` is
                  ``false``
          raise:  NotFound - ``assessment_section_id or item_id is not
                  found, or item_id not part of assessment_section_id``
          raise:  NullArgument - ``assessment_section_id or item_id is
                  null``
          raise:  OperationFailed - unable to complete request
          raise:  PermissionDenied - authorization failure occurred
          *compliance: mandatory -- This method must be implemented.*
  
          """
          # Or this could call through to get_next_question in the section with reverse=True
          questions = self.get_unanswered_questions(assessment_section_id)
          previous_question = questions.next()
          if previous_question.get_id() == item_id:
              raise errors.IllegalState('No previous unanswered question is available')
          for question in questions:
              if question.get_id() == item_id:
                  return previous_question
              else:
                  previous_question = question
          raise errors.NotFound('item_id is not found in Section')