def test_duplicate_user_key(self):
     user = UserFactory.create()
     UserPreferenceFactory.create(user=user, key="testkey", value="first")
     self.assertRaises(IntegrityError,
                       UserPreferenceFactory.create,
                       user=user,
                       key="testkey",
                       value="second")
Beispiel #2
0
 def test_duplicate_user_key(self):
     user = UserFactory.create()
     UserPreferenceFactory.create(user=user, key="testkey", value="first")
     self.assertRaises(
         IntegrityError,
         UserPreferenceFactory.create,
         user=user,
         key="testkey",
         value="second"
     )
Beispiel #3
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,
         })
 def setUp(self):
     super(UserApiTestCase, self).setUp()
     self.users = [
         UserFactory.create(email="test{0}@test.org".format(i),
                            profile__name="Test {0}".format(i))
         for i in range(5)
     ]
     self.prefs = [
         UserPreferenceFactory.create(user=self.users[0], key="key0"),
         UserPreferenceFactory.create(user=self.users[0], key="key1"),
         UserPreferenceFactory.create(user=self.users[1], key="key0")
     ]
Beispiel #5
0
 def setUp(self):
     super(UserApiTestCase, self).setUp()
     self.users = [
         UserFactory.create(
             email="test{0}@test.org".format(i),
             profile__name="Test {0}".format(i)
         )
         for i in range(5)
     ]
     self.prefs = [
         UserPreferenceFactory.create(user=self.users[0], key="key0"),
         UserPreferenceFactory.create(user=self.users[0], key="key1"),
         UserPreferenceFactory.create(user=self.users[1], key="key0")
     ]
Beispiel #6
0
 def test_arbitrary_values(self):
     user = UserFactory.create()
     UserPreferenceFactory.create(user=user, key="testkey0", value="")
     UserPreferenceFactory.create(user=user, key="testkey1", value="This is some English text!")
     UserPreferenceFactory.create(user=user, key="testkey2", value="{'some': 'json'}")
     UserPreferenceFactory.create(
         user=user, key="testkey3", value="\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\xad\xe5\x9b\xbd\xe6\x96\x87\xe5\xad\x97'"
     )
Beispiel #7
0
 def _create_and_assert(self, user, key, value):
     """Create a new preference and assert the values. """
     preference = UserPreferenceFactory.create(user=user, key=key, value=value)
     self.assertEqual(preference.user, user)
     self.assertEqual(preference.key, key)
     self.assertEqual(preference.value, value)
     return preference
Beispiel #8
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()
Beispiel #9
0
 def _create_and_assert(self, user, key, value):
     """Create a new preference and assert the values. """
     preference = UserPreferenceFactory.create(user=user,
                                               key=key,
                                               value=value)
     self.assertEqual(preference.user, user)
     self.assertEqual(preference.key, key)
     self.assertEqual(preference.value, value)
     return preference
Beispiel #10
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"})
 def test_arbitrary_values(self):
     user = UserFactory.create()
     UserPreferenceFactory.create(user=user, key="testkey0", value="")
     UserPreferenceFactory.create(user=user,
                                  key="testkey1",
                                  value="This is some English text!")
     UserPreferenceFactory.create(user=user,
                                  key="testkey2",
                                  value="{'some': 'json'}")
     UserPreferenceFactory.create(
         user=user,
         key="testkey3",
         value=
         "\xe8\xbf\x99\xe6\x98\xaf\xe4\xb8\xad\xe5\x9b\xbd\xe6\x96\x87\xe5\xad\x97'"
     )
Beispiel #12
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)
Beispiel #13
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,
                },
            })