def test_userprefupdateview(self): self.apiclient.force_authenticate(user=self.user) response = self.apiclient.put('/api/user/preferences/', data={ "age": "b", "gender": "f", "size": "s" }, format='json') expected = UserPrefSerializer(UserPref.objects.get(user=self.user)) self.assertJSONEqual(response.content, expected.data)
def put(self, request, *args, **kwargs): obj = UserPref.objects.get(user=self.request.user) if request.method == 'PUT': obj.age = request.data.get('age') obj.gender = request.data.get('gender') obj.size = request.data.get('size') obj.save() serializer = UserPrefSerializer(obj) return Response(serializer.data)
def test_validate_userpref_good_size(self): self.user_pref_1['gender'] = 'm' serializer = UserPrefSerializer(data=self.user_pref_1) self.assertTrue(serializer.is_valid())
def test_validate_userpref_bad_size(self): self.user_pref_1['size'] = 'z' serializer = UserPrefSerializer(data=self.user_pref_1) self.assertFalse(serializer.is_valid()) self.assertEqual(set(serializer.errors.keys()), set(['size']))
def test_validate_userpref_good_age(self): self.user_pref_1['age'] = 's' serializer = UserPrefSerializer(data=self.user_pref_1) self.assertTrue(serializer.is_valid())
class UserPrefSerializerTestCase(TestCase): def setUp(self): self.test_serializer = UserPrefSerializer() def test_invalid_age_character_triggers_validationerror(self): with self.assertRaises(serializers.ValidationError): self.test_serializer.validate_age('x') def test_repeated_age_character_triggers_validationerror(self): with self.assertRaises(serializers.ValidationError): self.test_serializer.validate_age('bb') def test_invalid_gender_character_triggers_validationerror(self): with self.assertRaises(serializers.ValidationError): self.test_serializer.validate_gender('q') def test_repeated_gender_character_triggers_validationerror(self): with self.assertRaises(serializers.ValidationError): self.test_serializer.validate_gender('ff') def test_invalid_size_character_triggers_validationerror(self): with self.assertRaises(serializers.ValidationError): self.test_serializer.validate_size('x') def test_repeated_size_character_triggers_validationerror(self): with self.assertRaises(serializers.ValidationError): self.test_serializer.validate_size('ll')
def setUp(self): self.test_serializer = UserPrefSerializer()