def test_serializer_user_no_profile(self): data = { 'email': '*****@*****.**', 'first_name': 'John', 'last_name': 'Smith', 'password': '******' } serializer = UserSerializer(data=data) self.assertTrue(serializer.is_valid())
def test_user_serializer_has_correct_staff_val(self): user = User.objects.create_user(username="******", password="******", is_staff=True) serializer = UserSerializer(user) self.assertTrue(serializer.data['isStaff']) user.is_staff = False user.save() serializer = UserSerializer(user) self.assertFalse(serializer.data['isStaff'])
def test_serializer_user_password_hashed(self): data = { 'email': '*****@*****.**', 'first_name': 'John', 'last_name': 'Smith', 'password': '******', 'profile': {} } serializer = UserSerializer(data=data) if not serializer.is_valid(): self.fail(serializer.errors) serializer.save() user = User.objects.get(email='*****@*****.**') self.assertTrue(user) self.assertTrue(user.password) self.assertNotEqual(user.password, 'hunter2')
def test_get_me(self): url = reverse('user-me') token = self._create_token(self.test_user, 'read') serializer = UserSerializer(self.test_user) response = self.client.get( url, HTTP_AUTHORIZATION=self._get_auth_header(token=token.token)) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(json.loads(response.content.decode('utf-8')), serializer.data)
def setUp(self): user_s = UserSerializer( data={ 'email': '*****@*****.**', 'first_name': 'John', 'last_name': 'Smith', 'password': '******', 'profile': { 'position': 'Consultant', 'department': 'HR', 'dateOfBirth': '2000-11-30', 'joinDate': '2016-01-03', 'bio': 'I like people, places and things' } }) user_s.is_valid() self.user = user_s.save() user_s = UserSerializer( data={ 'email': '*****@*****.**', 'first_name': 'Jane', 'last_name': 'Smith', 'password': '******', 'profile': { 'position': 'IT Specialist', 'department': 'Tech', 'dateOfBirth': '1990-10-30', 'joinDate': '2014-01-03', 'bio': 'I like people, places and things' } }) user_s.is_valid() self.other_user = user_s.save() self.programme = Programme.objects.create( name='Test Programme', description='This is a test programme.', defaultCohortSize=100, createdBy=self.user) self.cohort = Cohort.objects.create( programme=self.programme, createdBy=self.user, cohortSize=self.programme.defaultCohortSize)
def test_serialize_valid_user(self): data = { 'email': '*****@*****.**', 'first_name': 'John', 'last_name': 'Smith', 'password': '******', 'profile': { 'position': 'Consultant', 'department': 'HR', 'dateOfBirth': '2000-11-30', 'joinDate': '2016-01-03', 'bio': 'I like people, places and things' } } serializer = UserSerializer(data=data) if not serializer.is_valid(): self.fail(serializer.errors) serializer.save() user = User.objects.get(email='*****@*****.**') self.assertTrue(user) self.assertEqual(user.username, '*****@*****.**')
def partial_me(self, request, **kwargs): serializer = UserSerializer(request.user, data=request.data, partial=True) serializer.is_valid(raise_exception=True) serializer.save() return JSONResponse(serializer.data)
def patch(self, request, *args, **kwargs): serializer = UserSerializer(self.get_object(), data=request.data, partial=True) serializer.is_valid(raise_exception=True) serializer.save() return JSONResponse(serializer.data)
def create(self, request): userdata = dict(request.data) userdata.pop("profile", None) serializer = UserSerializer(data=userdata) serializer.is_valid(raise_exception=True) serializer.save() if 'profile' in serializer.validated_data: up_serializer = UserProfileSerializer(data=request.user.profile) up_serializer.is_valid(raise_exception=True) profile = User.objects.get(username=request.data.email) up_serializer.update(profile, request.user.profile) serializer = UserSerializer( User.objects.get(username=serializer.email)) return JSONResponse(serializer.data, status=status.HTTP_201_CREATED) else: return JSONResponse(serializer.data, status=status.HTTP_201_CREATED)
def me(self, request): serializer = UserSerializer(request.user) return JSONResponse(serializer.data)