コード例 #1
0
 def test_preferences(self):
     lang_pref = UserPreferenceFactory(user=self.user,
                                       key=LANGUAGE_KEY,
                                       value="language pref test value")
     UserPreferenceFactory(user=self.user, key="non_included_key")
     result = self._get_detail()
     self.assertEqual(
         result["preferences"], {
             NOTIFICATION_PREF_KEY: self.notification_pref.value,
             LANGUAGE_KEY: lang_pref.value,
         })
コード例 #2
0
    def test_db_access(self):
        for _ in range(10):
            new_user = UserFactory()
            UserPreferenceFactory(user=new_user, key=NOTIFICATION_PREF_KEY)

        # The number of queries is one for the users plus one for each prefetch
        # in NotifierUsersViewSet (roles__permissions does one for each table).
        with self.assertNumQueries(6):
            self._get_list()
コード例 #3
0
    def setUp(self):
        super(NotifierUsersViewSetTest, self).setUp()
        self.courses = []
        self.cohorts = []
        self.user = UserFactory()
        self.notification_pref = UserPreferenceFactory(
            user=self.user,
            key=NOTIFICATION_PREF_KEY,
            value="notification pref test value")

        self.list_view = NotifierUsersViewSet.as_view({"get": "list"})
        self.detail_view = NotifierUsersViewSet.as_view({"get": "retrieve"})
コード例 #4
0
    def test_pagination(self, page_size):
        num_users = 12
        users = [self.user]
        while len(users) < num_users:
            new_user = UserFactory()
            users.append(new_user)
            UserPreferenceFactory(user=new_user, key=NOTIFICATION_PREF_KEY)

        num_pages = (num_users - 1) / page_size + 1
        result_list = []
        for i in range(1, num_pages + 1):
            result_list.extend(self._get_list(page=i, page_size=page_size))
        result_map = {result["id"]: result for result in result_list}

        self.assertEqual(len(result_list), num_users)
        for user in users:
            self._assert_basic_user_info_correct(user, result_map[user.id])
        self.assertEqual(
            self._make_list_request(page=(num_pages + 1),
                                    page_size=page_size).status_code, 404)
コード例 #5
0
    def test_multiple_users(self):
        other_user = UserFactory()
        other_notification_pref = UserPreferenceFactory(
            user=other_user, key=NOTIFICATION_PREF_KEY, value="other value")
        self._set_up_course(is_course_cohorted=True,
                            is_user_cohorted=True,
                            is_moderator=False)
        self._set_up_course(is_course_cohorted=False,
                            is_user_cohorted=False,
                            is_moderator=False)
        # Users have different sets of enrollments
        CourseEnrollmentFactory(user=other_user, course_id=self.courses[0].id)

        result_map = {result["id"]: result for result in self._get_list()}
        self.assertEqual(set(result_map.keys()), {self.user.id, other_user.id})
        for user in [self.user, other_user]:
            self._assert_basic_user_info_correct(user, result_map[user.id])
        self.assertEqual(result_map[self.user.id]["preferences"],
                         {NOTIFICATION_PREF_KEY: self.notification_pref.value})
        self.assertEqual(
            result_map[other_user.id]["preferences"],
            {NOTIFICATION_PREF_KEY: other_notification_pref.value})
        self.assertEqual(
            result_map[self.user.id]["course_info"], {
                unicode(self.courses[0].id): {
                    "cohort_id": self.cohorts[0].id,
                    "see_all_cohorts": False,
                },
                unicode(self.courses[1].id): {
                    "cohort_id": None,
                    "see_all_cohorts": True,
                },
            })
        self.assertEqual(
            result_map[other_user.id]["course_info"], {
                unicode(self.courses[0].id): {
                    "cohort_id": None,
                    "see_all_cohorts": False,
                },
            })