Exemple #1
0
 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())
Exemple #2
0
    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'])
Exemple #3
0
 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')
Exemple #4
0
 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)
Exemple #5
0
    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)
Exemple #6
0
 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, '*****@*****.**')
Exemple #7
0
 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)
Exemple #8
0
 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)
Exemple #9
0
    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)
Exemple #10
0
 def me(self, request):
     serializer = UserSerializer(request.user)
     return JSONResponse(serializer.data)