gault-millau/apps/product/tests.py
Виктор Гладких 3aa1ca98e0 Add test post
2019-12-10 12:50:38 +03:00

115 lines
3.6 KiB
Python

from rest_framework.test import APITestCase
from rest_framework import status
from account.models import User
from http.cookies import SimpleCookie
from django.urls import reverse
# Create your tests here.
from translation.models import Language
from account.models import Role, UserRole
from location.models import Country, Address, City, Region
from main.models import SiteSettings
from product.models import Product
class BaseTestCase(APITestCase):
def setUp(self):
self.username = 'sedragurda'
self.password = 'sedragurdaredips19'
self.email = 'sedragurda@desoz.com'
self.newsletter = True
self.user = User.objects.create_user(
username=self.username,
email=self.email,
password=self.password,
is_staff=True,
)
# get tokens
tokens = User.create_jwt_tokens(self.user)
self.client.cookies = SimpleCookie(
{'access_token': tokens.get('access_token'),
'refresh_token': tokens.get('refresh_token')})
self.lang = Language.objects.create(
title='Russia',
locale='ru-RU'
)
self.country_ru = Country.objects.create(
name={'en-GB': 'Russian'},
code='RU',
)
self.region = Region.objects.create(name='Moscow area', code='01',
country=self.country_ru)
self.region.save()
self.city = City.objects.create(
name='Mosocow', code='01',
region=self.region,
country=self.country_ru)
self.city.save()
self.address = Address.objects.create(
city=self.city, street_name_1='Krasnaya',
number=2, postal_code='010100')
self.address.save()
self.site = SiteSettings.objects.create(
subdomain='ru',
country=self.country_ru
)
self.site.save()
self.role = Role.objects.create(role=Role.LIQUOR_REVIEWER,
site=self.site)
self.role.save()
self.user_role = UserRole.objects.create(
user=self.user, role=self.role)
self.user_role.save()
self.product = Product.objects.create()
self.product.save()
class LiquorReviewerTests(BaseTestCase):
def test_get(self):
url = reverse("back:product:list-create")
response = self.client.get(url, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
url = reverse("back:product:rud", kwargs={'pk': self.product.id})
response = self.client.get(url, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_post_patch_put_delete(self):
# POST
data_post = {
"slug": None,
"public_mark": None,
"vintage": None,
"average_price": None,
"description": None,
"available": False,
"establishment": None,
"wine_village": None,
"in_favorites": 'false',
"state": Product.PUBLISHED
}
url = reverse("back:product:list-create")
response = self.client.post(url, data=data_post, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
data_patch = {
'name': 'Test product'
}
url = reverse("back:product:rud", kwargs={'pk': self.product.id})
response = self.client.patch(url, data=data_patch, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)