diff options
Diffstat (limited to 'rest_framework/tests/views.py')
| -rw-r--r-- | rest_framework/tests/views.py | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/rest_framework/tests/views.py b/rest_framework/tests/views.py new file mode 100644 index 00000000..cd1f73c3 --- /dev/null +++ b/rest_framework/tests/views.py @@ -0,0 +1,128 @@ +# from django.core.urlresolvers import reverse +# from django.conf.urls.defaults import patterns, url, include +# from django.http import HttpResponse +# from django.test import TestCase +# from django.utils import simplejson as json + +# from rest_framework.views import View + + +# class MockView(View): +# """This is a basic mock view""" +# pass + + +# class MockViewFinal(View): +# """View with final() override""" + +# def final(self, request, response, *args, **kwargs): +# return HttpResponse('{"test": "passed"}', content_type="application/json") + + +# # class ResourceMockView(View): +# # """This is a resource-based mock view""" + +# # class MockForm(forms.Form): +# # foo = forms.BooleanField(required=False) +# # bar = forms.IntegerField(help_text='Must be an integer.') +# # baz = forms.CharField(max_length=32) + +# # form = MockForm + + +# # class MockResource(ModelResource): +# # """This is a mock model-based resource""" + +# # class MockResourceModel(models.Model): +# # foo = models.BooleanField() +# # bar = models.IntegerField(help_text='Must be an integer.') +# # baz = models.CharField(max_length=32, help_text='Free text. Max length 32 chars.') + +# # model = MockResourceModel +# # fields = ('foo', 'bar', 'baz') + +# urlpatterns = patterns('', +# url(r'^mock/$', MockView.as_view()), +# url(r'^mock/final/$', MockViewFinal.as_view()), +# # url(r'^resourcemock/$', ResourceMockView.as_view()), +# # url(r'^model/$', ListOrCreateModelView.as_view(resource=MockResource)), +# # url(r'^model/(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=MockResource)), +# url(r'^restframework/', include('rest_framework.urls', namespace='rest_framework')), +# ) + + +# class BaseViewTests(TestCase): +# """Test the base view class of rest_framework""" +# urls = 'rest_framework.tests.views' + +# def test_view_call_final(self): +# response = self.client.options('/mock/final/') +# self.assertEqual(response['Content-Type'].split(';')[0], "application/json") +# data = json.loads(response.content) +# self.assertEqual(data['test'], 'passed') + +# def test_options_method_simple_view(self): +# response = self.client.options('/mock/') +# self._verify_options_response(response, +# name='Mock', +# description='This is a basic mock view') + +# def test_options_method_resource_view(self): +# response = self.client.options('/resourcemock/') +# self._verify_options_response(response, +# name='Resource Mock', +# description='This is a resource-based mock view', +# fields={'foo': 'BooleanField', +# 'bar': 'IntegerField', +# 'baz': 'CharField', +# }) + +# def test_options_method_model_resource_list_view(self): +# response = self.client.options('/model/') +# self._verify_options_response(response, +# name='Mock List', +# description='This is a mock model-based resource', +# fields={'foo': 'BooleanField', +# 'bar': 'IntegerField', +# 'baz': 'CharField', +# }) + +# def test_options_method_model_resource_detail_view(self): +# response = self.client.options('/model/0/') +# self._verify_options_response(response, +# name='Mock Instance', +# description='This is a mock model-based resource', +# fields={'foo': 'BooleanField', +# 'bar': 'IntegerField', +# 'baz': 'CharField', +# }) + +# def _verify_options_response(self, response, name, description, fields=None, status=200, +# mime_type='application/json'): +# self.assertEqual(response.status_code, status) +# self.assertEqual(response['Content-Type'].split(';')[0], mime_type) +# data = json.loads(response.content) +# self.assertTrue('application/json' in data['renders']) +# self.assertEqual(name, data['name']) +# self.assertEqual(description, data['description']) +# if fields is None: +# self.assertFalse(hasattr(data, 'fields')) +# else: +# self.assertEqual(data['fields'], fields) + + +# class ExtraViewsTests(TestCase): +# """Test the extra views rest_framework provides""" +# urls = 'rest_framework.tests.views' + +# def test_login_view(self): +# """Ensure the login view exists""" +# response = self.client.get(reverse('rest_framework:login')) +# self.assertEqual(response.status_code, 200) +# self.assertEqual(response['Content-Type'].split(';')[0], 'text/html') + +# def test_logout_view(self): +# """Ensure the logout view exists""" +# response = self.client.get(reverse('rest_framework:logout')) +# self.assertEqual(response.status_code, 200) +# self.assertEqual(response['Content-Type'].split(';')[0], 'text/html') |
