Beispiel #1
0
    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")
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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)
Beispiel #6
0
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]])
Beispiel #7
0
    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)
Beispiel #8
0
    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)
Beispiel #9
0
 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