def test_get_quiz_feedback_with_only_subjects_and_no_linked_resource(self): # fill database course = Course(pk=159, name="Test_course1", courseId=1, version_time=datetime.datetime(2020, 1, 28)) course.save() Quiz.objects.create(course_id=159, name="Test_quiz1", external_id=18, subjects_id=1, version_time=datetime.datetime(2020, 1, 28)) resource = Resource( course_id=159, name="Book 1", target="http://localhost:4000/mod/book/view.php?id=12", type="book", external=False, external_id=12, version_time=datetime.datetime(2020, 1, 28)) resource.save() subject = Subject(course=course, name="Test_subject1") subject.save() self.assertEqual(feedback_manager.get_quiz_feedback_link(18), "the course resource")
def test_get_quiz_feedback_with_only_subjects_and_linked_resource(self): # fill database course = Course(pk=159, name="Test_course1", courseId=1, version_time=datetime.datetime(2020, 1, 28)) course.save() quiz = Quiz.objects.create(course_id=159, name="Test_quiz1", external_id=18, subjects_id=1, version_time=datetime.datetime(2020, 1, 28)) quiz.save() resource = Resource( course_id=159, name="Book 1", target="http://localhost:4000/mod/book/view.php?id=12", type="book", external=False, external_id=12, version_time=datetime.datetime(2020, 1, 28)) resource.save() subject = Subject(course=course, name="Test_subject1") subject.save() # add the link between subjects and resources subject.resources.add(resource) message = '\r\n- <a href="http://localhost:4000/mod/book/view.php?id=12">Book 1</a>' self.assertEqual(feedback_manager.get_quiz_feedback_link(18), message)
def test_get_quiz_feedback_with_only_resource(self): # fill database Course.objects.create(pk=159, name="Test_course1", courseId=1, version_time=datetime.datetime(2020, 1, 28)) resource = Resource( course_id=159, name="Book 1", target="http://localhost:4000/mod/book/view.php?id=12", type="book", external=False, external_id=12, version_time=datetime.datetime(2020, 1, 28)) resource.save() quiz = Quiz(course_id=159, name="Test_quiz1", external_id=18, resources=resource, version_time=datetime.datetime(2020, 1, 28)) quiz.save() message = '<a href="http://localhost:4000/mod/book/view.php?id=12">Book 1</a>' self.assertEqual(feedback_manager.get_quiz_feedback_link(18), message)
def test_delete_resource(self): # We overrode the delete, so we should be testing it self.course.faculty.add(self.user) resource = Resource(course = self.course, title = "Test Resource", description = 'Test of the description <b>HERE</b>', link = 'http://example.com') resource.save() resource_id = resource.id response = self.c.post(reverse('courses:delete_resource'), {'id': resource.id}) self.assertRaises(Resource.DoesNotExist, Resource.objects.get, pk = resource_id)
def test_list(self): resource = Resource(course = self.course, title = "Test Resource", description = 'Test of the description <b>HERE</b>', link = 'http://example.com') resource.save() # Add client user as faculty member self.course.faculty.add(self.user) self.course.save() response = self.c.get(reverse('courses:resources', kwargs = {'pk':self.course.id})) self.assertEquals(response.status_code, 200) self.assertEquals(response.context['resources'][0], resource) # Remove user self.course.faculty.remove(self.user)
def fill_database(grouped_dict, question_list): """ Fill the database with all specified course contents. :param grouped_dict: A dictionary with a list of each of the assessments and resources. :type grouped_dict: dict(str,list(dict(str, int))) :param question_list: A dictionary with questions. :type question_list: dict(int, list(dict(str, str))) """ for content_type, content in grouped_dict.items(): if content_type == 'assign': Assignment.objects.bulk_create([Assignment(course_id=a['course_id'], name=a['name'], external_id=a['external_id'], version_time=timezone.now()) for a in content]) elif content_type == 'quiz': Quiz.objects.bulk_create([Quiz(course_id=a['course_id'], name=a['name'], external_id=a['external_id'], version_time=timezone.now()) for a in content]) elif content_type == 'choice': Choice.objects.bulk_create([Choice(course_id=a['course_id'], name=a['name'], external_id=a['external_id'], version_time=timezone.now()) for a in content]) else: Resource.objects.bulk_create([Resource(external=False, version_time=timezone.now(), **a) for a in content]) quiz_list = dict(Quiz.objects.values_list("external_id", "pk")) for quiz_id in question_list: course = Quiz.objects.get(pk=quiz_list[quiz_id]).course Question.objects.bulk_create([Question(name=a['question_name'], external_id=a['question_id'], quiz_id=quiz_list[quiz_id], course=course, version_time=timezone.now()) for a in question_list[quiz_id]])
def test_delete_resource(self): # We overrode the delete, so we should be testing it self.course.faculty.add(self.user) resource = Resource(course=self.course, title="Test Resource", description='Test of the description <b>HERE</b>', link='http://example.com') resource.save() resource_id = resource.id response = self.c.post(reverse('courses:delete_resource'), {'id': resource.id}) self.assertRaises(Resource.DoesNotExist, Resource.objects.get, pk=resource_id)
def test_list(self): resource = Resource(course=self.course, title="Test Resource", description='Test of the description <b>HERE</b>', link='http://example.com') resource.save() # Add client user as faculty member if settings.NONREL: self.course.faculty.append(self.user) else: self.course.faculty.add(self.user) self.course.save() response = self.c.get( reverse('courses:resources', kwargs={'pk': self.course.id})) self.assertEquals(response.status_code, 200) self.assertEquals(response.context['resources'][0], resource) # Remove user self.course.faculty.remove(self.user)
def get_resources(): python_intro, algorithms = CourseModuleDBConnectionTest.get_courses() data = Resource( name="Data sets for test", course=algorithms, path="media/courses/resources/2018/04", add_time=timezone.now(), ) test = Resource( name="Test case of the algorithms", course=algorithms, path="media/courses/resources/2018/04", add_time=timezone.now(), ) hello_world = Resource( name="Hello world program of Python", course=python_intro, path="media/courses/resources/2018/04", add_time=timezone.now(), ) data.save() test.save() hello_world.save() return data, test, hello_world