parent
8e08cab3c4
commit
910d3b4beb
15 changed files with 310 additions and 36 deletions
0
ccdb/utils/tests/__init__.py
Normal file
0
ccdb/utils/tests/__init__.py
Normal file
21
ccdb/utils/tests/factories.py
Normal file
21
ccdb/utils/tests/factories.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
from factory import DjangoModelFactory, Sequence, SubFactory
|
||||
|
||||
from ..models import AdminSection, AdminEntry
|
||||
|
||||
|
||||
class AdminSectionFactory(DjangoModelFactory):
|
||||
class Meta:
|
||||
model = AdminSection
|
||||
|
||||
name = Sequence(lambda n: 'section{}'.format(n))
|
||||
sort = Sequence(lambda n: n)
|
||||
|
||||
|
||||
class AdminEntryFactory(DjangoModelFactory):
|
||||
class Meta:
|
||||
model = AdminEntry
|
||||
|
||||
package = Sequence(lambda n: 'package{}'.format(n))
|
||||
model = Sequence(lambda n: 'section{}'.format(n))
|
||||
section = SubFactory(AdminSectionFactory)
|
||||
sort = Sequence(lambda n: n)
|
26
ccdb/utils/tests/test_models.py
Normal file
26
ccdb/utils/tests/test_models.py
Normal file
|
@ -0,0 +1,26 @@
|
|||
from django.test import TestCase
|
||||
from django.test.client import RequestFactory
|
||||
|
||||
from ..models import AdminSection, AdminEntry
|
||||
from .factories import AdminSectionFactory, AdminEntryFactory
|
||||
|
||||
|
||||
class AdminSectionTestCase(TestCase):
|
||||
def test_creation(self):
|
||||
a = AdminSectionFactory()
|
||||
self.assertTrue(isinstance(a, AdminSection))
|
||||
self.assertEqual(a.__str__(), a.name)
|
||||
|
||||
|
||||
class AdminEntryTestCase(TestCase):
|
||||
def test_creation(self):
|
||||
a = AdminEntryFactory()
|
||||
self.assertTrue(isinstance(a, AdminEntry))
|
||||
self.assertEqual(a.__str__(), "%s %s" % (a.package, a.model))
|
||||
|
||||
def test_admin_url(self):
|
||||
a = AdminEntryFactory(package='utils', model='adminentry')
|
||||
request_factory = RequestFactory()
|
||||
request = request_factory.get('/')
|
||||
self.assertEqual('http://testserver/admin/utils/adminentry/',
|
||||
a.admin_url(request))
|
25
ccdb/utils/tests/test_serializers.py
Normal file
25
ccdb/utils/tests/test_serializers.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
from django.test import TestCase
|
||||
from django.test.client import RequestFactory
|
||||
|
||||
from .factories import AdminSectionFactory, AdminEntryFactory
|
||||
from ..serializers import AdminSectionSerializer, AdminEntrySerializer
|
||||
|
||||
|
||||
class AdminSectionTestCase(TestCase):
|
||||
def test_creation(self):
|
||||
a = AdminSectionFactory()
|
||||
serializer = AdminSectionSerializer(a)
|
||||
data = {'name': a.name, 'id': a.id, 'sort': a.sort}
|
||||
self.assertEqual(data, serializer.data)
|
||||
|
||||
|
||||
class AdminEntryTestCase(TestCase):
|
||||
def test_creation(self):
|
||||
a = AdminEntryFactory(package='utils', model='adminentry')
|
||||
request_factory = RequestFactory()
|
||||
request = request_factory.get('/')
|
||||
serializer = AdminEntrySerializer(a, context={'request': request})
|
||||
data = {'package': a.package, 'id': a.id, 'sort': a.sort,
|
||||
'model': a.model, 'section': a.section.id,
|
||||
'admin_url': a.admin_url(request)}
|
||||
self.assertEqual(data, serializer.data)
|
37
ccdb/utils/tests/test_viewsets.py
Normal file
37
ccdb/utils/tests/test_viewsets.py
Normal file
|
@ -0,0 +1,37 @@
|
|||
from django.core.urlresolvers import reverse
|
||||
|
||||
from rest_framework import status
|
||||
from rest_framework.test import APITestCase
|
||||
from rest_framework.authtoken.models import Token
|
||||
|
||||
from .factories import AdminSectionFactory, AdminEntryFactory
|
||||
from ccdb.users.models import User
|
||||
|
||||
|
||||
class AdminTestCase(APITestCase):
|
||||
def setUp(self):
|
||||
self.username = 'abc'
|
||||
self.password = '123'
|
||||
self.user = User.objects.create(username=self.username,
|
||||
password=self.password)
|
||||
self.token = Token.objects.create(user=self.user)
|
||||
self.client.login(username=self.username, password=self.password)
|
||||
self.client.credentials(HTTP_AUTHORIZATION='Token %s' % self.token.key)
|
||||
|
||||
|
||||
class AdminSectionTestCase(AdminTestCase):
|
||||
def test_list(self):
|
||||
AdminSectionFactory.create_batch(5)
|
||||
url = reverse('api:v1:adminsection-list')
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(len(response.data['results']), 5)
|
||||
|
||||
|
||||
class AdminEntryTestCase(AdminTestCase):
|
||||
def test_list(self):
|
||||
AdminEntryFactory.create_batch(5, package='utils', model='adminentry')
|
||||
url = reverse('api:v1:adminentry-list')
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEqual(len(response.data['results']), 5)
|
Loading…
Add table
Add a link
Reference in a new issue