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")
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" )
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") ]
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") ]
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'" )
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
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()
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'" )
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)
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, }, })