def test_registrar_fed_enrollments_not_returned(self, mock_get_all_list_data):
        """ Ensure that registrar-fed enrollments aren't returned. """
        # set up the mock data
        user_id = uuid.uuid4().hex
        course_instance_id = uuid.uuid4().int
        canvas_enrollments = [  # result of enrollments.list_enrollments_sections
            {'user': {'sis_user_id': user_id, 'sortable_name': 'Burn, Acid'},
             'role': 'Guest'},
        ]
        course_enrollees = [  # result of query for non-feed enrollments
        ]

        # set up the mocks
        mock_get_all_list_data.return_value = canvas_enrollments
        mock_course_member = Mock(**{
            'objects.filter.return_value.values_list.return_value':
                course_enrollees,
        })
        # since we're prepping the mock_course_member here, we have to resort
        # to the patch().start() syntax here, instead of decorating it
        patch('manage_people.views.COURSE_MEMBER_CLASSES',
              [mock_course_member]).start()

        # run it
        result = get_enrollments_added_through_tool(course_instance_id)

        # we mocked out get_all_list_data, so verify the call
        self.assertEqual(mock_get_all_list_data.call_args_list,
                         [call(ANY, enrollments.list_enrollments_sections,
                               'sis_section_id:{}'.format(course_instance_id))])

        # verify the result
        self.assertEqual(len(result), 0)
コード例 #2
0
    def test_registrar_fed_enrollments_not_returned(self, mock_get_all_list_data,
                                                    mock_role_map):
        """ Ensure that registrar-fed enrollments aren't returned. """
        # set up the mock data
        user_id = uuid.uuid4().hex
        course_instance_id = uuid.uuid4().int
        canvas_enrollments = [  # result of enrollments.list_enrollments_sections
            {'user': {'sis_user_id': user_id, 'sortable_name': 'Burn, Acid'},
             'role': 'Guest', 'role_id': 9},
        ]
        course_enrollees = []  # result of query for non-feed enrollments

        # set up the mocks
        mock_get_all_list_data.return_value = canvas_enrollments
        mock_course_member = Mock(**{
            'objects.filter.return_value.values_list.return_value':
                course_enrollees,
        })
        # since we're prepping the mock_course_member here, we have to resort
        # to the patch().start() syntax here, instead of decorating it
        patch('manage_people.views.COURSE_MEMBER_CLASSES',
              [mock_course_member]).start()

        # run it
        result = get_enrollments_added_through_tool(course_instance_id)

        # we mocked out get_all_list_data, so verify the call
        self.assertEqual(mock_get_all_list_data.call_args_list,
                         [call(ANY, enrollments.list_enrollments_sections,
                               'sis_section_id:{}'.format(course_instance_id))])

        # verify the result
        self.assertEqual(len(result), 0)
コード例 #3
0
    def test_mismatched_roles_not_returned(self, mock_get_all_list_data,
                                           mock_role_map):
        """
        Ensure that manually-added enrollments for a different role don't cause
        us to return registrar-fed enrollments as well.  Basically, a
        regression test for TLT-2403.
        """
        # set up the mock data
        user_id = uuid.uuid4().hex
        course_instance_id = uuid.uuid4().int
        canvas_enrollments = [  # result of enrollments.list_enrollments_sections
            {'user': {'sis_user_id': user_id, 'sortable_name': 'Burn, Acid'},
             'role': 'Guest', 'role_id': 9},
            {'user': {'sis_user_id': user_id, 'sortable_name': 'Burn, Acid'},
             'role': 'ObserverEnrollment', 'role_id': 7},
        ]
        course_enrollees = [  # result of query for non-feed enrollments
            (user_id, 10),  # Guest
        ]

        # set up the mocks
        mock_get_all_list_data.return_value = canvas_enrollments
        mock_course_member = Mock(**{
            'objects.filter.return_value.values_list.return_value':
                course_enrollees,
        })
        # since we're prepping the mock_course_member here, we have to resort
        # to the patch().start() syntax here, instead of decorating it
        patch('manage_people.views.COURSE_MEMBER_CLASSES',
              [mock_course_member]).start()

        # run it
        result = get_enrollments_added_through_tool(course_instance_id)

        # we mocked out get_all_list_data, so verify the call
        self.assertEqual(mock_get_all_list_data.call_args_list,
                         [call(ANY, enrollments.list_enrollments_sections,
                               'sis_section_id:{}'.format(course_instance_id))])

        # verify the result
        self.assertEqual(len(result), 1)
        self.assertIn('badge_label_name', result[0])
        self.assertDictContainsSubset(canvas_enrollments[0], result[0])
コード例 #4
0
    def test_mismatched_roles_not_returned(self, mock_get_all_list_data,
                                           mock_role_map):
        """
        Ensure that manually-added enrollments for a different role don't cause
        us to return registrar-fed enrollments as well.  Basically, a
        regression test for TLT-2403.
        """
        # set up the mock data
        user_id = uuid.uuid4().hex
        course_instance_id = uuid.uuid4().int
        canvas_enrollments = [  # result of enrollments.list_enrollments_sections
            {'user': {'sis_user_id': user_id, 'sortable_name': 'Burn, Acid'},
             'role': 'Guest', 'role_id': 9},
            {'user': {'sis_user_id': user_id, 'sortable_name': 'Burn, Acid'},
             'role': 'ObserverEnrollment', 'role_id': 7},
        ]
        course_enrollees = [  # result of query for non-feed enrollments
            (user_id, 10),  # Guest
        ]

        # set up the mocks
        mock_get_all_list_data.return_value = canvas_enrollments
        mock_course_member = Mock(**{
            'objects.filter.return_value.values_list.return_value':
                course_enrollees,
        })
        # since we're prepping the mock_course_member here, we have to resort
        # to the patch().start() syntax here, instead of decorating it
        patch('manage_people.views.COURSE_MEMBER_CLASSES',
              [mock_course_member]).start()

        # run it
        result = get_enrollments_added_through_tool(course_instance_id)

        # we mocked out get_all_list_data, so verify the call
        self.assertEqual(mock_get_all_list_data.call_args_list,
                         [call(ANY, enrollments.list_enrollments_sections,
                               'sis_section_id:{}'.format(course_instance_id))])

        # verify the result
        self.assertEqual(len(result), 1)
        self.assertIn('badge_label_name', result[0])
        self.assertDictContainsSubset(canvas_enrollments[0], result[0])