back carousel api and test
This commit is contained in:
parent
a660ffcc31
commit
17f67d020a
|
|
@ -485,7 +485,7 @@ class EstablishmentCarouselCreateSerializer(CarouselCreateSerializer):
|
|||
"""Serializer to carousel object w/ model News."""
|
||||
|
||||
def validate(self, attrs):
|
||||
establishment = models.Establishment.objects.filter(slug=self.slug).first()
|
||||
establishment = models.Establishment.objects.filter(pk=self.pk).first()
|
||||
if not establishment:
|
||||
raise serializers.ValidationError({'detail': _('Object not found.')})
|
||||
|
||||
|
|
|
|||
|
|
@ -445,24 +445,13 @@ class EstablishmentWebFavoriteTests(ChildTestCase):
|
|||
|
||||
class EstablishmentCarouselTests(ChildTestCase):
|
||||
|
||||
def test_web_carousel_CR(self):
|
||||
def test_back_carousel_CR(self):
|
||||
data = {
|
||||
"object_id": self.establishment.id
|
||||
}
|
||||
|
||||
response = self.client.post(f'/api/web/establishments/slug/{self.establishment.slug}/carousels/', data=data)
|
||||
response = self.client.post(f'/api/back/establishments/{self.establishment.id}/carousels/', data=data)
|
||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||
|
||||
response = self.client.delete(f'/api/web/establishments/slug/{self.establishment.slug}/carousels/')
|
||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||
|
||||
def test_mobile_carousel_CR(self):
|
||||
data = {
|
||||
"object_id": self.establishment.id
|
||||
}
|
||||
|
||||
response = self.client.post(f'/api/mobile/establishments/slug/{self.establishment.slug}/carousels/', data=data)
|
||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||
|
||||
response = self.client.delete(f'/api/mobile/establishments/slug/{self.establishment.slug}/carousels/')
|
||||
response = self.client.delete(f'/api/back/establishments/{self.establishment.id}/carousels/')
|
||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ app_name = 'establishment'
|
|||
urlpatterns = [
|
||||
path('', views.EstablishmentListCreateView.as_view(), name='list'),
|
||||
path('<int:pk>/', views.EstablishmentRUDView.as_view(), name='detail'),
|
||||
path('<int:pk>/carousels/', views.EstablishmentCarouselCreateDestroyView.as_view(),
|
||||
name='create-destroy-carousels'),
|
||||
path('<int:pk>/schedule/<int:schedule_id>/', views.EstablishmentScheduleRUDView.as_view(),
|
||||
name='schedule-rud'),
|
||||
path('<int:pk>/schedule/', views.EstablishmentScheduleCreateView.as_view(),
|
||||
|
|
|
|||
|
|
@ -18,6 +18,4 @@ urlpatterns = [
|
|||
name='rud-comment'),
|
||||
path('slug/<slug:slug>/favorites/', views.EstablishmentFavoritesCreateDestroyView.as_view(),
|
||||
name='create-destroy-favorites'),
|
||||
path('slug/<slug:slug>/carousels/', views.EstablishmentCarouselCreateDestroyView.as_view(),
|
||||
name='create-destroy-carousels')
|
||||
]
|
||||
|
|
|
|||
|
|
@ -275,7 +275,7 @@ class NewsCarouselCreateSerializer(CarouselCreateSerializer):
|
|||
"""Serializer to carousel object w/ model News."""
|
||||
|
||||
def validate(self, attrs):
|
||||
news = models.News.objects.filter(slug=self.slug).first()
|
||||
news = models.News.objects.filter(pk=self.pk).first()
|
||||
if not news:
|
||||
raise serializers.ValidationError({'detail': _('Object not found.')})
|
||||
|
||||
|
|
|
|||
|
|
@ -132,24 +132,13 @@ class NewsTestCase(BaseTestCase):
|
|||
|
||||
class NewsCarouselTests(BaseTestCase):
|
||||
|
||||
def test_web_carousel_CR(self):
|
||||
def test_back_carousel_CR(self):
|
||||
data = {
|
||||
"object_id": self.test_news.id
|
||||
}
|
||||
|
||||
response = self.client.post(f'/api/web/news/slug/{self.test_news.slug}/carousels/', data=data)
|
||||
response = self.client.post(f'/api/back/news/{self.test_news.id}/carousels/', data=data)
|
||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||
|
||||
response = self.client.delete(f'/api/web/news/slug/{self.test_news.slug}/carousels/')
|
||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||
|
||||
def test_mobile_carousel_CR(self):
|
||||
data = {
|
||||
"object_id": self.test_news.id
|
||||
}
|
||||
|
||||
response = self.client.post(f'/api/mobile/news/slug/{self.test_news.slug}/carousels/', data=data)
|
||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||
|
||||
response = self.client.delete(f'/api/mobile/news/slug/{self.test_news.slug}/carousels/')
|
||||
response = self.client.delete(f'/api/back/news/{self.test_news.id}/carousels/')
|
||||
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
|
||||
|
|
|
|||
|
|
@ -13,6 +13,5 @@ urlpatterns = [
|
|||
name='gallery-list'),
|
||||
path('<int:pk>/gallery/<int:image_id>/', views.NewsBackOfficeGalleryCreateDestroyView.as_view(),
|
||||
name='gallery-create-destroy'),
|
||||
path('slug/<slug:slug>/carousels/', views.NewsCarouselCreateDestroyView.as_view(),
|
||||
name='create-destroy-carousels'),
|
||||
path('<int:pk>/carousels/', views.NewsCarouselCreateDestroyView.as_view(), name='create-destroy-carousels'),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -7,6 +7,4 @@ common_urlpatterns = [
|
|||
path('slug/<slug:slug>/', views.NewsDetailView.as_view(), name='rud'),
|
||||
path('slug/<slug:slug>/favorites/', views.NewsFavoritesCreateDestroyView.as_view(),
|
||||
name='create-destroy-favorites'),
|
||||
path('slug/<slug:slug>/carousels/', views.NewsCarouselCreateDestroyView.as_view(),
|
||||
name='create-destroy-carousels'),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -115,8 +115,8 @@ class CarouselCreateSerializer(serializers.ModelSerializer):
|
|||
return self.context.get('request')
|
||||
|
||||
@property
|
||||
def slug(self):
|
||||
return self.request.parser_context.get('kwargs').get('slug')
|
||||
def pk(self):
|
||||
return self.request.parser_context.get('kwargs').get('pk')
|
||||
|
||||
|
||||
class RecursiveFieldSerializer(serializers.Serializer):
|
||||
|
|
|
|||
|
|
@ -155,6 +155,11 @@ class FavoritesCreateDestroyMixinView(BaseCreateDestroyMixinView):
|
|||
class CarouselCreateDestroyMixinView(BaseCreateDestroyMixinView):
|
||||
"""Carousel Create Destroy mixin."""
|
||||
|
||||
lookup_field = 'id'
|
||||
|
||||
def get_base_object(self):
|
||||
return get_object_or_404(self._model, id=self.kwargs['pk'])
|
||||
|
||||
def get_object(self):
|
||||
"""
|
||||
Returns the object the view is displaying.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user