""" Tests for the course import API views """ from datetime import datetime from django.test.utils import override_settings from django.urls import reverse from rest_framework import status from rest_framework.test import APITestCase from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory, BlockFactory from common.djangoapps.student.tests.factories import StaffFactory from common.djangoapps.student.tests.factories import UserFactory @override_settings(PROCTORING_BACKENDS={'DEFAULT': 'proctortrack', 'proctortrack': {}}) class CourseValidationViewTest(SharedModuleStoreTestCase, APITestCase): """ Test course validation view via a RESTful API """ @classmethod def setUpClass(cls): super().setUpClass() cls.course = CourseFactory.create( display_name='test course', run="Testing_course", proctoring_provider='proctortrack', proctoring_escalation_email='test@example.com', ) cls.course_key = cls.course.id cls.password = 'test' cls.student = UserFactory(username='dummy', password=cls.password) cls.staff = StaffFactory(course_key=cls.course.id, password=cls.password) cls.initialize_course(cls.course) @classmethod def initialize_course(cls, course): """ Sets up test course structure. """ course.start = datetime.now() course.self_paced = True cls.store.update_item(course, cls.staff.id) update_key = course.id.make_usage_key('course_info', 'updates') cls.store.create_item( cls.staff.id, update_key.course_key, update_key.block_type, block_id=update_key.block_id, fields=dict(data="