From 49d20705448777677023808cd5c15211312a9c71 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 14:31:02 +0300 Subject: [PATCH 01/15] Add establishment tests --- apps/establishment/tests.py | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index b64a971c..08e89f10 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -2,7 +2,10 @@ from rest_framework.test import APITestCase from account.models import User from rest_framework import status from http.cookies import SimpleCookie -from establishment.models import Employee +from establishment.models import Establishment, EstablishmentType, Employee + +from rest_framework.reverse import reverse + # Create your tests here. @@ -20,6 +23,29 @@ class BaseTestCase(APITestCase): 'refresh_token': tokkens.get('refresh_token')}) +class EstablishmentTests(BaseTestCase): + def test_establishment_CRD(self): + response = self.client.get('/api/back/establishments/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + establishment_type = EstablishmentType.objects.create(name="Test establishment type") + + data = { + 'name': 'Test establishment', + 'type_id': establishment_type.id, + } + + response = self.client.post('/api/back/establishments/', data=data, format='json') + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + print(response.json()) + + response = self.client.get('/api/back/establishments/1/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + response = self.client.delete('/api/back/establishments/1/', format='json') + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + class EmployeeTests(BaseTestCase): def test_employee_CRD(self): response = self.client.get('/api/back/establishments/employees/', format='json') @@ -39,6 +65,3 @@ class EmployeeTests(BaseTestCase): response = self.client.delete('/api/back/establishments/employees/1/', format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) - - - From 00d8f09881093fddcb83148869e7cf70ee22bf1b Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 14:42:00 +0300 Subject: [PATCH 02/15] Add email tests --- apps/establishment/tests.py | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index 08e89f10..6d84cbe1 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -22,22 +22,23 @@ class BaseTestCase(APITestCase): self.client.cookies = SimpleCookie({'access_token': tokkens.get('access_token'), 'refresh_token': tokkens.get('refresh_token')}) + self.establishment_type = EstablishmentType.objects.create(name="Test establishment type") + class EstablishmentTests(BaseTestCase): def test_establishment_CRD(self): response = self.client.get('/api/back/establishments/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) - establishment_type = EstablishmentType.objects.create(name="Test establishment type") + data = { 'name': 'Test establishment', - 'type_id': establishment_type.id, + 'type_id': self.establishment_type.id, } response = self.client.post('/api/back/establishments/', data=data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) - print(response.json()) response = self.client.get('/api/back/establishments/1/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -65,3 +66,27 @@ class EmployeeTests(BaseTestCase): response = self.client.delete('/api/back/establishments/employees/1/', format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + +class EmailTests(BaseTestCase): + def test_email_CRD(self): + response = self.client.get('/api/back/establishments/emails/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + establishment = Establishment.objects.create( + name="Test establishment", + establishment_type_id=self.establishment_type.id + ) + + data = { + 'email': "test@test.com", + 'establishment': establishment.id + } + + response = self.client.post('/api/back/establishments/emails/', data=data) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + response = self.client.get('/api/back/establishments/emails/1/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + response = self.client.delete('/api/back/establishments/emails/1/') + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) From ee93905556107536c8db43c1fd0e162923a5451f Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 14:49:04 +0300 Subject: [PATCH 03/15] Add phone tests --- apps/establishment/tests.py | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index 6d84cbe1..43f7547f 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -2,9 +2,7 @@ from rest_framework.test import APITestCase from account.models import User from rest_framework import status from http.cookies import SimpleCookie -from establishment.models import Establishment, EstablishmentType, Employee - -from rest_framework.reverse import reverse +from establishment.models import Establishment, EstablishmentType # Create your tests here. @@ -90,3 +88,28 @@ class EmailTests(BaseTestCase): response = self.client.delete('/api/back/establishments/emails/1/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + +class PhoneTests(BaseTestCase): + def test_phone_CRD(self): + response = self.client.get('/api/back/establishments/phones/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + establishment = Establishment.objects.create( + name="Test establishment", + establishment_type_id=self.establishment_type.id + ) + + data = { + 'phone': "+79999999999", + 'establishment': establishment.id + } + + response = self.client.post('/api/back/establishments/phones/', data=data) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + response = self.client.get('/api/back/establishments/phones/1/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + response = self.client.delete('/api/back/establishments/phones/1/') + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) From e616d3970cc84a803e4c4cd593224c0af059eb65 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 14:55:34 +0300 Subject: [PATCH 04/15] Add class to test childs --- apps/establishment/tests.py | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index 43f7547f..d9573191 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -65,19 +65,25 @@ class EmployeeTests(BaseTestCase): self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) -class EmailTests(BaseTestCase): - def test_email_CRD(self): - response = self.client.get('/api/back/establishments/emails/', format='json') - self.assertEqual(response.status_code, status.HTTP_200_OK) - - establishment = Establishment.objects.create( +# Class to test childs +class ChildTestCase(BaseTestCase): + def setUp(self): + super().setUp() + self.establishment = Establishment.objects.create( name="Test establishment", establishment_type_id=self.establishment_type.id ) + +# Test childs +class EmailTests(ChildTestCase): + def test_email_CRD(self): + response = self.client.get('/api/back/establishments/emails/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + data = { 'email': "test@test.com", - 'establishment': establishment.id + 'establishment': self.establishment.id } response = self.client.post('/api/back/establishments/emails/', data=data) @@ -90,19 +96,14 @@ class EmailTests(BaseTestCase): self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) -class PhoneTests(BaseTestCase): +class PhoneTests(ChildTestCase): def test_phone_CRD(self): response = self.client.get('/api/back/establishments/phones/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) - establishment = Establishment.objects.create( - name="Test establishment", - establishment_type_id=self.establishment_type.id - ) - data = { 'phone': "+79999999999", - 'establishment': establishment.id + 'establishment': self.establishment.id } response = self.client.post('/api/back/establishments/phones/', data=data) From 014931d2c4fe550fa52a07883ca9e91d002d383f Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 15:39:53 +0300 Subject: [PATCH 05/15] Add plate tests Add is_publish to serializer Add TODO for is_publish --- apps/establishment/serializers/back.py | 4 +- apps/establishment/tests.py | 53 +++++++++++++++++++++++--- 2 files changed, 51 insertions(+), 6 deletions(-) diff --git a/apps/establishment/serializers/back.py b/apps/establishment/serializers/back.py index caa13742..e20cc087 100644 --- a/apps/establishment/serializers/back.py +++ b/apps/establishment/serializers/back.py @@ -34,7 +34,9 @@ class EstablishmentListCreateSerializer(EstablishmentBaseSerializer): 'type_id', 'type', 'socials', - 'image_url' + 'image_url', + # TODO: check in admin filters + 'is_publish' ] diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index d9573191..ee4e444a 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -28,20 +28,19 @@ class EstablishmentTests(BaseTestCase): response = self.client.get('/api/back/establishments/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) - - data = { 'name': 'Test establishment', 'type_id': self.establishment_type.id, + 'is_publish': True } response = self.client.post('/api/back/establishments/', data=data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) - response = self.client.get('/api/back/establishments/1/', format='json') + response = self.client.get('/api/back/establishments/2/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) - response = self.client.delete('/api/back/establishments/1/', format='json') + response = self.client.delete('/api/back/establishments/2/', format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) @@ -71,7 +70,8 @@ class ChildTestCase(BaseTestCase): super().setUp() self.establishment = Establishment.objects.create( name="Test establishment", - establishment_type_id=self.establishment_type.id + establishment_type_id=self.establishment_type.id, + is_publish=True ) @@ -114,3 +114,46 @@ class PhoneTests(ChildTestCase): response = self.client.delete('/api/back/establishments/phones/1/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + +class SocialTests(ChildTestCase): + def test_social_CRD(self): + response = self.client.get('/api/back/establishments/socials/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = { + 'title': "Test social", + 'url': 'https://testsocial.com', + 'establishment': self.establishment.id + } + + response = self.client.post('/api/back/establishments/socials/', data=data) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + response = self.client.get('/api/back/establishments/socials/1/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + response = self.client.delete('/api/back/establishments/socials/1/') + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + +class PlatesTests(ChildTestCase): + def test_plates_CRD(self): + response = self.client.get('/api/back/establishments/plates/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = { + 'title': "Test social", + 'url': 'https://testsocial.com', + 'establishment': self.establishment.id + } + + response = self.client.post('/api/back/establishments/plates/', data=data) + print(f"PLATE: {response.json()}") + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + response = self.client.get('/api/back/establishments/plates/1/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + response = self.client.delete('/api/back/establishments/plates/1/') + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) From 2f74c63fd9c2be470dd550e5ef7b3bad2ec26475 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 15:58:23 +0300 Subject: [PATCH 06/15] Fix plate tests Add menu tests --- apps/establishment/tests.py | 40 ++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index ee4e444a..726eee5b 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -1,8 +1,10 @@ +import json from rest_framework.test import APITestCase from account.models import User from rest_framework import status from http.cookies import SimpleCookie -from establishment.models import Establishment, EstablishmentType +from main.models import Currency +from establishment.models import Establishment, EstablishmentType, Menu # Create your tests here. @@ -138,14 +140,22 @@ class SocialTests(ChildTestCase): class PlatesTests(ChildTestCase): - def test_plates_CRD(self): + def test_plate_CRD(self): response = self.client.get('/api/back/establishments/plates/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) + menu = Menu.objects.create( + category=json.dumps({"en-GB": "Test category"}), + establishment=self.establishment + ) + currency = Currency.objects.create(name="Test currency") + data = { - 'title': "Test social", - 'url': 'https://testsocial.com', - 'establishment': self.establishment.id + 'name': json.dumps({"en-GB": "Test plate"}), + 'establishment': self.establishment.id, + 'price': 10, + 'menu': menu.id, + 'currency_id': currency.id } response = self.client.post('/api/back/establishments/plates/', data=data) @@ -157,3 +167,23 @@ class PlatesTests(ChildTestCase): response = self.client.delete('/api/back/establishments/plates/1/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + +class MenusTests(ChildTestCase): + def test_menu_CRD(self): + response = self.client.get('/api/back/establishments/menus/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + data = { + 'category': json.dumps({"en-GB": "Test category"}), + 'establishment': self.establishment.id + } + + response = self.client.post('/api/back/establishments/menus/', data=data) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + response = self.client.get('/api/back/establishments/menus/1/', format='json') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + response = self.client.delete('/api/back/establishments/menus/1/') + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) From df0afc56538a320015dd63a3c4324b0b3c63dbbf Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 16:00:16 +0300 Subject: [PATCH 07/15] Fix plates RUD view --- apps/establishment/urls/back.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/establishment/urls/back.py b/apps/establishment/urls/back.py index 9c0aac73..0983efa4 100644 --- a/apps/establishment/urls/back.py +++ b/apps/establishment/urls/back.py @@ -17,7 +17,7 @@ urlpatterns = [ path('menus/', views.MenuListCreateView.as_view(), name='menu-list'), path('menus//', views.MenuRUDView.as_view(), name='menu-rud'), path('plates/', views.PlateListCreateView.as_view(), name='plates'), - path('plates//', views.PlateListCreateView.as_view(), name='plate-rud'), + path('plates//', views.PlateRUDView.as_view(), name='plate-rud'), path('socials/', views.SocialListCreateView.as_view(), name='socials'), path('socials//', views.SocialRUDView.as_view(), name='social-rud'), path('phones/', views.PhonesListCreateView.as_view(), name='phones'), From 2d8b30c3eeecd759a7aeac5efc3eb1985a7e6832 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 16:10:51 +0300 Subject: [PATCH 08/15] Add patch test to plates class --- apps/establishment/tests.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index d4a6418b..c3c50617 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -161,12 +161,18 @@ class PlatesTests(ChildTestCase): } response = self.client.post('/api/back/establishments/plates/', data=data) - print(f"PLATE: {response.json()}") self.assertEqual(response.status_code, status.HTTP_201_CREATED) response = self.client.get('/api/back/establishments/plates/1/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) + update_data = { + 'name': json.dumps({"en-GB": "Test new plate"}) + } + + response = self.client.patch('/api/back/establishments/plates/1/', data=update_data) + self.assertEqual(response.status_code, status.HTTP_200_OK) + response = self.client.delete('/api/back/establishments/plates/1/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) From aaff7fd3bae3cb3758695c470ef4de939ec68b25 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 16:22:41 +0300 Subject: [PATCH 09/15] Add schedule tests --- apps/establishment/tests.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index c3c50617..c112e067 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -39,6 +39,7 @@ class EstablishmentTests(BaseTestCase): } response = self.client.post('/api/back/establishments/', data=data, format='json') + print(f"ESTABLISHMENT: {response.json()}") self.assertEqual(response.status_code, status.HTTP_201_CREATED) response = self.client.get('/api/back/establishments/2/', format='json') @@ -141,8 +142,8 @@ class SocialTests(ChildTestCase): self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) -class PlatesTests(ChildTestCase): - def test_plate_CRD(self): +class PlateTests(ChildTestCase): + def test_plate_CRUD(self): response = self.client.get('/api/back/establishments/plates/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -177,7 +178,7 @@ class PlatesTests(ChildTestCase): self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) -class MenusTests(ChildTestCase): +class MenuTests(ChildTestCase): def test_menu_CRD(self): response = self.client.get('/api/back/establishments/menus/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -195,3 +196,18 @@ class MenusTests(ChildTestCase): response = self.client.delete('/api/back/establishments/menus/1/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + +class EstablishShedulerTests(ChildTestCase): + def test_shedule_CRD(self): + data = { + 'weekday': 1 + } + response = self.client.post(f'/api/back/establishments/{self.establishment.id}/schedule/', data=data) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + response = self.client.get(f'/api/back/establishments/{self.establishment.id}/schedule/1/') + self.assertEqual(response.status_code, status.HTTP_200_OK) + + response = self.client.delete(f'/api/back/establishments/{self.establishment.id}/schedule/1/') + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) From 85fef10eb301371c62c1ee5ce3aa25139882a5f9 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 16:28:23 +0300 Subject: [PATCH 10/15] Fix establishment tests --- apps/establishment/tests.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index c112e067..12afdce2 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -39,13 +39,14 @@ class EstablishmentTests(BaseTestCase): } response = self.client.post('/api/back/establishments/', data=data, format='json') - print(f"ESTABLISHMENT: {response.json()}") self.assertEqual(response.status_code, status.HTTP_201_CREATED) - response = self.client.get('/api/back/establishments/2/', format='json') + establishment = response.json() + + response = self.client.get(f'/api/back/establishments/{establishment["id"]}/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) - response = self.client.delete('/api/back/establishments/2/', format='json') + response = self.client.delete(f'/api/back/establishments/{establishment["id"]}/', format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) From 0d7b26bbb21efde811b45ec3bf85f75f4aa7e098 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 16:40:53 +0300 Subject: [PATCH 11/15] Add update tests --- apps/establishment/tests.py | 64 +++++++++++++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 7 deletions(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index 12afdce2..04637068 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -28,7 +28,7 @@ class BaseTestCase(APITestCase): class EstablishmentTests(BaseTestCase): - def test_establishment_CRD(self): + def test_establishment_CRUD(self): response = self.client.get('/api/back/establishments/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -46,12 +46,19 @@ class EstablishmentTests(BaseTestCase): response = self.client.get(f'/api/back/establishments/{establishment["id"]}/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) + update_data = { + 'name': 'Test new establishment' + } + + response = self.client.patch(f'/api/back/establishments/{establishment["id"]}/', data=update_data) + self.assertEqual(response.status_code, status.HTTP_200_OK) + response = self.client.delete(f'/api/back/establishments/{establishment["id"]}/', format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) class EmployeeTests(BaseTestCase): - def test_employee_CRD(self): + def test_employee_CRUD(self): response = self.client.get('/api/back/establishments/employees/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -66,6 +73,13 @@ class EmployeeTests(BaseTestCase): response = self.client.get('/api/back/establishments/employees/1/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) + update_data = { + 'name': 'Test new name' + } + + response = self.client.patch('/api/back/establishments/employees/1/', data=update_data) + self.assertEqual(response.status_code, status.HTTP_200_OK) + response = self.client.delete('/api/back/establishments/employees/1/', format='json') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) @@ -83,7 +97,7 @@ class ChildTestCase(BaseTestCase): # Test childs class EmailTests(ChildTestCase): - def test_email_CRD(self): + def test_email_CRUD(self): response = self.client.get('/api/back/establishments/emails/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -98,12 +112,19 @@ class EmailTests(ChildTestCase): response = self.client.get('/api/back/establishments/emails/1/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) + update_data = { + 'email': 'testnew@test.com' + } + + response = self.client.patch('/api/back/establishments/emails/1/', data=update_data) + self.assertEqual(response.status_code, status.HTTP_200_OK) + response = self.client.delete('/api/back/establishments/emails/1/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) class PhoneTests(ChildTestCase): - def test_phone_CRD(self): + def test_phone_CRUD(self): response = self.client.get('/api/back/establishments/phones/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -118,12 +139,20 @@ class PhoneTests(ChildTestCase): response = self.client.get('/api/back/establishments/phones/1/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) + update_data = { + 'phone': '+79999999998' + } + + response = self.client.patch('/api/back/establishments/phones/1/', data=update_data) + print(f"PHONE: {response.json()}") + self.assertEqual(response.status_code, status.HTTP_200_OK) + response = self.client.delete('/api/back/establishments/phones/1/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) class SocialTests(ChildTestCase): - def test_social_CRD(self): + def test_social_CRUD(self): response = self.client.get('/api/back/establishments/socials/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -139,6 +168,13 @@ class SocialTests(ChildTestCase): response = self.client.get('/api/back/establishments/socials/1/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) + update_data = { + 'title': 'Test new social' + } + + response = self.client.patch('/api/back/establishments/socials/1/', data=update_data) + self.assertEqual(response.status_code, status.HTTP_200_OK) + response = self.client.delete('/api/back/establishments/socials/1/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) @@ -180,7 +216,7 @@ class PlateTests(ChildTestCase): class MenuTests(ChildTestCase): - def test_menu_CRD(self): + def test_menu_CRUD(self): response = self.client.get('/api/back/establishments/menus/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -195,12 +231,19 @@ class MenuTests(ChildTestCase): response = self.client.get('/api/back/establishments/menus/1/', format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) + update_data = { + 'category': json.dumps({"en-GB": "Test new category"}) + } + + response = self.client.patch('/api/back/establishments/menus/1/', data=update_data) + self.assertEqual(response.status_code, status.HTTP_200_OK) + response = self.client.delete('/api/back/establishments/menus/1/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) class EstablishShedulerTests(ChildTestCase): - def test_shedule_CRD(self): + def test_shedule_CRUD(self): data = { 'weekday': 1 } @@ -210,5 +253,12 @@ class EstablishShedulerTests(ChildTestCase): response = self.client.get(f'/api/back/establishments/{self.establishment.id}/schedule/1/') self.assertEqual(response.status_code, status.HTTP_200_OK) + update_data = { + 'weekday': 2 + } + + response = self.client.patch(f'/api/back/establishments/{self.establishment.id}/schedule/1/', data=update_data) + self.assertEqual(response.status_code, status.HTTP_200_OK) + response = self.client.delete(f'/api/back/establishments/{self.establishment.id}/schedule/1/') self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) From e39bc835fd9e5f48527abd37b6b050b88daa5d99 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 16:41:24 +0300 Subject: [PATCH 12/15] Fix class name --- apps/establishment/tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index 04637068..08f4ac16 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -242,7 +242,7 @@ class MenuTests(ChildTestCase): self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) -class EstablishShedulerTests(ChildTestCase): +class EstablishmentShedulerTests(ChildTestCase): def test_shedule_CRUD(self): data = { 'weekday': 1 From 4e495fa47d51b18a2f23508f76d6979f99b825f6 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 16:42:35 +0300 Subject: [PATCH 13/15] Remove debug --- apps/establishment/tests.py | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/establishment/tests.py b/apps/establishment/tests.py index 08f4ac16..5de7d779 100644 --- a/apps/establishment/tests.py +++ b/apps/establishment/tests.py @@ -144,7 +144,6 @@ class PhoneTests(ChildTestCase): } response = self.client.patch('/api/back/establishments/phones/1/', data=update_data) - print(f"PHONE: {response.json()}") self.assertEqual(response.status_code, status.HTTP_200_OK) response = self.client.delete('/api/back/establishments/phones/1/') From eaac6ca8856bcee6a6bde53dc97f4dd4c5a06baf Mon Sep 17 00:00:00 2001 From: littlewolf Date: Fri, 20 Sep 2019 16:47:20 +0300 Subject: [PATCH 14/15] Fix --- apps/establishment/views/back.py | 5 +++-- apps/establishment/views/web.py | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index aa52caec..c8915e91 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -83,7 +83,8 @@ class EmployeeListCreateView(generics.ListCreateAPIView): queryset = models.Employee.objects.all() pagination_class = None -class EmployeeRUDView(generics.RetrieveDestroyAPIView): + +class EmployeeRUDView(generics.RetrieveUpdateDestroyAPIView): """Social RUD view.""" serializer_class = serializers.EmployeeBackSerializers - queryset = models.Employee.objects.all() \ No newline at end of file + queryset = models.Employee.objects.all() diff --git a/apps/establishment/views/web.py b/apps/establishment/views/web.py index 53382be9..7be9f49e 100644 --- a/apps/establishment/views/web.py +++ b/apps/establishment/views/web.py @@ -36,7 +36,6 @@ class EstablishmentSimilarListView(EstablishmentListView): .order_by('-total_mark')[:13] - class EstablishmentRetrieveView(EstablishmentMixin, generics.RetrieveAPIView): """Resource for getting a establishment.""" serializer_class = serializers.EstablishmentDetailSerializer From 9f89deb23b27f4a60f633739d8fc5bdf13663d70 Mon Sep 17 00:00:00 2001 From: littlewolf Date: Mon, 23 Sep 2019 11:16:22 +0300 Subject: [PATCH 15/15] Fix establishment RUD serializer --- apps/establishment/serializers/back.py | 30 ++++++++++++++++++++++++++ apps/establishment/urls/back.py | 2 +- apps/establishment/views/back.py | 5 +++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/apps/establishment/serializers/back.py b/apps/establishment/serializers/back.py index e20cc087..7199eb54 100644 --- a/apps/establishment/serializers/back.py +++ b/apps/establishment/serializers/back.py @@ -40,6 +40,36 @@ class EstablishmentListCreateSerializer(EstablishmentBaseSerializer): ] +class EstablishmentRUDSerializer(EstablishmentBaseSerializer): + """Establishment create serializer""" + + type_id = serializers.PrimaryKeyRelatedField( + source='establishment_type', + queryset=models.EstablishmentType.objects.all(), write_only=True + ) + phones = ContactPhonesSerializer(read_only=False, many=True, ) + emails = ContactEmailsSerializer(read_only=False, many=True, ) + socials = SocialNetworkRelatedSerializers(read_only=False, many=True, ) + + class Meta: + model = models.Establishment + fields = [ + 'id', + 'name', + 'website', + 'phones', + 'emails', + 'price_level', + 'toque_number', + 'type_id', + 'type', + 'socials', + 'image_url', + # TODO: check in admin filters + 'is_publish' + ] + + class SocialNetworkSerializers(serializers.ModelSerializer): """Social network serializers.""" class Meta: diff --git a/apps/establishment/urls/back.py b/apps/establishment/urls/back.py index 0983efa4..dca5fb55 100644 --- a/apps/establishment/urls/back.py +++ b/apps/establishment/urls/back.py @@ -9,7 +9,7 @@ app_name = 'establishment' urlpatterns = [ path('', views.EstablishmentListCreateView.as_view(), name='list'), - path('/', views.EstablishmentRetrieveView.as_view(), name='detail'), + path('/', views.EstablishmentRUDView.as_view(), name='detail'), path('/schedule//', views.EstablishmentScheduleRUDView.as_view(), name='schedule-rud'), path('/schedule/', views.EstablishmentScheduleCreateView.as_view(), diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index c8915e91..974fca8a 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -13,6 +13,11 @@ class EstablishmentListCreateView(EstablishmentMixin, generics.ListCreateAPIView serializer_class = serializers.EstablishmentListCreateSerializer +class EstablishmentRUDView(generics.RetrieveUpdateDestroyAPIView): + queryset = models.Establishment.objects.all() + serializer_class = serializers.EstablishmentRUDSerializer + + class MenuListCreateView(generics.ListCreateAPIView): """Menu list create view.""" serializer_class = serializers.MenuSerializers