Exemple #1
0
class PrivateUserApiTests(TestCase):
    """Test requests that require authentication"""
    def setUp(self):
        self.user = create_user(email='*****@*****.**',
                                password='******',
                                name='jon')
        self.client = APIClient()
        self.client.force_authentication(user=self.user)

    def test_retrieve_profile_success(self):
        """Test retrieving profile for logged in users"""
        res = self.client.get(ME_URL)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, {
            'name': self.user.name,
            'email': self.user.email
        })

    def test_post_me_not_allowed(self):
        """Test that POST is not allowed on the me url"""
        res = self.client.post(ME_URL, {})

        self.assertEqual(res.status_code, status.HTTP_405_METHOD_NOT_ALLOWED)

    def test_update_user_profile(self):
        """Test update user profile for authenticated user"""
        payload = {'name': 'new name', 'password': '******'}

        res = self.client.patch(ME_URL, payload)

        self.user.refresh_from_db()
        self.assertEqual(self.user.name, payload['name'])
        self.assertTrue(self.user.check_password(payload['password']))
        self.assertEqual(res.status_code, status.HTTP_200_OK)