testsnippets.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from hackathon.models import Snippet
  2. from rest_framework import status
  3. from rest_framework.test import APITestCase
  4. class SnippetViewTestCase(APITestCase):
  5. def setUp(self):
  6. self.s1 = Snippet.objects.create(title='t1', code="""print("Hello, World.")""")
  7. self.s2 = Snippet.objects.create(title='t2', code="""print("Goodbye, World.")""")
  8. super(SnippetViewTestCase, self).setUp()
  9. def test_list(self):
  10. response = self.client.get('/hackathon/snippets/')
  11. self.assertEqual(response.status_code, status.HTTP_200_OK)
  12. self.assertEqual(len(response.data), 2)
  13. def test_detail(self):
  14. response = self.client.get('/hackathon/snippets/{}/'.format(self.s1.id))
  15. self.assertEqual(response.status_code, status.HTTP_200_OK)
  16. self.assertEqual(response.data['id'], self.s1.id)
  17. def test_create(self):
  18. payload = {'title': 't3', 'code': """print("Create, World.")"""}
  19. response = self.client.post('/hackathon/snippets/', payload)
  20. self.assertEqual(response.status_code, status.HTTP_201_CREATED)
  21. self.assertEqual(response.data['title'], 't3')
  22. self.assertEqual(response.data['code'], """print("Create, World.")""")
  23. def test_update(self):
  24. payload = {'title': 't666', 'code': '2 + 2'}
  25. response = self.client.put('/hackathon/snippets/{}/'.format(self.s1.id), payload)
  26. self.assertEqual(response.status_code, status.HTTP_200_OK)
  27. self.assertEqual(response.data['title'], 't666')
  28. self.assertEqual(response.data['code'], '2 + 2')
  29. def test_partial_update(self):
  30. payload = {'title': 't666'}
  31. response = self.client.patch('/hackathon/snippets/{}/'.format(self.s1.id), payload)
  32. self.assertEqual(response.status_code, status.HTTP_200_OK)
  33. self.assertEqual(response.data['title'], 't666')
  34. def test_delete(self):
  35. response = self.client.delete('/hackathon/snippets/{}/'.format(self.s1.id))
  36. self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
  37. self.assertEqual(Snippet.objects.count(), 1)