<filename>Part-03-Understanding-Software-Crafting-Your-Own-Tools/models/edx-platform/lms/djangoapps/verify_student/tests/fake_software_secure.py
"""
Fake Software Secure page for use in acceptance tests.
"""


from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.urls import reverse
from django.utils.decorators import method_decorator
from django.views.generic.base import View

from common.djangoapps.edxmako.shortcuts import render_to_response
from lms.djangoapps.verify_student.models import SoftwareSecurePhotoVerification


class SoftwareSecureFakeView(View):
    """
    Fake SoftwareSecure view for testing different photo verification statuses
    and email functionality.
    """

    @method_decorator(login_required)
    def get(self, request):
        """
        Render a fake Software Secure page that will pick the most recent
        attempt for a given user and pass it to the html page.
        """
        context_dict = self.response_post_params(request.user)
        return render_to_response("verify_student/test/fake_softwaresecure_response.html", context_dict)

    @classmethod
    def response_post_params(cls, user):
        """
        Calculate the POST params we want to send back to the client.
        """
        access_key = settings.VERIFY_STUDENT["SOFTWARE_SECURE"]["API_ACCESS_KEY"]
        context = {
            'receipt_id': None,
            'authorization_code': f'SIS {access_key}:0000',
            'results_callback': reverse('verify_student_results_callback')
        }

        try:
            most_recent = SoftwareSecurePhotoVerification.objects.filter(user=user).order_by("-updated_at")[0]
            context["receipt_id"] = most_recent.receipt_id
        except:  # pylint: disable=bare-except
            pass

        return context

<filename>Part-03-Understanding-Software-Crafting-Your-Own-Tools/models/edx-platform/lms/djangoapps/verify_student/tests/fake_software_secure.py
"""
Fake Software Secure page for use in acceptance tests.
"""


from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.urls import reverse
from django.utils.decorators import method_decorator
from django.views.generic.base import View

from common.djangoapps.edxmako.shortcuts import render_to_response
from lms.djangoapps.verify_student.models import SoftwareSecurePhotoVerification


class SoftwareSecureFakeView(View):
    """
    Fake SoftwareSecure view for testing different photo verification statuses
    and email functionality.
    """

    @method_decorator(login_required)
    def get(self, request):
        """
        Render a fake Software Secure page that will pick the most recent
        attempt for a given user and pass it to the html page.
        """
        context_dict = self.response_post_params(request.user)
        return render_to_response("verify_student/test/fake_softwaresecure_response.html", context_dict)

    @classmethod
    def response_post_params(cls, user):
        """
        Calculate the POST params we want to send back to the client.
        """
        access_key = settings.VERIFY_STUDENT["SOFTWARE_SECURE"]["API_ACCESS_KEY"]
        context = {
            'receipt_id': None,
            'authorization_code': f'SIS {access_key}:0000',
            'results_callback': reverse('verify_student_results_callback')
        }

        try:
            most_recent = SoftwareSecurePhotoVerification.objects.filter(user=user).order_by("-updated_at")[0]
            context["receipt_id"] = most_recent.receipt_id
        except:  # pylint: disable=bare-except
            pass

        return context

Fake Software Secure page for use in acceptance tests. Fake SoftwareSecure view for testing different photo verification statuses     and email functionality. Render a fake Software Secure page that will pick the most recent         attempt for a given user and pass it to the html page. Calculate the POST params we want to send back to the client. # pylint: disable=bare-except