first commit
This commit is contained in:
86
tests/apps/core/test_viewsets.py
Normal file
86
tests/apps/core/test_viewsets.py
Normal file
@@ -0,0 +1,86 @@
|
||||
"""Tests for core ViewSets"""
|
||||
|
||||
from apps.core.pagination import StandardPagination
|
||||
from apps.core.viewsets import (
|
||||
BaseViewSet,
|
||||
BulkMixin,
|
||||
OwnerViewSet,
|
||||
ReadOnlyViewSet,
|
||||
)
|
||||
from django.test import TestCase
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
|
||||
|
||||
class BaseViewSetTest(TestCase):
|
||||
"""Tests for BaseViewSet"""
|
||||
|
||||
def test_inherits_from_model_viewset(self):
|
||||
"""Test BaseViewSet inherits from ModelViewSet"""
|
||||
self.assertTrue(issubclass(BaseViewSet, viewsets.ModelViewSet))
|
||||
|
||||
def test_has_pagination_class(self):
|
||||
"""Test BaseViewSet has pagination_class"""
|
||||
self.assertEqual(BaseViewSet.pagination_class, StandardPagination)
|
||||
|
||||
def test_has_permission_classes(self):
|
||||
"""Test BaseViewSet has permission_classes"""
|
||||
self.assertIn(IsAuthenticated, BaseViewSet.permission_classes)
|
||||
|
||||
def test_has_filter_backends(self):
|
||||
"""Test BaseViewSet has filter_backends"""
|
||||
self.assertTrue(hasattr(BaseViewSet, "filter_backends"))
|
||||
self.assertIsInstance(BaseViewSet.filter_backends, list)
|
||||
self.assertTrue(len(BaseViewSet.filter_backends) > 0)
|
||||
|
||||
def test_has_default_ordering(self):
|
||||
"""Test BaseViewSet has default ordering"""
|
||||
self.assertEqual(BaseViewSet.ordering, ["-created_at"])
|
||||
|
||||
def test_has_serializer_classes_dict(self):
|
||||
"""Test BaseViewSet has serializer_classes dict"""
|
||||
self.assertTrue(hasattr(BaseViewSet, "serializer_classes"))
|
||||
self.assertIsInstance(BaseViewSet.serializer_classes, dict)
|
||||
|
||||
|
||||
class ReadOnlyViewSetTest(TestCase):
|
||||
"""Tests for ReadOnlyViewSet"""
|
||||
|
||||
def test_inherits_from_readonly_model_viewset(self):
|
||||
"""Test ReadOnlyViewSet inherits from ReadOnlyModelViewSet"""
|
||||
self.assertTrue(issubclass(ReadOnlyViewSet, viewsets.ReadOnlyModelViewSet))
|
||||
|
||||
def test_has_pagination_class(self):
|
||||
"""Test ReadOnlyViewSet has pagination_class"""
|
||||
self.assertEqual(ReadOnlyViewSet.pagination_class, StandardPagination)
|
||||
|
||||
def test_has_filter_backends(self):
|
||||
"""Test ReadOnlyViewSet has filter_backends"""
|
||||
self.assertTrue(hasattr(ReadOnlyViewSet, "filter_backends"))
|
||||
self.assertTrue(len(ReadOnlyViewSet.filter_backends) > 0)
|
||||
|
||||
|
||||
class OwnerViewSetTest(TestCase):
|
||||
"""Tests for OwnerViewSet"""
|
||||
|
||||
def test_inherits_from_base_viewset(self):
|
||||
"""Test OwnerViewSet inherits from BaseViewSet"""
|
||||
self.assertTrue(issubclass(OwnerViewSet, BaseViewSet))
|
||||
|
||||
def test_has_owner_field(self):
|
||||
"""Test OwnerViewSet has owner_field attribute"""
|
||||
self.assertEqual(OwnerViewSet.owner_field, "user")
|
||||
|
||||
|
||||
class BulkMixinTest(TestCase):
|
||||
"""Tests for BulkMixin"""
|
||||
|
||||
def test_has_bulk_create_method(self):
|
||||
"""Test BulkMixin has bulk_create method"""
|
||||
self.assertTrue(hasattr(BulkMixin, "bulk_create"))
|
||||
self.assertTrue(callable(BulkMixin.bulk_create))
|
||||
|
||||
def test_has_bulk_delete_method(self):
|
||||
"""Test BulkMixin has bulk_delete method"""
|
||||
self.assertTrue(hasattr(BulkMixin, "bulk_delete"))
|
||||
self.assertTrue(callable(BulkMixin.bulk_delete))
|
||||
Reference in New Issue
Block a user