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)