old_contents: '''
  ---------------------------------------- Masequerade ----------------------------------------
  Allow course staff to see a student or staff view of courseware.
  Which kind of view has been selected is stored in the session state.
  '''
  
  import json
  import logging
  
  from django.http import HttpResponse
  
  log = logging.getLogger(__name__)
  
  MASQ_KEY = 'masquerade_identity'
  
  
  def handle_ajax(request, marg):
      '''
      Handle ajax call from "staff view" / "student view" toggle button
      '''
      if marg == 'toggle':
          status = request.session.get(MASQ_KEY, '')
          if status is None or status in ['', 'staff']:
              status = 'student'
          else:
              status = 'staff'
          request.session[MASQ_KEY] = status
      return HttpResponse(json.dumps({'status': status}))
  
  
  def setup_masquerade(request, staff_access=False):
      '''
      Setup masquerade identity (allows staff to view courseware as either staff or student)
  
      Uses request.session[MASQ_KEY] to store status of masquerading.
      Adds masquerade status to request.user, if masquerading active.
      Return string version of status of view (either 'staff' or 'student')
      '''
      if request.user is None:
          return None
  
      if not staff_access:  # can masquerade only if user has staff access to course
          return None
  
      usertype = request.session.get(MASQ_KEY, '')
      if usertype is None or not usertype:
          request.session[MASQ_KEY] = 'staff'
          usertype = 'staff'
  
      if usertype == 'student':
          request.user.masquerade_as_student = True
  
      return usertype
  
  
  def is_masquerading_as_student(user):
      '''
      Return True if user is masquerading as a student, False otherwise
      '''
      masq = getattr(user, 'masquerade_as_student', False)
      return masq
  
new_contents: '''
  ---------------------------------------- Masequerade ----------------------------------------
  Allow course staff to see a student or staff view of courseware.
  Which kind of view has been selected is stored in the session state.
  '''
  
  import json
  import logging
  
  from django.http import HttpResponse
  
  log = logging.getLogger(__name__)
  
  MASQ_KEY = 'masquerade_identity'
  
  
  def handle_ajax(request, marg):
      '''
      Handle ajax call from "staff view" / "student view" toggle button
      '''
      if marg == 'toggle':
          status = request.session.get(MASQ_KEY, '')
          if status is None or status in ['', 'staff']:
              status = 'student'
          else:
              status = 'staff'
          request.session[MASQ_KEY] = status
      return HttpResponse(json.dumps({'status': status}))
  
  
  def setup_masquerade(request, staff_access=False):
      '''
      Setup masquerade identity (allows staff to view courseware as either staff or student)
  
      Uses request.session[MASQ_KEY] to store status of masquerading.
      Adds masquerade status to request.user, if masquerading active.
      Return string version of status of view (either 'staff' or 'student')
      '''
      if request.user is None:
          return None
  
      if not staff_access:  # can masquerade only if user has staff access to course
          return None
  
      usertype = request.session.get(MASQ_KEY, '')
      if usertype is None or not usertype:
          request.session[MASQ_KEY] = 'staff'
          usertype = 'staff'
  
      if usertype == 'student':
          request.user.masquerade_as_student = True
  
      return usertype
  
  
  def is_masquerading_as_student(user):
      '''
      Return True if user is masquerading as a student, False otherwise
      '''
      masq = getattr(user, 'masquerade_as_student', False)
      return masq==True
  
subject: make is_masquerading_as_student work with Mock for tests