Fix merge
This commit is contained in:
commit
fb770f8e2a
|
|
@ -1,10 +1,13 @@
|
||||||
from rest_framework.test import APITestCase
|
|
||||||
from rest_framework import status
|
|
||||||
from authorization.tests.tests_authorization import get_tokens_for_user
|
|
||||||
from django.urls import reverse
|
|
||||||
from http.cookies import SimpleCookie
|
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
|
from location.models import Country
|
||||||
from account.models import Role, User, UserRole
|
|
||||||
|
|
||||||
class RoleTests(APITestCase):
|
class RoleTests(APITestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
@ -65,9 +68,11 @@ class UserRoleTests(APITestCase):
|
||||||
)
|
)
|
||||||
self.role.save()
|
self.role.save()
|
||||||
|
|
||||||
self.user_test = User.objects.create_user(username='test',
|
self.user_test = User.objects.create_user(
|
||||||
email='testemail@mail.com',
|
username='test',
|
||||||
password='passwordtest')
|
email='testemail@mail.com',
|
||||||
|
password='passwordtest'
|
||||||
|
)
|
||||||
|
|
||||||
def test_user_role_post(self):
|
def test_user_role_post(self):
|
||||||
url = reverse('back:account:user-role-list-create')
|
url = reverse('back:account:user-role-list-create')
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
from rest_framework.test import APITestCase
|
|
||||||
from rest_framework import status
|
|
||||||
from authorization.tests.tests_authorization import get_tokens_for_user
|
|
||||||
from http.cookies import SimpleCookie
|
from http.cookies import SimpleCookie
|
||||||
from account.models import User
|
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
from rest_framework import status
|
||||||
|
from rest_framework.test import APITestCase
|
||||||
|
|
||||||
|
from account.models import User
|
||||||
|
from authorization.tests.tests_authorization import get_tokens_for_user
|
||||||
|
|
||||||
|
|
||||||
class AccountUserTests(APITestCase):
|
class AccountUserTests(APITestCase):
|
||||||
|
|
@ -62,7 +64,7 @@ class AccountChangePasswordTests(APITestCase):
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
class AccountChangePasswordTests(APITestCase):
|
class AccountConfirmEmail(APITestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.data = get_tokens_for_user()
|
self.data = get_tokens_for_user()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
from rest_framework.test import APITestCase
|
|
||||||
from account.models import User
|
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
# Create your tests here.
|
from rest_framework.test import APITestCase
|
||||||
|
|
||||||
|
from account.models import User
|
||||||
|
|
||||||
|
|
||||||
def get_tokens_for_user(
|
def get_tokens_for_user(
|
||||||
|
|
@ -28,7 +28,7 @@ class AuthorizationTests(APITestCase):
|
||||||
self.password = data["password"]
|
self.password = data["password"]
|
||||||
|
|
||||||
def LoginTests(self):
|
def LoginTests(self):
|
||||||
data ={
|
data = {
|
||||||
'username_or_email': self.username,
|
'username_or_email': self.username,
|
||||||
'password': self.password,
|
'password': self.password,
|
||||||
'remember': True
|
'remember': True
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
from utils.tests.tests_permissions import BasePermissionTests
|
|
||||||
from rest_framework import status
|
|
||||||
from authorization.tests.tests_authorization import get_tokens_for_user
|
|
||||||
from django.urls import reverse
|
|
||||||
from django.contrib.contenttypes.models import ContentType
|
|
||||||
from http.cookies import SimpleCookie
|
from http.cookies import SimpleCookie
|
||||||
|
|
||||||
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
from django.urls import reverse
|
||||||
|
from rest_framework import status
|
||||||
|
|
||||||
from account.models import Role, User, UserRole
|
from account.models import Role, User, UserRole
|
||||||
|
from authorization.tests.tests_authorization import get_tokens_for_user
|
||||||
from comment.models import Comment
|
from comment.models import Comment
|
||||||
|
from utils.tests.tests_permissions import BasePermissionTests
|
||||||
|
|
||||||
|
|
||||||
class CommentModeratorPermissionTests(BasePermissionTests):
|
class CommentModeratorPermissionTests(BasePermissionTests):
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,11 @@ class EstablishmentQuerySet(models.QuerySet):
|
||||||
def with_type_related(self):
|
def with_type_related(self):
|
||||||
return self.prefetch_related('establishment_subtypes')
|
return self.prefetch_related('establishment_subtypes')
|
||||||
|
|
||||||
|
def with_es_related(self):
|
||||||
|
"""Return qs with related for ES indexing objects."""
|
||||||
|
return self.select_related('address', 'establishment_type', 'address__city', 'address__city__country').\
|
||||||
|
prefetch_related('tags', 'schedule')
|
||||||
|
|
||||||
def search(self, value, locale=None):
|
def search(self, value, locale=None):
|
||||||
"""Search text in JSON fields."""
|
"""Search text in JSON fields."""
|
||||||
if locale is not None:
|
if locale is not None:
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
"""Establishment app tasks."""
|
"""Establishment app tasks."""
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from celery import shared_task
|
from celery import shared_task
|
||||||
|
from celery.schedules import crontab
|
||||||
|
from celery.task import periodic_task
|
||||||
|
from django.core import management
|
||||||
|
from django_elasticsearch_dsl.management.commands import search_index
|
||||||
|
|
||||||
from establishment import models
|
from establishment import models
|
||||||
from location.models import Country
|
from location.models import Country
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -12,10 +17,15 @@ logger = logging.getLogger(__name__)
|
||||||
def recalculate_price_levels_by_country(country_id):
|
def recalculate_price_levels_by_country(country_id):
|
||||||
try:
|
try:
|
||||||
country = Country.objects.get(pk=country_id)
|
country = Country.objects.get(pk=country_id)
|
||||||
except Country.DoesNotExist as ex:
|
except Country.DoesNotExist as _:
|
||||||
logger.error(f'ESTABLISHMENT. Country does not exist. ID {country_id}')
|
logger.error(f'ESTABLISHMENT. Country does not exist. ID {country_id}')
|
||||||
else:
|
else:
|
||||||
qs = models.Establishment.objects.filter(address__city__country=country)
|
qs = models.Establishment.objects.filter(address__city__country=country)
|
||||||
for establishment in qs:
|
for establishment in qs:
|
||||||
establishment.recalculate_price_level(low_price=country.low_price,
|
establishment.recalculate_price_level(low_price=country.low_price,
|
||||||
high_price=country.high_price)
|
high_price=country.high_price)
|
||||||
|
|
||||||
|
@periodic_task(run_every=crontab(minute=59))
|
||||||
|
def rebuild_establishment_indices():
|
||||||
|
management.call_command(search_index.Command(), action='rebuild', models=[models.Establishment.__name__],
|
||||||
|
force=True)
|
||||||
|
|
|
||||||
|
|
@ -20,13 +20,14 @@ class BaseTestCase(APITestCase):
|
||||||
self.newsletter = True
|
self.newsletter = True
|
||||||
self.user = User.objects.create_user(
|
self.user = User.objects.create_user(
|
||||||
username=self.username, email=self.email, password=self.password)
|
username=self.username, email=self.email, password=self.password)
|
||||||
#get tokkens
|
# get tokens
|
||||||
tokkens = User.create_jwt_tokens(self.user)
|
tokens = User.create_jwt_tokens(self.user)
|
||||||
self.client.cookies = SimpleCookie(
|
self.client.cookies = SimpleCookie(
|
||||||
{'access_token': tokkens.get('access_token'),
|
{'access_token': tokens.get('access_token'),
|
||||||
'refresh_token': tokkens.get('refresh_token')})
|
'refresh_token': tokens.get('refresh_token')})
|
||||||
|
|
||||||
self.establishment_type = EstablishmentType.objects.create(name="Test establishment type")
|
self.establishment_type = EstablishmentType.objects.create(
|
||||||
|
name="Test establishment type")
|
||||||
|
|
||||||
# Create lang object
|
# Create lang object
|
||||||
self.lang = Language.objects.get(
|
self.lang = Language.objects.get(
|
||||||
|
|
@ -42,12 +43,15 @@ class BaseTestCase(APITestCase):
|
||||||
country=self.country_ru)
|
country=self.country_ru)
|
||||||
self.region.save()
|
self.region.save()
|
||||||
|
|
||||||
self.city = City.objects.create(name='Mosocow', code='01',
|
self.city = City.objects.create(
|
||||||
region=self.region, country=self.country_ru)
|
name='Mosocow', code='01',
|
||||||
|
region=self.region,
|
||||||
|
country=self.country_ru)
|
||||||
self.city.save()
|
self.city.save()
|
||||||
|
|
||||||
self.address = Address.objects.create(city=self.city, street_name_1='Krasnaya',
|
self.address = Address.objects.create(
|
||||||
number=2, postal_code='010100')
|
city=self.city, street_name_1='Krasnaya',
|
||||||
|
number=2, postal_code='010100')
|
||||||
self.address.save()
|
self.address.save()
|
||||||
|
|
||||||
self.role = Role.objects.create(role=Role.ESTABLISHMENT_MANAGER)
|
self.role = Role.objects.create(role=Role.ESTABLISHMENT_MANAGER)
|
||||||
|
|
@ -63,8 +67,9 @@ class BaseTestCase(APITestCase):
|
||||||
|
|
||||||
self.establishment.save()
|
self.establishment.save()
|
||||||
|
|
||||||
self.user_role = UserRole.objects.create(user=self.user, role=self.role,
|
self.user_role = UserRole.objects.create(
|
||||||
establishment=self.establishment)
|
user=self.user, role=self.role,
|
||||||
|
establishment=self.establishment)
|
||||||
self.user_role.save()
|
self.user_role.save()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -128,12 +133,11 @@ class EmployeeTests(BaseTestCase):
|
||||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||||
|
|
||||||
|
|
||||||
# Class to test childs
|
|
||||||
class ChildTestCase(BaseTestCase):
|
class ChildTestCase(BaseTestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
# Test childs
|
|
||||||
class EmailTests(ChildTestCase):
|
class EmailTests(ChildTestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
|
||||||
|
|
@ -61,9 +61,6 @@ class BaseTestCase(APITestCase):
|
||||||
description={"en-GB": "description of test establishment"},
|
description={"en-GB": "description of test establishment"},
|
||||||
establishment_type=self.test_establishment_type,
|
establishment_type=self.test_establishment_type,
|
||||||
is_publish=True)
|
is_publish=True)
|
||||||
# value for GenericRelation(reverse side) field must be iterable
|
|
||||||
# value for GenericRelation(reverse side) field must be assigned through
|
|
||||||
# "set" method of field
|
|
||||||
self.test_establishment.favorites.set([self.test_favorites])
|
self.test_establishment.favorites.set([self.test_favorites])
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,11 @@ class BaseTestCase(APITestCase):
|
||||||
self.user = User.objects.create_user(
|
self.user = User.objects.create_user(
|
||||||
username=self.username, email=self.email, password=self.password)
|
username=self.username, email=self.email, password=self.password)
|
||||||
|
|
||||||
tokkens = User.create_jwt_tokens(self.user)
|
tokens = User.create_jwt_tokens(self.user)
|
||||||
|
|
||||||
self.client.cookies = SimpleCookie(
|
self.client.cookies = SimpleCookie(
|
||||||
{'access_token': tokkens.get('access_token'),
|
{'access_token': tokens.get('access_token'),
|
||||||
'refresh_token': tokkens.get('refresh_token')})
|
'refresh_token': tokens.get('refresh_token')})
|
||||||
|
|
||||||
self.lang = Language.objects.get(
|
self.lang = Language.objects.get(
|
||||||
title='Russia',
|
title='Russia',
|
||||||
|
|
@ -97,7 +98,6 @@ class RegionTests(BaseTestCase):
|
||||||
|
|
||||||
user_role.save()
|
user_role.save()
|
||||||
|
|
||||||
|
|
||||||
def test_region_CRUD(self):
|
def test_region_CRUD(self):
|
||||||
response = self.client.get('/api/back/location/regions/', format='json')
|
response = self.client.get('/api/back/location/regions/', format='json')
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,8 @@ class SiteSettingsSerializer(serializers.ModelSerializer):
|
||||||
# todo: remove this
|
# todo: remove this
|
||||||
country_code = serializers.CharField(source='subdomain', read_only=True)
|
country_code = serializers.CharField(source='subdomain', read_only=True)
|
||||||
|
|
||||||
|
country_name = serializers.CharField(source='country.name_translated', read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
"""Meta class."""
|
"""Meta class."""
|
||||||
|
|
||||||
|
|
@ -78,7 +80,8 @@ class SiteSettingsSerializer(serializers.ModelSerializer):
|
||||||
'config',
|
'config',
|
||||||
'ad_config',
|
'ad_config',
|
||||||
'published_features',
|
'published_features',
|
||||||
'currency'
|
'currency',
|
||||||
|
'country_name'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,10 @@ class BaseTestCase(APITestCase):
|
||||||
self.password = 'sedragurdaredips19'
|
self.password = 'sedragurdaredips19'
|
||||||
self.email = 'sedragurda@desoz.com'
|
self.email = 'sedragurda@desoz.com'
|
||||||
self.user = User.objects.create_user(username=self.username, email=self.email, password=self.password)
|
self.user = User.objects.create_user(username=self.username, email=self.email, password=self.password)
|
||||||
# get tokkens
|
# get tokens
|
||||||
tokkens = User.create_jwt_tokens(self.user)
|
tokens = User.create_jwt_tokens(self.user)
|
||||||
self.client.cookies = SimpleCookie({'access_token': tokkens.get('access_token'),
|
self.client.cookies = SimpleCookie({'access_token': tokens.get('access_token'),
|
||||||
'refresh_token': tokkens.get('refresh_token')})
|
'refresh_token': tokens.get('refresh_token')})
|
||||||
|
|
||||||
|
|
||||||
class NotificationAnonSubscribeTestCase(APITestCase):
|
class NotificationAnonSubscribeTestCase(APITestCase):
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,5 @@ class BaseTestCase(APITestCase):
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
|
||||||
def test_recipe_detail(self):
|
def test_recipe_detail(self):
|
||||||
print(self.test_recipe.id)
|
|
||||||
response = self.client.get(f"/api/web/recipes/{self.test_recipe.id}/")
|
response = self.client.get(f"/api/web/recipes/{self.test_recipe.id}/")
|
||||||
print(response.json())
|
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
|
|
|
||||||
|
|
@ -106,4 +106,4 @@ class EstablishmentDocument(Document):
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return super().get_queryset().published()
|
return super().get_queryset().published().with_es_related()
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ from account.models import User
|
||||||
from news.models import News, NewsType
|
from news.models import News, NewsType
|
||||||
|
|
||||||
from establishment.models import Establishment, EstablishmentType, Employee
|
from establishment.models import Establishment, EstablishmentType, Employee
|
||||||
|
from location.models import Country
|
||||||
|
|
||||||
|
|
||||||
class BaseTestCase(APITestCase):
|
class BaseTestCase(APITestCase):
|
||||||
|
|
@ -39,7 +40,13 @@ class TranslateFieldTests(BaseTestCase):
|
||||||
self.news_type = NewsType.objects.create(name="Test news type")
|
self.news_type = NewsType.objects.create(name="Test news type")
|
||||||
self.news_type.save()
|
self.news_type.save()
|
||||||
|
|
||||||
|
|
||||||
|
self.country_ru = Country.objects.get(
|
||||||
|
name={"en-GB": "Russian"}
|
||||||
|
)
|
||||||
|
|
||||||
self.news_item = News.objects.create(
|
self.news_item = News.objects.create(
|
||||||
|
id=8,
|
||||||
created_by=self.user,
|
created_by=self.user,
|
||||||
modified_by=self.user,
|
modified_by=self.user,
|
||||||
title={
|
title={
|
||||||
|
|
@ -52,6 +59,7 @@ class TranslateFieldTests(BaseTestCase):
|
||||||
news_type=self.news_type,
|
news_type=self.news_type,
|
||||||
slug='test',
|
slug='test',
|
||||||
state=News.PUBLISHED,
|
state=News.PUBLISHED,
|
||||||
|
country=self.country_ru,
|
||||||
)
|
)
|
||||||
self.news_item.save()
|
self.news_item.save()
|
||||||
|
|
||||||
|
|
@ -62,7 +70,6 @@ class TranslateFieldTests(BaseTestCase):
|
||||||
response = self.client.get(f"/api/web/news/slug/{self.news_item.slug}/", format='json')
|
response = self.client.get(f"/api/web/news/slug/{self.news_item.slug}/", format='json')
|
||||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||||
news_data = response.json()
|
news_data = response.json()
|
||||||
print(news_data)
|
|
||||||
self.assertIn("title_translated", news_data)
|
self.assertIn("title_translated", news_data)
|
||||||
|
|
||||||
self.assertIn("Test news item", news_data['title_translated'])
|
self.assertIn("Test news item", news_data['title_translated'])
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ EXTERNAL_APPS = [
|
||||||
'timezone_field',
|
'timezone_field',
|
||||||
'storages',
|
'storages',
|
||||||
'sorl.thumbnail',
|
'sorl.thumbnail',
|
||||||
'timezonefinder'
|
'timezonefinder',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user