partner back api

This commit is contained in:
alex 2019-11-22 09:31:21 +03:00
parent 735e409734
commit 22e1478a1f
6 changed files with 131 additions and 6 deletions

3
.gitignore vendored
View File

@ -24,4 +24,5 @@ logs/
./docker-compose.override.yml
celerybeat-schedule
local_files
local_files
celerybeat.pid

View File

@ -0,0 +1,9 @@
"""Back account serializers"""
from rest_framework import serializers
from partner.models import Partner
class BackPartnerSerializer(serializers.ModelSerializer):
class Meta:
model = Partner
fields = '__all__'

View File

@ -1,16 +1,94 @@
# Create your tests here.
from rest_framework.test import APITestCase
from http.cookies import SimpleCookie
from rest_framework import status
from rest_framework.test import APITestCase
from account.models import User, Role, UserRole
from establishment.models import EstablishmentType, Establishment
from location.models import Country, Region, City, Address
from partner.models import Partner
from translation.models import Language
class PartnerTestCase(APITestCase):
class BaseTestCase(APITestCase):
def setUp(self):
self.test_url = "www.example.com"
self.test_partner = Partner.objects.create(url=self.test_url)
self.username = 'test_user'
self.password = 'test_user_password'
self.email = 'test_user@mail.com'
self.user = User.objects.create_user(
username=self.username,
email=self.email,
password=self.password,
is_staff=True,
)
tokens = User.create_jwt_tokens(self.user)
self.client.cookies = SimpleCookie({
'access_token': tokens.get('access_token'),
'refresh_token': tokens.get('refresh_token'),
})
self.establishment_type = EstablishmentType.objects.create(name="Test establishment type")
self.role = Role.objects.create(role=Role.ESTABLISHMENT_MANAGER)
self.establishment = Establishment.objects.create(
name="Test establishment",
establishment_type_id=self.establishment_type.id,
is_publish=True,
slug="test",
)
self.user_role = UserRole.objects.create(
user=self.user,
role=self.role,
establishment=self.establishment,
)
self.partner = Partner.objects.create(
url='www.ya.ru',
establishment=self.establishment,
)
class PartnerWebTestCase(BaseTestCase):
def test_partner_list(self):
response = self.client.get("/api/web/partner/")
self.assertEqual(response.status_code, status.HTTP_200_OK)
class PartnerBackTestCase(BaseTestCase):
def test_partner_list(self):
response = self.client.get('/api/back/partner/')
self.assertEqual(response.status_code, status.HTTP_200_OK)
# def test_partner_post(self):
# test_inquiry = {
# 'review': self.test_review.pk,
# 'author': self.user.pk,
# 'comment': 'New test comment',
# }
# response = self.client.post('/api/back/partner/', data=test_inquiry)
# self.assertEqual(response.status_code, status.HTTP_201_CREATED)
def test_partner_detail(self):
response = self.client.get(f'/api/back/partner/{self.partner.id}/')
self.assertEqual(response.status_code, status.HTTP_200_OK)
# def test_partner_detail_put(self):
# data = {
# 'id': self.test_inquiry.id,
# 'review': self.test_review.pk,
# 'author': self.user.pk,
# 'comment': 'New test comment 2',
# }
#
# response = self.client.put(f'/api/back/partner/{self.partner.id}/', data=data)
# self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_partner_delete(self):
response = self.client.get(f'/api/back/partner/{self.partner.id}/')
self.assertEqual(response.status_code, status.HTTP_200_OK)

11
apps/partner/urls/back.py Normal file
View File

@ -0,0 +1,11 @@
"""Back account URLs"""
from django.urls import path
from partner.views import back as views
app_name = 'partner'
urlpatterns = [
path('', views.PartnerLstView.as_view(), name='partner-list-create'),
path('<int:id>/', views.PartnerRUDView.as_view(), name='partner-rud'),
]

View File

@ -0,0 +1,27 @@
from django_filters.rest_framework import DjangoFilterBackend, filters
from rest_framework import generics, permissions
from partner.models import Partner
from partner.serializers import back as serializers
from utils.permissions import IsEstablishmentManager
class PartnerLstView(generics.ListCreateAPIView):
"""Partner list create view."""
queryset = Partner.objects.all()
serializer_class = serializers.BackPartnerSerializer
permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
filter_backends = (DjangoFilterBackend, filters.OrderingFilter)
ordering_fields = '__all__'
filterset_fields = (
'establishment',
'type',
)
class PartnerRUDView(generics.RetrieveUpdateDestroyAPIView):
"""Partner RUD view."""
queryset = Partner.objects.all()
serializer_class = serializers.BackPartnerSerializer
permission_classes = [permissions.IsAdminUser | IsEstablishmentManager]
lookup_field = 'id'

View File

@ -1 +0,0 @@
# Create your views here.