gault-millau/apps/account/tests/tests_back.py
2019-11-20 09:11:17 +03:00

136 lines
4.2 KiB
Python

from http.cookies import SimpleCookie
from django.urls import reverse
from rest_framework import status
from rest_framework.test import APITestCase
from account.models import Role, User
from authorization.tests.tests_authorization import get_tokens_for_user
from location.models import Country
class RoleTests(APITestCase):
def setUp(self):
self.data = get_tokens_for_user()
self.client.cookies = SimpleCookie(
{'access_token': self.data['tokens'].get('access_token'),
'refresh_token': self.data['tokens'].get('access_token')})
def test_role_get(self):
url = reverse('back:account:role-list-create')
response = self.client.get(url)
self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_role_post(self):
url = reverse('back:account:role-list-create')
country = Country.objects.create(
name='{"ru-RU":"Russia"}',
code='23',
low_price=15,
high_price=150000
)
country.save()
data = {
"role": 2,
"country": country.pk
}
response = self.client.post(url, data=data, format='json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
class UserRoleTests(APITestCase):
def setUp(self):
self.data = get_tokens_for_user()
self.client.cookies = SimpleCookie(
{'access_token': self.data['tokens'].get('access_token'),
'refresh_token': self.data['tokens'].get('access_token')})
self.country_ru = Country.objects.create(
name='{"ru-RU":"Russia"}',
code='23',
low_price=15,
high_price=150000
)
self.country_ru.save()
self.country_en = Country.objects.create(
name='{"en-GB":"England"}',
code='25',
low_price=15,
high_price=150000
)
self.country_en.save()
self.role = Role.objects.create(
role=2,
country=self.country_ru
)
self.role.save()
self.user_test = User.objects.create_user(
username='test',
email='testemail@mail.com',
password='passwordtest'
)
def test_user_role_post(self):
url = reverse('back:account:user-role-list-create')
data = {
"user": self.user_test.id,
"role": self.role.id
}
response = self.client.post(url, data=data, format='json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
class UserTestCase(APITestCase):
def setUp(self):
self.user_1 = User.objects.create_user(
username='alex',
email='alex@mail.com',
password='alex_password',
is_staff=True,
)
self.user_2 = User.objects.create_user(
username='boris',
email='boris@mail.com',
password='boris_password',
)
# get tokens
tokens = User.create_jwt_tokens(self.user_1)
self.client.cookies = SimpleCookie(
{'access_token': tokens.get('access_token'),
'refresh_token': tokens.get('refresh_token')})
def test_user_CRUD(self):
response = self.client.get('/api/back/account/user/', format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
data = {
'username': 'roman',
'email': 'roman@mail.com',
'password': 'roman_password',
}
response = self.client.post('/api/back/account/user/', data=data)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
response = self.client.get(f'/api/back/account/user/{self.user_2.id}/', format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
update_data = {
'first_name': 'Boris'
}
response = self.client.patch(f'/api/back/account/user/{self.user_2.id}/', data=update_data)
self.assertEqual(response.status_code, status.HTTP_200_OK)
response = self.client.delete(f'/api/back/account/user/{self.user_2.id}/')
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)