Skip to content
Snippets Groups Projects
Commit 037f8297 authored by Chris Li's avatar Chris Li
Browse files

Add some tests.

parent d42d4a7f
No related branches found
No related tags found
No related merge requests found
from django.contrib.auth.models import User
from rest_framework.test import APIClient
from rest_framework.test import APITestCase
from rest_framework import status
from .models.profile import Profile
class ProfileTestCase(APITestCase):
"""
Test suite for Contact
"""
def setUp(self):
self.client = APIClient()
self.data = {
"username": "xjhmlcy",
"email": "xjhmlcy@gmail.com",
"password": "abcdefg123"
}
self.url = "/api/auth/register"
def test_create_contact(self):
'''
test ContactViewSet create method
'''
data = self.data
response = self.client.post(self.url, data)
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(User.objects.count(), 1)
self.assertEqual(Profile.objects.count(), 1)
self.assertEqual(User.objects.get().username, "xjhmlcy")
self.assertEqual(Profile.objects.get().user.email, "xjhmlcy@gmail.com")
from django.contrib.auth.models import User
from rest_framework.test import APITestCase
from rest_framework import status
from knox.models import AuthToken
from core.models.profile import Profile
class AuthTests(APITestCase):
"""
Test suite for Auth
"""
def add_test_person(self, username, email, password):
user = User.objects.create_user(username=username, email=email, password=password)
return AuthToken.objects.create(user)
def test_register_default(self):
url = "/api/auth/register"
data = {
"username": "xjhmlcy",
"email": "xjhmlcy@gmail.com",
"password": "abcdefg123"
}
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(User.objects.count(), 1)
self.assertEqual(Profile.objects.count(), 1)
self.assertEqual(User.objects.get().username, data["username"])
self.assertEqual(Profile.objects.get().user.email, data["email"])
self.assertFalse(User.objects.get().is_active)
def test_register_exist_email(self):
url = "/api/auth/register"
data1 = {
"username": "xjhmlcy",
"email": "xjhmlcy@gmail.com",
"password": "abcdefg123"
}
data2 = {
"username": "xjhmlcy_1",
"email": "xjhmlcy@gmail.com",
"password": "abcdefg123"
}
response = self.client.post(url, data1, format='json')
response = self.client.post(url, data2, format='json')
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(User.objects.count(), 1)
self.assertEqual(Profile.objects.count(), 1)
self.assertEqual(User.objects.get().username, data1["username"])
self.assertEqual(Profile.objects.get().user.email, data1["email"])
def test_register_exist_username(self):
url = "/api/auth/register"
data1 = {
"username": "xjhmlcy",
"email": "xjhmlcy@gmail.com",
"password": "abcdefg123"
}
data2 = {
"username": "xjhmlcy",
"email": "xjhmlcy123@gmail.com",
"password": "abcdefg123"
}
response = self.client.post(url, data1, format='json')
response = self.client.post(url, data2, format='json')
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(User.objects.count(), 1)
self.assertEqual(Profile.objects.count(), 1)
self.assertEqual(User.objects.get().username, data1["username"])
self.assertEqual(Profile.objects.get().user.email, data1["email"])
def test_login_default_by_username(self):
username = "xjhmlcy"
email = "xjhmlcy123@gmail.com"
password = "abcdefg123"
token, token_key = self.add_test_person(username, email, password)
url = "/api/auth/login"
data = {
"username": username,
"password": password
}
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertIsNotNone(response.data.get('user', None))
self.assertEqual(response.data['user'].get('id', None), token.user.id)
self.assertEqual(response.data['user'].get('username', None), token.user.username)
self.assertEqual(response.data['user'].get('email', None), token.user.email)
def test_login_default_by_email(self):
username = "xjhmlcy"
email = "xjhmlcy123@gmail.com"
password = "abcdefg123"
token, token_key = self.add_test_person(username, email, password)
url = "/api/auth/login"
data = {
"username": email,
"password": password
}
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertIsNotNone(response.data.get('user', None))
self.assertEqual(response.data['user'].get('id', None), token.user.id)
self.assertEqual(response.data['user'].get('username', None), token.user.username)
self.assertEqual(response.data['user'].get('email', None), token.user.email)
def test_login_wrong_password(self):
username = "xjhmlcy"
email = "xjhmlcy123@gmail.com"
password = "abcdefg123"
token, token_key = self.add_test_person(username, email, password)
url = "/api/auth/login"
data = {
"username": email,
"password": password + "456"
}
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_login_no_username(self):
url = "/api/auth/login"
data = {
"username": '123456',
"password": "12345678"
}
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
from django.contrib.auth.models import User
from rest_framework.test import APITestCase
from rest_framework import status
from knox.models import AuthToken
from core.models.coupon import Coupon, CouponCategory
class CouponTests(APITestCase):
"""
Test suite for Coupon
"""
def add_test_person(self, username, email, password):
user = User.objects.create_user(username=username, email=email, password=password)
return AuthToken.objects.create(user)
def add_test_coupon(self):
coupon_category = CouponCategory.objects.create(category='sports', sub_category='sneakers')
coupon = Coupon.objects.create(store='Apple', start_date='2022-12-31', expire_date='2023-12-31')
coupon.categories.add(coupon_category)
coupon.save()
def test_register_default(self):
username = "xjhmlcy"
email = "xjhmlcy123@gmail.com"
password = "abcdefg123"
token, token_key = self.add_test_person(username, email, password)
self.client.credentials(HTTP_AUTHORIZATION='Token ' + token_key)
self.add_test_coupon()
url = "/api/coupon"
response = self.client.get(url)
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(Coupon.objects.count(), 1)
self.assertEqual(CouponCategory.objects.count(), 1)
self.assertEqual(response.data[0].get('store', None), 'Apple')
from django.contrib.auth.models import User
from rest_framework.test import APITestCase
from rest_framework import status
from knox.models import AuthToken
from core.models.profile import Profile
class ProfileTests(APITestCase):
"""
Test suite for Profile
"""
def add_test_person(self):
user = User(username='xjhmlcy', email='xjhmlcy@gmail.com', password='abcdefg123')
user.save()
return AuthToken.objects.create(user)
def test_retrive_profile(self):
token, token_key = self.add_test_person()
self.client.credentials(HTTP_AUTHORIZATION='Token ' + token_key)
url = "http://localhost:8000/api/profile"
response = self.client.get(url)
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertIsNotNone(response.data.get('user', None))
self.assertEqual(response.data['user'].get('username'), token.user.username)
self.assertEqual(response.data['user'].get('email'), token.user.email)
self.assertEqual(response.data.get('bio'), '')
self.assertEqual(response.data.get('birthday'), None)
self.assertEqual(response.data.get('country'), '')
self.assertEqual(response.data.get('city'), '')
self.assertEqual(response.data.get('affiliation'), '')
self.assertEqual(response.data.get('photo'), 'http://testserver/media/https%3A/static.productionready.io/images/smiley-cyrus.jpg')
def test_update_profile(self):
token, token_key = self.add_test_person()
self.client.credentials(HTTP_AUTHORIZATION='Token ' + token_key)
url = "http://localhost:8000/api/profile"
data = {
'bio': 'Hello, world!',
'birthday': '2000-03-09',
'country': 'CA',
'city': 'Waterloo',
'affiliation': 'University of Waterloo'
}
response = self.client.patch(url, data)
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertIsNotNone(response.data.get('user', None))
self.assertEqual(response.data['user'].get('username'), token.user.username)
self.assertEqual(response.data['user'].get('email'), token.user.email)
self.assertEqual(response.data.get('bio'), data['bio'])
self.assertEqual(response.data.get('birthday'), str(data['birthday']))
self.assertEqual(response.data.get('country'), data['country'])
self.assertEqual(response.data.get('city'), data['city'])
self.assertEqual(response.data.get('affiliation'), data['affiliation'])
self.assertEqual(response.data.get('photo'), 'http://testserver/media/https%3A/static.productionready.io/images/smiley-cyrus.jpg')
def test_update_username(self):
token, token_key = self.add_test_person()
self.client.credentials(HTTP_AUTHORIZATION='Token ' + token_key)
url = "http://localhost:8000/api/profile"
data = {
'user': {
'username': 'apple'
}
}
response = self.client.patch(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertIsNotNone(User.objects.get(username=data['user']['username']))
self.assertIsNotNone(response.data.get('user', None))
self.assertEqual(response.data['user'].get('username', None), data['user']['username'])
def test_update_email(self):
token, token_key = self.add_test_person()
self.client.credentials(HTTP_AUTHORIZATION='Token ' + token_key)
url = "http://localhost:8000/api/profile"
data = {
'user': {
'email': 'apple@gmail.com'
}
}
response = self.client.patch(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertIsNotNone(User.objects.get(email=data['user']['email']))
self.assertFalse(User.objects.get(email=data['user']['email']).is_active)
self.assertIsNotNone(response.data.get('user', None))
self.assertEqual(response.data['user'].get('email', None), data['user']['email'])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment