Files
zod-backend/account/tests.py
2023-09-11 14:39:01 +05:30

61 lines
1.8 KiB
Python

"""
test cases file of account
"""
# django imports
from django.test import TestCase
from rest_framework.test import APIClient
from rest_framework import status
from django.contrib.auth.models import User
from django.urls import reverse
from rest_framework_simplejwt.tokens import RefreshToken
class UserLoginTestCase(TestCase):
"""
test cases for login
"""
def setUp(self):
"""
set up data
:return:
"""
self.client = APIClient()
self.user_email = 'user@example.com'
self.user = User.objects.create_superuser(username=self.user_email, email=self.user_email)
self.user.set_password('user@1234')
self.user.save()
def test_admin_login_success(self):
"""
test admin login with valid credentials
:return:
"""
url = reverse('account:admin-login')
data = {
'email': self.user_email,
'password': 'user@1234',
}
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertIn('auth_token', response.data['data'])
self.assertIn('refresh_token', response.data['data'])
self.assertEqual(response.data['data']['username'], data['email'])
def test_admin_login_invalid_credentials(self):
"""
test admin login with invalid credentials
:return:
"""
url = reverse('account:admin-login')
data = {
'email': self.user_email,
'password': 'user@1235',
}
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertNotIn('auth_token', response.data)
self.assertNotIn('refresh_token', response.data)
# Add more test cases as needed