Merge pull request #4715 from auvipy/pytest4

converted test asserts of generics-test to pytest
This commit is contained in:
Xavier Ordoquy 2016-11-30 07:53:58 +01:00 committed by GitHub
commit 4c41f2bfea

View File

@ -98,8 +98,8 @@ class TestRootView(TestCase):
request = factory.get('/') request = factory.get('/')
with self.assertNumQueries(1): with self.assertNumQueries(1):
response = self.view(request).render() response = self.view(request).render()
self.assertEqual(response.status_code, status.HTTP_200_OK) assert response.status_code == status.HTTP_200_OK
self.assertEqual(response.data, self.data) assert response.data == self.data
def test_post_root_view(self): def test_post_root_view(self):
""" """
@ -109,10 +109,10 @@ class TestRootView(TestCase):
request = factory.post('/', data, format='json') request = factory.post('/', data, format='json')
with self.assertNumQueries(1): with self.assertNumQueries(1):
response = self.view(request).render() response = self.view(request).render()
self.assertEqual(response.status_code, status.HTTP_201_CREATED) assert response.status_code == status.HTTP_201_CREATED
self.assertEqual(response.data, {'id': 4, 'text': 'foobar'}) assert response.data == {'id': 4, 'text': 'foobar'}
created = self.objects.get(id=4) created = self.objects.get(id=4)
self.assertEqual(created.text, 'foobar') assert created.text == 'foobar'
def test_put_root_view(self): def test_put_root_view(self):
""" """
@ -122,8 +122,8 @@ class TestRootView(TestCase):
request = factory.put('/', data, format='json') request = factory.put('/', data, format='json')
with self.assertNumQueries(0): with self.assertNumQueries(0):
response = self.view(request).render() response = self.view(request).render()
self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) assert response.status_code == status.HTTP_405_METHOD_NOT_ALLOWED
self.assertEqual(response.data, {"detail": 'Method "PUT" not allowed.'}) assert response.data == {"detail": 'Method "PUT" not allowed.'}
def test_delete_root_view(self): def test_delete_root_view(self):
""" """
@ -132,8 +132,8 @@ class TestRootView(TestCase):
request = factory.delete('/') request = factory.delete('/')
with self.assertNumQueries(0): with self.assertNumQueries(0):
response = self.view(request).render() response = self.view(request).render()
self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) assert response.status_code == status.HTTP_405_METHOD_NOT_ALLOWED
self.assertEqual(response.data, {"detail": 'Method "DELETE" not allowed.'}) assert response.data == {"detail": 'Method "DELETE" not allowed.'}
def test_post_cannot_set_id(self): def test_post_cannot_set_id(self):
""" """
@ -143,10 +143,10 @@ class TestRootView(TestCase):
request = factory.post('/', data, format='json') request = factory.post('/', data, format='json')
with self.assertNumQueries(1): with self.assertNumQueries(1):
response = self.view(request).render() response = self.view(request).render()
self.assertEqual(response.status_code, status.HTTP_201_CREATED) assert response.status_code == status.HTTP_201_CREATED
self.assertEqual(response.data, {'id': 4, 'text': 'foobar'}) assert response.data == {'id': 4, 'text': 'foobar'}
created = self.objects.get(id=4) created = self.objects.get(id=4)
self.assertEqual(created.text, 'foobar') assert created.text == 'foobar'
def test_post_error_root_view(self): def test_post_error_root_view(self):
""" """
@ -156,7 +156,7 @@ class TestRootView(TestCase):
request = factory.post('/', data, HTTP_ACCEPT='text/html') request = factory.post('/', data, HTTP_ACCEPT='text/html')
response = self.view(request).render() response = self.view(request).render()
expected_error = '<span class="help-block">Ensure this field has no more than 100 characters.</span>' expected_error = '<span class="help-block">Ensure this field has no more than 100 characters.</span>'
self.assertIn(expected_error, response.rendered_content.decode('utf-8')) assert expected_error in response.rendered_content.decode('utf-8')
EXPECTED_QUERIES_FOR_PUT = 2 EXPECTED_QUERIES_FOR_PUT = 2
@ -185,8 +185,8 @@ class TestInstanceView(TestCase):
request = factory.get('/1') request = factory.get('/1')
with self.assertNumQueries(1): with self.assertNumQueries(1):
response = self.view(request, pk=1).render() response = self.view(request, pk=1).render()
self.assertEqual(response.status_code, status.HTTP_200_OK) assert response.status_code == status.HTTP_200_OK
self.assertEqual(response.data, self.data[0]) assert response.data == self.data[0]
def test_post_instance_view(self): def test_post_instance_view(self):
""" """
@ -196,8 +196,8 @@ class TestInstanceView(TestCase):
request = factory.post('/', data, format='json') request = factory.post('/', data, format='json')
with self.assertNumQueries(0): with self.assertNumQueries(0):
response = self.view(request).render() response = self.view(request).render()
self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) assert response.status_code == status.HTTP_405_METHOD_NOT_ALLOWED
self.assertEqual(response.data, {"detail": 'Method "POST" not allowed.'}) assert response.data == {"detail": 'Method "POST" not allowed.'}
def test_put_instance_view(self): def test_put_instance_view(self):
""" """
@ -207,10 +207,10 @@ class TestInstanceView(TestCase):
request = factory.put('/1', data, format='json') request = factory.put('/1', data, format='json')
with self.assertNumQueries(EXPECTED_QUERIES_FOR_PUT): with self.assertNumQueries(EXPECTED_QUERIES_FOR_PUT):
response = self.view(request, pk='1').render() response = self.view(request, pk='1').render()
self.assertEqual(response.status_code, status.HTTP_200_OK) assert response.status_code == status.HTTP_200_OK
self.assertEqual(dict(response.data), {'id': 1, 'text': 'foobar'}) assert dict(response.data) == {'id': 1, 'text': 'foobar'}
updated = self.objects.get(id=1) updated = self.objects.get(id=1)
self.assertEqual(updated.text, 'foobar') assert updated.text == 'foobar'
def test_patch_instance_view(self): def test_patch_instance_view(self):
""" """
@ -221,10 +221,10 @@ class TestInstanceView(TestCase):
with self.assertNumQueries(EXPECTED_QUERIES_FOR_PUT): with self.assertNumQueries(EXPECTED_QUERIES_FOR_PUT):
response = self.view(request, pk=1).render() response = self.view(request, pk=1).render()
self.assertEqual(response.status_code, status.HTTP_200_OK) assert response.status_code == status.HTTP_200_OK
self.assertEqual(response.data, {'id': 1, 'text': 'foobar'}) assert response.data == {'id': 1, 'text': 'foobar'}
updated = self.objects.get(id=1) updated = self.objects.get(id=1)
self.assertEqual(updated.text, 'foobar') assert updated.text == 'foobar'
def test_delete_instance_view(self): def test_delete_instance_view(self):
""" """
@ -233,10 +233,10 @@ class TestInstanceView(TestCase):
request = factory.delete('/1') request = factory.delete('/1')
with self.assertNumQueries(2): with self.assertNumQueries(2):
response = self.view(request, pk=1).render() response = self.view(request, pk=1).render()
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) assert response.status_code == status.HTTP_204_NO_CONTENT
self.assertEqual(response.content, six.b('')) assert response.content == six.b('')
ids = [obj.id for obj in self.objects.all()] ids = [obj.id for obj in self.objects.all()]
self.assertEqual(ids, [2, 3]) assert ids == [2, 3]
def test_get_instance_view_incorrect_arg(self): def test_get_instance_view_incorrect_arg(self):
""" """
@ -246,7 +246,7 @@ class TestInstanceView(TestCase):
request = factory.get('/a') request = factory.get('/a')
with self.assertNumQueries(0): with self.assertNumQueries(0):
response = self.view(request, pk='a').render() response = self.view(request, pk='a').render()
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) assert response.status_code == status.HTTP_404_NOT_FOUND
def test_put_cannot_set_id(self): def test_put_cannot_set_id(self):
""" """
@ -256,10 +256,10 @@ class TestInstanceView(TestCase):
request = factory.put('/1', data, format='json') request = factory.put('/1', data, format='json')
with self.assertNumQueries(EXPECTED_QUERIES_FOR_PUT): with self.assertNumQueries(EXPECTED_QUERIES_FOR_PUT):
response = self.view(request, pk=1).render() response = self.view(request, pk=1).render()
self.assertEqual(response.status_code, status.HTTP_200_OK) assert response.status_code == status.HTTP_200_OK
self.assertEqual(response.data, {'id': 1, 'text': 'foobar'}) assert response.data == {'id': 1, 'text': 'foobar'}
updated = self.objects.get(id=1) updated = self.objects.get(id=1)
self.assertEqual(updated.text, 'foobar') assert updated.text == 'foobar'
def test_put_to_deleted_instance(self): def test_put_to_deleted_instance(self):
""" """
@ -271,7 +271,7 @@ class TestInstanceView(TestCase):
request = factory.put('/1', data, format='json') request = factory.put('/1', data, format='json')
with self.assertNumQueries(1): with self.assertNumQueries(1):
response = self.view(request, pk=1).render() response = self.view(request, pk=1).render()
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) assert response.status_code == status.HTTP_404_NOT_FOUND
def test_put_to_filtered_out_instance(self): def test_put_to_filtered_out_instance(self):
""" """
@ -282,7 +282,7 @@ class TestInstanceView(TestCase):
filtered_out_pk = BasicModel.objects.filter(text='filtered out')[0].pk filtered_out_pk = BasicModel.objects.filter(text='filtered out')[0].pk
request = factory.put('/{0}'.format(filtered_out_pk), data, format='json') request = factory.put('/{0}'.format(filtered_out_pk), data, format='json')
response = self.view(request, pk=filtered_out_pk).render() response = self.view(request, pk=filtered_out_pk).render()
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) assert response.status_code == status.HTTP_404_NOT_FOUND
def test_patch_cannot_create_an_object(self): def test_patch_cannot_create_an_object(self):
""" """
@ -292,8 +292,8 @@ class TestInstanceView(TestCase):
request = factory.patch('/999', data, format='json') request = factory.patch('/999', data, format='json')
with self.assertNumQueries(1): with self.assertNumQueries(1):
response = self.view(request, pk=999).render() response = self.view(request, pk=999).render()
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) assert response.status_code == status.HTTP_404_NOT_FOUND
self.assertFalse(self.objects.filter(id=999).exists()) assert not self.objects.filter(id=999).exists()
def test_put_error_instance_view(self): def test_put_error_instance_view(self):
""" """
@ -303,7 +303,7 @@ class TestInstanceView(TestCase):
request = factory.put('/', data, HTTP_ACCEPT='text/html') request = factory.put('/', data, HTTP_ACCEPT='text/html')
response = self.view(request, pk=1).render() response = self.view(request, pk=1).render()
expected_error = '<span class="help-block">Ensure this field has no more than 100 characters.</span>' expected_error = '<span class="help-block">Ensure this field has no more than 100 characters.</span>'
self.assertIn(expected_error, response.rendered_content.decode('utf-8')) assert expected_error in response.rendered_content.decode('utf-8')
class TestFKInstanceView(TestCase): class TestFKInstanceView(TestCase):
@ -363,8 +363,8 @@ class TestOverriddenGetObject(TestCase):
request = factory.get('/1') request = factory.get('/1')
with self.assertNumQueries(1): with self.assertNumQueries(1):
response = self.view(request, pk=1).render() response = self.view(request, pk=1).render()
self.assertEqual(response.status_code, status.HTTP_200_OK) assert response.status_code == status.HTTP_200_OK
self.assertEqual(response.data, self.data[0]) assert response.data == self.data[0]
# Regression test for #285 # Regression test for #285
@ -394,9 +394,9 @@ class TestCreateModelWithAutoNowAddField(TestCase):
data = {'email': 'foobar@example.com', 'content': 'foobar'} data = {'email': 'foobar@example.com', 'content': 'foobar'}
request = factory.post('/', data, format='json') request = factory.post('/', data, format='json')
response = self.view(request).render() response = self.view(request).render()
self.assertEqual(response.status_code, status.HTTP_201_CREATED) assert response.status_code == status.HTTP_201_CREATED
created = self.objects.get(id=1) created = self.objects.get(id=1)
self.assertEqual(created.content, 'foobar') assert created.content == 'foobar'
# Test for particularly ugly regression with m2m in browsable API # Test for particularly ugly regression with m2m in browsable API
@ -432,7 +432,7 @@ class TestM2MBrowsableAPI(TestCase):
request = factory.get('/', HTTP_ACCEPT='text/html') request = factory.get('/', HTTP_ACCEPT='text/html')
view = ExampleView().as_view() view = ExampleView().as_view()
response = view(request).render() response = view(request).render()
self.assertEqual(response.status_code, status.HTTP_200_OK) assert response.status_code == status.HTTP_200_OK
class InclusiveFilterBackend(object): class InclusiveFilterBackend(object):
@ -489,9 +489,9 @@ class TestFilterBackendAppliedToViews(TestCase):
root_view = RootView.as_view(filter_backends=(InclusiveFilterBackend,)) root_view = RootView.as_view(filter_backends=(InclusiveFilterBackend,))
request = factory.get('/') request = factory.get('/')
response = root_view(request).render() response = root_view(request).render()
self.assertEqual(response.status_code, status.HTTP_200_OK) assert response.status_code == status.HTTP_200_OK
self.assertEqual(len(response.data), 1) assert len(response.data) == 1
self.assertEqual(response.data, [{'id': 1, 'text': 'foo'}]) assert response.data == [{'id': 1, 'text': 'foo'}]
def test_get_root_view_filters_out_all_models_with_exclusive_filter_backend(self): def test_get_root_view_filters_out_all_models_with_exclusive_filter_backend(self):
""" """
@ -500,8 +500,8 @@ class TestFilterBackendAppliedToViews(TestCase):
root_view = RootView.as_view(filter_backends=(ExclusiveFilterBackend,)) root_view = RootView.as_view(filter_backends=(ExclusiveFilterBackend,))
request = factory.get('/') request = factory.get('/')
response = root_view(request).render() response = root_view(request).render()
self.assertEqual(response.status_code, status.HTTP_200_OK) assert response.status_code == status.HTTP_200_OK
self.assertEqual(response.data, []) assert response.data == []
def test_get_instance_view_filters_out_name_with_filter_backend(self): def test_get_instance_view_filters_out_name_with_filter_backend(self):
""" """
@ -510,8 +510,8 @@ class TestFilterBackendAppliedToViews(TestCase):
instance_view = InstanceView.as_view(filter_backends=(ExclusiveFilterBackend,)) instance_view = InstanceView.as_view(filter_backends=(ExclusiveFilterBackend,))
request = factory.get('/1') request = factory.get('/1')
response = instance_view(request, pk=1).render() response = instance_view(request, pk=1).render()
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) assert response.status_code == status.HTTP_404_NOT_FOUND
self.assertEqual(response.data, {'detail': 'Not found.'}) assert response.data == {'detail': 'Not found.'}
def test_get_instance_view_will_return_single_object_when_filter_does_not_exclude_it(self): def test_get_instance_view_will_return_single_object_when_filter_does_not_exclude_it(self):
""" """
@ -520,8 +520,8 @@ class TestFilterBackendAppliedToViews(TestCase):
instance_view = InstanceView.as_view(filter_backends=(InclusiveFilterBackend,)) instance_view = InstanceView.as_view(filter_backends=(InclusiveFilterBackend,))
request = factory.get('/1') request = factory.get('/1')
response = instance_view(request, pk=1).render() response = instance_view(request, pk=1).render()
self.assertEqual(response.status_code, status.HTTP_200_OK) assert response.status_code == status.HTTP_200_OK
self.assertEqual(response.data, {'id': 1, 'text': 'foo'}) assert response.data == {'id': 1, 'text': 'foo'}
def test_dynamic_serializer_form_in_browsable_api(self): def test_dynamic_serializer_form_in_browsable_api(self):
""" """
@ -530,8 +530,9 @@ class TestFilterBackendAppliedToViews(TestCase):
view = DynamicSerializerView.as_view() view = DynamicSerializerView.as_view()
request = factory.get('/') request = factory.get('/')
response = view(request).render() response = view(request).render()
self.assertContains(response, 'field_b') content = response.content.decode('utf8')
self.assertNotContains(response, 'field_a') assert 'field_b' in content
assert 'field_a' not in content
class TestGuardedQueryset(TestCase): class TestGuardedQueryset(TestCase):