mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-11-01 08:27:40 +03:00 
			
		
		
		
	Merge pull request #677 from thedrow/topic/tests_refactoring
Tests general cleanup
This commit is contained in:
		
						commit
						7d4ee98691
					
				|  | @ -4,6 +4,7 @@ from django.http import HttpResponse | |||
| from django.test import Client, TestCase | ||||
| from rest_framework import HTTP_HEADER_ENCODING | ||||
| from rest_framework import permissions | ||||
| from rest_framework import status | ||||
| from rest_framework.authtoken.models import Token | ||||
| from rest_framework.authentication import TokenAuthentication, BasicAuthentication, SessionAuthentication | ||||
| from rest_framework.compat import patterns | ||||
|  | @ -46,7 +47,7 @@ class BasicAuthTests(TestCase): | |||
|         base64_credentials = base64.b64encode(credentials.encode(HTTP_HEADER_ENCODING)).decode(HTTP_HEADER_ENCODING) | ||||
|         auth = 'Basic %s' % base64_credentials | ||||
|         response = self.csrf_client.post('/basic/', {'example': 'example'}, HTTP_AUTHORIZATION=auth) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
| 
 | ||||
|     def test_post_json_passing_basic_auth(self): | ||||
|         """Ensure POSTing form over basic auth with correct credentials passes and does not require CSRF""" | ||||
|  | @ -54,17 +55,17 @@ class BasicAuthTests(TestCase): | |||
|         base64_credentials = base64.b64encode(credentials.encode(HTTP_HEADER_ENCODING)).decode(HTTP_HEADER_ENCODING) | ||||
|         auth = 'Basic %s' % base64_credentials | ||||
|         response = self.csrf_client.post('/basic/', json.dumps({'example': 'example'}), 'application/json', HTTP_AUTHORIZATION=auth) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
| 
 | ||||
|     def test_post_form_failing_basic_auth(self): | ||||
|         """Ensure POSTing form over basic auth without correct credentials fails""" | ||||
|         response = self.csrf_client.post('/basic/', {'example': 'example'}) | ||||
|         self.assertEqual(response.status_code, 401) | ||||
|         self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) | ||||
| 
 | ||||
|     def test_post_json_failing_basic_auth(self): | ||||
|         """Ensure POSTing json over basic auth without correct credentials fails""" | ||||
|         response = self.csrf_client.post('/basic/', json.dumps({'example': 'example'}), 'application/json') | ||||
|         self.assertEqual(response.status_code, 401) | ||||
|         self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) | ||||
|         self.assertEqual(response['WWW-Authenticate'], 'Basic realm="api"') | ||||
| 
 | ||||
| 
 | ||||
|  | @ -89,7 +90,7 @@ class SessionAuthTests(TestCase): | |||
|         """ | ||||
|         self.csrf_client.login(username=self.username, password=self.password) | ||||
|         response = self.csrf_client.post('/session/', {'example': 'example'}) | ||||
|         self.assertEqual(response.status_code, 403) | ||||
|         self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) | ||||
| 
 | ||||
|     def test_post_form_session_auth_passing(self): | ||||
|         """ | ||||
|  | @ -97,7 +98,7 @@ class SessionAuthTests(TestCase): | |||
|         """ | ||||
|         self.non_csrf_client.login(username=self.username, password=self.password) | ||||
|         response = self.non_csrf_client.post('/session/', {'example': 'example'}) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
| 
 | ||||
|     def test_put_form_session_auth_passing(self): | ||||
|         """ | ||||
|  | @ -105,14 +106,14 @@ class SessionAuthTests(TestCase): | |||
|         """ | ||||
|         self.non_csrf_client.login(username=self.username, password=self.password) | ||||
|         response = self.non_csrf_client.put('/session/', {'example': 'example'}) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
| 
 | ||||
|     def test_post_form_session_auth_failing(self): | ||||
|         """ | ||||
|         Ensure POSTing form over session authentication without logged in user fails. | ||||
|         """ | ||||
|         response = self.csrf_client.post('/session/', {'example': 'example'}) | ||||
|         self.assertEqual(response.status_code, 403) | ||||
|         self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) | ||||
| 
 | ||||
| 
 | ||||
| class TokenAuthTests(TestCase): | ||||
|  | @ -133,23 +134,23 @@ class TokenAuthTests(TestCase): | |||
|         """Ensure POSTing json over token auth with correct credentials passes and does not require CSRF""" | ||||
|         auth = "Token " + self.key | ||||
|         response = self.csrf_client.post('/token/', {'example': 'example'}, HTTP_AUTHORIZATION=auth) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
| 
 | ||||
|     def test_post_json_passing_token_auth(self): | ||||
|         """Ensure POSTing form over token auth with correct credentials passes and does not require CSRF""" | ||||
|         auth = "Token " + self.key | ||||
|         response = self.csrf_client.post('/token/', json.dumps({'example': 'example'}), 'application/json', HTTP_AUTHORIZATION=auth) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
| 
 | ||||
|     def test_post_form_failing_token_auth(self): | ||||
|         """Ensure POSTing form over token auth without correct credentials fails""" | ||||
|         response = self.csrf_client.post('/token/', {'example': 'example'}) | ||||
|         self.assertEqual(response.status_code, 401) | ||||
|         self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) | ||||
| 
 | ||||
|     def test_post_json_failing_token_auth(self): | ||||
|         """Ensure POSTing json over token auth without correct credentials fails""" | ||||
|         response = self.csrf_client.post('/token/', json.dumps({'example': 'example'}), 'application/json') | ||||
|         self.assertEqual(response.status_code, 401) | ||||
|         self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) | ||||
| 
 | ||||
|     def test_token_has_auto_assigned_key_if_none_provided(self): | ||||
|         """Ensure creating a token with no key will auto-assign a key""" | ||||
|  | @ -162,7 +163,7 @@ class TokenAuthTests(TestCase): | |||
|         client = Client(enforce_csrf_checks=True) | ||||
|         response = client.post('/auth-token/', | ||||
|                                json.dumps({'username': self.username, 'password': self.password}), 'application/json') | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
|         self.assertEqual(json.loads(response.content.decode('ascii'))['token'], self.key) | ||||
| 
 | ||||
|     def test_token_login_json_bad_creds(self): | ||||
|  | @ -184,5 +185,5 @@ class TokenAuthTests(TestCase): | |||
|         client = Client(enforce_csrf_checks=True) | ||||
|         response = client.post('/auth-token/', | ||||
|                                {'username': self.username, 'password': self.password}) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
|         self.assertEqual(json.loads(response.content.decode('ascii'))['token'], self.key) | ||||
|  |  | |||
|  | @ -59,11 +59,11 @@ class DecoratorTestCase(TestCase): | |||
| 
 | ||||
|         request = self.factory.get('/') | ||||
|         response = view(request) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
| 
 | ||||
|         request = self.factory.post('/') | ||||
|         response = view(request) | ||||
|         self.assertEqual(response.status_code, 405) | ||||
|         self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) | ||||
| 
 | ||||
|     def test_calling_put_method(self): | ||||
| 
 | ||||
|  | @ -73,11 +73,11 @@ class DecoratorTestCase(TestCase): | |||
| 
 | ||||
|         request = self.factory.put('/') | ||||
|         response = view(request) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
| 
 | ||||
|         request = self.factory.post('/') | ||||
|         response = view(request) | ||||
|         self.assertEqual(response.status_code, 405) | ||||
|         self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) | ||||
| 
 | ||||
|     def test_calling_patch_method(self): | ||||
| 
 | ||||
|  | @ -87,11 +87,11 @@ class DecoratorTestCase(TestCase): | |||
| 
 | ||||
|         request = self.factory.patch('/') | ||||
|         response = view(request) | ||||
|         self.assertEqual(response.status_code, 200) | ||||
|         self.assertEqual(response.status_code, status.HTTP_200_OK) | ||||
| 
 | ||||
|         request = self.factory.post('/') | ||||
|         response = view(request) | ||||
|         self.assertEqual(response.status_code, 405) | ||||
|         self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) | ||||
| 
 | ||||
|     def test_renderer_classes(self): | ||||
| 
 | ||||
|  |  | |||
|  | @ -43,7 +43,7 @@ class SlugBasedInstanceView(InstanceView): | |||
| class TestRootView(TestCase): | ||||
|     def setUp(self): | ||||
|         """ | ||||
|         Create 3 BasicModel intances. | ||||
|         Create 3 BasicModel instances. | ||||
|         """ | ||||
|         items = ['foo', 'bar', 'baz'] | ||||
|         for item in items: | ||||
|  | @ -344,7 +344,7 @@ class ExampleView(generics.ListCreateAPIView): | |||
| class TestM2MBrowseableAPI(TestCase): | ||||
|     def test_m2m_in_browseable_api(self): | ||||
|         """ | ||||
|         Test for particularly ugly reression with m2m in browseable API | ||||
|         Test for particularly ugly regression with m2m in browseable API | ||||
|         """ | ||||
|         request = factory.get('/', HTTP_ACCEPT='text/html') | ||||
|         view = ExampleView().as_view() | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ from django.http import Http404 | |||
| from django.test import TestCase | ||||
| from django.template import TemplateDoesNotExist, Template | ||||
| import django.template.loader | ||||
| from rest_framework import status | ||||
| from rest_framework.compat import patterns, url | ||||
| from rest_framework.decorators import api_view, renderer_classes | ||||
| from rest_framework.renderers import TemplateHTMLRenderer | ||||
|  | @ -69,13 +70,13 @@ class TemplateHTMLRendererTests(TestCase): | |||
| 
 | ||||
|     def test_not_found_html_view(self): | ||||
|         response = self.client.get('/not_found') | ||||
|         self.assertEquals(response.status_code, 404) | ||||
|         self.assertEquals(response.status_code, status.HTTP_404_NOT_FOUND) | ||||
|         self.assertEquals(response.content, six.b("404 Not Found")) | ||||
|         self.assertEquals(response['Content-Type'], 'text/html') | ||||
| 
 | ||||
|     def test_permission_denied_html_view(self): | ||||
|         response = self.client.get('/permission_denied') | ||||
|         self.assertEquals(response.status_code, 403) | ||||
|         self.assertEquals(response.status_code, status.HTTP_403_FORBIDDEN) | ||||
|         self.assertEquals(response.content, six.b("403 Forbidden")) | ||||
|         self.assertEquals(response['Content-Type'], 'text/html') | ||||
| 
 | ||||
|  | @ -106,12 +107,12 @@ class TemplateHTMLRendererExceptionTests(TestCase): | |||
| 
 | ||||
|     def test_not_found_html_view_with_template(self): | ||||
|         response = self.client.get('/not_found') | ||||
|         self.assertEquals(response.status_code, 404) | ||||
|         self.assertEquals(response.status_code, status.HTTP_404_NOT_FOUND) | ||||
|         self.assertEquals(response.content, six.b("404: Not found")) | ||||
|         self.assertEquals(response['Content-Type'], 'text/html') | ||||
| 
 | ||||
|     def test_permission_denied_html_view_with_template(self): | ||||
|         response = self.client.get('/permission_denied') | ||||
|         self.assertEquals(response.status_code, 403) | ||||
|         self.assertEquals(response.status_code, status.HTTP_403_FORBIDDEN) | ||||
|         self.assertEquals(response.content, six.b("403: Permission denied")) | ||||
|         self.assertEquals(response['Content-Type'], 'text/html') | ||||
|  |  | |||
|  | @ -100,7 +100,7 @@ class TestBasicHyperlinkedView(TestCase): | |||
| 
 | ||||
|     def setUp(self): | ||||
|         """ | ||||
|         Create 3 BasicModel intances. | ||||
|         Create 3 BasicModel instances. | ||||
|         """ | ||||
|         items = ['foo', 'bar', 'baz'] | ||||
|         for item in items: | ||||
|  | @ -137,7 +137,7 @@ class TestManyToManyHyperlinkedView(TestCase): | |||
| 
 | ||||
|     def setUp(self): | ||||
|         """ | ||||
|         Create 3 BasicModel intances. | ||||
|         Create 3 BasicModel instances. | ||||
|         """ | ||||
|         items = ['foo', 'bar', 'baz'] | ||||
|         anchors = [] | ||||
|  | @ -235,7 +235,7 @@ class TestOptionalRelationHyperlinkedView(TestCase): | |||
| 
 | ||||
|     def setUp(self): | ||||
|         """ | ||||
|         Create 1 OptionalRelationModel intances. | ||||
|         Create 1 OptionalRelationModel instances. | ||||
|         """ | ||||
|         OptionalRelationModel().save() | ||||
|         self.objects = OptionalRelationModel.objects | ||||
|  |  | |||
|  | @ -24,7 +24,7 @@ class NullableForeignKeySourceSerializer(serializers.ModelSerializer): | |||
|         model = NullableForeignKeySource | ||||
| 
 | ||||
| 
 | ||||
| # TODO: M2M Tests, FKTests (Non-nulable), One2One | ||||
| # TODO: M2M Tests, FKTests (Non-nullable), One2One | ||||
| class SlugForeignKeyTests(TestCase): | ||||
|     def setUp(self): | ||||
|         target = ForeignKeyTarget(name='target-1') | ||||
|  |  | |||
|  | @ -268,7 +268,7 @@ class JSONPRendererTests(TestCase): | |||
|         """ | ||||
|         resp = self.client.get('/jsonp/jsonrenderer', | ||||
|                                HTTP_ACCEPT='application/javascript') | ||||
|         self.assertEquals(resp.status_code, 200) | ||||
|         self.assertEquals(resp.status_code, status.HTTP_200_OK) | ||||
|         self.assertEquals(resp['Content-Type'], 'application/javascript') | ||||
|         self.assertEquals(resp.content, | ||||
|             ('callback(%s);' % _flat_repr).encode('ascii')) | ||||
|  | @ -279,7 +279,7 @@ class JSONPRendererTests(TestCase): | |||
|         """ | ||||
|         resp = self.client.get('/jsonp/nojsonrenderer', | ||||
|                                HTTP_ACCEPT='application/javascript') | ||||
|         self.assertEquals(resp.status_code, 200) | ||||
|         self.assertEquals(resp.status_code, status.HTTP_200_OK) | ||||
|         self.assertEquals(resp['Content-Type'], 'application/javascript') | ||||
|         self.assertEquals(resp.content, | ||||
|             ('callback(%s);' % _flat_repr).encode('ascii')) | ||||
|  | @ -291,7 +291,7 @@ class JSONPRendererTests(TestCase): | |||
|         callback_func = 'myjsonpcallback' | ||||
|         resp = self.client.get('/jsonp/nojsonrenderer?callback=' + callback_func, | ||||
|                                HTTP_ACCEPT='application/javascript') | ||||
|         self.assertEquals(resp.status_code, 200) | ||||
|         self.assertEquals(resp.status_code, status.HTTP_200_OK) | ||||
|         self.assertEquals(resp['Content-Type'], 'application/javascript') | ||||
|         self.assertEquals(resp.content, | ||||
|             ('%s(%s);' % (callback_func, _flat_repr)).encode('ascii')) | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ urlpatterns = patterns('', | |||
| 
 | ||||
| class ReverseTests(TestCase): | ||||
|     """ | ||||
|     Tests for fully qualifed URLs when using `reverse`. | ||||
|     Tests for fully qualified URLs when using `reverse`. | ||||
|     """ | ||||
|     urls = 'rest_framework.tests.reverse' | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user