Beispiel #1
0
    def test_create_instructor_feedback(self):
        self.setup_sample_course()
        project = ProjectFactory.create(
            course=self.sample_course, author=self.student_one,
            policy='InstructorShared')

        data = {
            'publish': 'PrivateStudentAndFaculty',
            'inherit': 'true',
            'app_label': 'projects',
            'model': 'project',
            'obj_pk': project.id,
            'comment_html': 'Instructor Feedback'
        }
        request = RequestFactory().post('/discussion/create/', data)
        request.user = self.instructor_one
        request.course = self.sample_course
        request.collaboration_context, created = \
            Collaboration.objects.get_or_create(
                content_type=ContentType.objects.get_for_model(Course),
                object_pk=str(self.sample_course.pk))
        discussion_create(request)

        discussion = project.feedback_discussion()
        self.assertIsNotNone(discussion)
Beispiel #2
0
    def create_discussion(self, course, instructor):
        data = {
            'comment_html': '%s Discussion' % course.title,
            'obj_pk': course.id,
            'model': 'course',
            'app_label': 'courseaffils'
        }
        request = RequestFactory().post(
            reverse('discussion-create', args=[course.pk]),
            data,
            # Mock an ajax request because the response is simpler to
            # deal with manually here.
            HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        request.user = instructor
        request.course = course
        request.collaboration_context, created = \
            Collaboration.objects.get_or_create(
                content_type=ContentType.objects.get_for_model(Course),
                object_pk=course.pk)
        view = DiscussionCreateView()
        view.request = request
        response = view.post(request)

        response_data = json.loads(response.content)
        thread_id = response_data.get('context').get('discussion').get('id')

        return ThreadedComment.objects.get(id=thread_id)
Beispiel #3
0
    def test_create_instructor_feedback(self):
        self.setup_sample_course()
        project = ProjectFactory.create(course=self.sample_course,
                                        author=self.student_one,
                                        policy='InstructorShared')

        data = {
            'publish': 'PrivateStudentAndFaculty',
            'inherit': 'true',
            'app_label': 'projects',
            'model': 'project',
            'obj_pk': project.id,
            'comment_html': 'Instructor Feedback'
        }
        request = RequestFactory().post('/discussion/create/', data)
        request.user = self.instructor_one
        request.course = self.sample_course
        request.collaboration_context, created = \
            Collaboration.objects.get_or_create(
                content_type=ContentType.objects.get_for_model(Course),
                object_pk=self.sample_course.pk)
        view = DiscussionCreateView()
        view.request = request
        view.post(request)

        discussion = project.feedback_discussion()
        self.assertIsNotNone(discussion)
Beispiel #4
0
    def policy(self, create, extracted, **kwargs):
        if create:
            data = {'publish': 'PrivateEditorsAreOwners'}
            if extracted:
                data = {'publish': extracted}

            request = RequestFactory().post('/', data)
            request.collaboration_context = \
                Collaboration.objects.get_for_object(self.course)

            self.create_or_update_collaboration(data['publish'])
Beispiel #5
0
 def create_discussion(self, course, instructor):
     data = {'comment_html': '%s Discussion' % course.title,
             'obj_pk': course.id,
             'model': 'course', 'app_label': 'courseaffils'}
     request = RequestFactory().post('/discussion/create/', data)
     request.user = instructor
     request.course = course
     request.collaboration_context, created = \
         Collaboration.objects.get_or_create(
             content_type=ContentType.objects.get_for_model(Course),
             object_pk=str(course.pk))
     return discussion_create(request)
Beispiel #6
0
    def test_view_discussions(self):
        self.setup_sample_course()
        self.create_discussion(self.sample_course, self.instructor_one)
        discussions = get_course_discussions(self.sample_course)
        self.assertEquals(1, len(discussions))

        request = RequestFactory().get('/discussion/delete/', {})
        request.user = self.instructor_one
        request.course = self.sample_course
        request.collaboration_context, created = \
            Collaboration.objects.get_or_create(
                content_type=ContentType.objects.get_for_model(Course),
                object_pk=str(self.sample_course.pk))

        discussions = get_course_discussions(self.sample_course)
        response = discussion_view(request, discussions[0].id)
        self.assertEquals(response.status_code, 200)
    def create_discussion(self, course, instructor):
        data = {
            'comment_html': '%s Discussion' % course.title,
            'obj_pk': course.id,
            'model': 'course',
            'app_label': 'courseaffils'
        }
        request = RequestFactory().post('/discussion/create/', data)
        request.user = instructor
        request.course = course
        request.collaboration_context, created = \
            Collaboration.objects.get_or_create(
                content_type=ContentType.objects.get_for_model(Course),
                object_pk=str(course.pk))
        response = discussion_create(request)

        parent_id = re.search(r'\d+', response.url).group()
        return ThreadedComment.objects.get(id=parent_id)
Beispiel #8
0
    def test_view_discussions(self):
        self.setup_sample_course()
        self.create_discussion(self.sample_course, self.instructor_one)
        discussions = get_course_discussions(self.sample_course)
        self.assertEquals(1, len(discussions))

        request = RequestFactory().get('/discussion/', {})
        request.user = self.instructor_one
        request.course = self.sample_course
        request.collaboration_context, created = \
            Collaboration.objects.get_or_create(
                content_type=ContentType.objects.get_for_model(Course),
                object_pk=self.sample_course.pk)

        view = DiscussionView()
        view.request = request
        response = view.get(request, discussion_id=discussions[0].id)
        self.assertEquals(response.status_code, 200)
Beispiel #9
0
    def test_view_discussions_ajax(self):
        self.setup_sample_course()
        self.create_discussion(self.sample_course, self.instructor_one)
        discussions = get_course_discussions(self.sample_course)
        self.assertEquals(1, len(discussions))

        request = RequestFactory().get('/discussion/', {},
                                       HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        request.user = self.instructor_one
        request.course = self.sample_course
        request.collaboration_context, created = \
            Collaboration.objects.get_or_create(
                content_type=ContentType.objects.get_for_model(Course),
                object_pk=str(self.sample_course.pk))

        view = DiscussionView()
        view.request = request
        response = view.get(request, discussion_id=discussions[0].id)
        self.assertEquals(response.status_code, 200)

        the_json = loads(response.content)
        self.assertEquals(the_json['space_owner'],
                          self.instructor_one.username)
Beispiel #10
0
    def test_view_discussions_ajax(self):
        self.setup_sample_course()
        self.create_discussion(self.sample_course, self.instructor_one)
        discussions = get_course_discussions(self.sample_course)
        self.assertEquals(1, len(discussions))

        request = RequestFactory().get('/discussion/', {},
                                       HTTP_X_REQUESTED_WITH='XMLHttpRequest')
        request.user = self.instructor_one
        request.course = self.sample_course
        request.collaboration_context, created = \
            Collaboration.objects.get_or_create(
                content_type=ContentType.objects.get_for_model(Course),
                object_pk=self.sample_course.pk)

        view = DiscussionView()
        view.request = request
        response = view.get(request, discussion_id=discussions[0].id)
        self.assertEquals(response.status_code, 200)

        the_json = loads(response.content)
        self.assertEquals(the_json['space_owner'],
                          self.instructor_one.username)