def test_user_preference_timezone(self): """Test that valid timezones are saved.""" user = None serializer = UserSerializer(data=self.user_data, context=self.request_context) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {'context': {'user': user}} data = { 'name': 'timezone', 'description': self.fake.text(), 'preference': { 'timezone': 'Antarctica/Troll' } } pref = list(UserPreference.objects.filter(user=user, name='timezone')).pop() self.assertIsNotNone(pref) self.assertIsInstance(pref, UserPreference) serializer = UserPreferenceSerializer(pref, data=data, **kwargs) if serializer.is_valid(raise_exception=True): pref = serializer.save() self.assertEqual(pref.name, data.get('name')) self.assertEqual(pref.description, data.get('description')) self.assertEqual(pref.preference, data.get('preference'))
def test_user_preference_currency(self): """Test that valid currency codes are saved.""" user = None serializer = UserSerializer(data=self.user_data, context=self.request_context) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {'context': {'user': user}} data = { 'name': 'currency', 'description': self.fake.text(), 'preference': { 'currency': random.choice(_currency_symbols()) } } pref = list(UserPreference.objects.filter(user=user, name='currency')).pop() self.assertIsNotNone(pref) self.assertIsInstance(pref, UserPreference) serializer = UserPreferenceSerializer(pref, data=data, **kwargs) if serializer.is_valid(raise_exception=True): pref = serializer.save() self.assertEqual(pref.name, data.get('name')) self.assertEqual(pref.description, data.get('description')) self.assertEqual(pref.preference, data.get('preference'))
def test_user_preference_currency(self): """Test that valid currency codes are saved.""" user = None serializer = UserSerializer(data=self.user_data, context=self.request_context) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {"context": {"user": user}} data = { "name": "currency", "description": self.fake.text(), "preference": { "currency": random.choice(_currency_symbols()) }, } pref = list(UserPreference.objects.filter(user=user, name="currency")).pop() self.assertIsNotNone(pref) self.assertIsInstance(pref, UserPreference) serializer = UserPreferenceSerializer(pref, data=data, **kwargs) if serializer.is_valid(raise_exception=True): pref = serializer.save() self.assertEqual(pref.name, data.get("name")) self.assertEqual(pref.description, data.get("description")) self.assertEqual(pref.preference, data.get("preference"))
def test_user_preference_timezone(self): """Test that valid timezones are saved.""" user = None serializer = UserSerializer(data=self.user_data, context=self.request_context) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {"context": {"user": user}} data = { "name": "timezone", "description": self.fake.text(), "preference": { "timezone": "Antarctica/Troll" } } pref = list(UserPreference.objects.filter(user=user, name="timezone")).pop() self.assertIsNotNone(pref) self.assertIsInstance(pref, UserPreference) serializer = UserPreferenceSerializer(pref, data=data, **kwargs) if serializer.is_valid(raise_exception=True): pref = serializer.save() self.assertEqual(pref.name, data.get("name")) self.assertEqual(pref.description, data.get("description")) self.assertEqual(pref.preference, data.get("preference"))
def test_user_preference_duplicate(self): """Test that we fail to create arbitrary preference if it already exits.""" user = None serializer = UserSerializer(data=self.user_data) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {'context': {'user': user}} test_pref = {'foo': ['a', [1, 2, 3], {'b': 'c'}]} data = {'name': self.fake.word(), 'description': self.fake.text(), 'preference': test_pref} serializer = UserPreferenceSerializer(data=data, **kwargs) if serializer.is_valid(raise_exception=True): serializer.save() with self.assertRaises(IntegrityError): serializer = UserPreferenceSerializer(data=data, **kwargs) if serializer.is_valid(raise_exception=True): serializer.save()
def test_user_preference_duplicate(self): """Test that we fail to create arbitrary preference if it already exits.""" user = None serializer = UserSerializer(data=self.user_data, context=self.request_context) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {"context": {"user": user}} test_pref = {"foo": ["a", [1, 2, 3], {"b": "c"}]} data = { "name": self.fake.word(), "description": self.fake.text(), "preference": test_pref } serializer = UserPreferenceSerializer(data=data, **kwargs) if serializer.is_valid(raise_exception=True): serializer.save() with self.assertRaises(IntegrityError): serializer = UserPreferenceSerializer(data=data, **kwargs) if serializer.is_valid(raise_exception=True): serializer.save()
def test_user_preference_currency_invalid(self): """Test that we fail to create invalid preference.""" user = None serializer = UserSerializer(data=self.user_data) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {'context': {'user': user}} data = {'name': 'currency', 'description': self.fake.text(), 'preference': {'currency': 'LOL'}} with self.assertRaises(ValidationError): serializer = UserPreferenceSerializer(data=data, **kwargs) if serializer.is_valid(raise_exception=True): serializer.save()
def test_user_preference_timezone_invalid(self): """Test that we fail to create invalid preference.""" user = None serializer = UserSerializer(data=self.user_data, context=self.request_context) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {'context': {'user': user}} data = {'name': 'timezone', 'description': self.fake.text(), 'preference': {'timezone': 'Glapflap/Parblesnops'}} with self.assertRaises(ValidationError): serializer = UserPreferenceSerializer(data=data, **kwargs) if serializer.is_valid(raise_exception=True): serializer.save()
def test_user_preference_arbitrary(self): """Test that we can set and retrieve an arbitrary preference.""" user = None serializer = UserSerializer(data=self.user_data) if serializer.is_valid(raise_exception=True): user = serializer.save() test_pref = {'foo': ['a', [1, 2, 3], {'b': 'c'}]} data = {'user': model_to_dict(user), 'preference': test_pref} serializer = UserPreferenceSerializer(data=data) if serializer.is_valid(raise_exception=True): serializer.save() query = UserPreference.objects.filter(user__exact=user) self.assertEqual(len(query), len(self.preference_defaults) + 1) prefs = [q.preference for q in query] self.assertIn(test_pref, prefs)
def test_user_preference_arbitrary(self): """Test that we can set and retrieve an arbitrary preference.""" user = None serializer = UserSerializer(data=self.user_data) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {'context': {'user': user}} test_pref = {'foo': ['a', [1, 2, 3], {'b': 'c'}]} data = {'name': self.fake.word(), 'description': self.fake.text(), 'preference': test_pref} serializer = UserPreferenceSerializer(data=data, **kwargs) if serializer.is_valid(raise_exception=True): serializer.save() query = UserPreference.objects.filter(user__exact=user) self.assertEqual(len(query), len(self.preference_defaults) + 1) prefs = [q.preference for q in query] self.assertIn(test_pref, prefs)
def test_user_preference_currency_invalid(self): """Test that we fail to create invalid preference.""" user = None serializer = UserSerializer(data=self.user_data, context=self.request_context) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {"context": {"user": user}} data = { "name": "currency", "description": self.fake.text(), "preference": { "currency": "LOL" } } with self.assertRaises(ValidationError): serializer = UserPreferenceSerializer(data=data, **kwargs) if serializer.is_valid(raise_exception=True): serializer.save()
def test_user_preference_arbitrary(self): """Test that we can set and retrieve an arbitrary preference.""" user = None serializer = UserSerializer(data=self.user_data, context=self.request_context) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {"context": {"user": user}} test_pref = {"foo": ["a", [1, 2, 3], {"b": "c"}]} data = { "name": self.fake.word(), "description": self.fake.text(), "preference": test_pref } serializer = UserPreferenceSerializer(data=data, **kwargs) if serializer.is_valid(raise_exception=True): serializer.save() query = UserPreference.objects.filter(user__exact=user) self.assertEqual(len(query), len(self.preference_defaults) + 1) prefs = [q.preference for q in query] self.assertIn(test_pref, prefs)
def test_user_preference_locale(self): """Test that valid locales are saved.""" user = None serializer = UserSerializer(data=self.user_data) if serializer.is_valid(raise_exception=True): user = serializer.save() kwargs = {'context': {'user': user}} data = {'name': 'locale', 'description': self.fake.text(), 'preference': {'locale': 'tg_TJ.KOI8-C'}} pref = list(UserPreference.objects.filter(user=user, name='locale')).pop() self.assertIsNotNone(pref) self.assertIsInstance(pref, UserPreference) serializer = UserPreferenceSerializer(pref, data=data, **kwargs) if serializer.is_valid(raise_exception=True): serializer.save() self.assertEqual(pref.name, data.get('name')) self.assertEqual(pref.description, data.get('description')) self.assertEqual(pref.preference, data.get('preference'))