aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Johannes Christ <[email protected]>2018-08-16 19:30:00 +0200
committerGravatar Johannes Christ <[email protected]>2018-08-16 19:30:00 +0200
commit6b5be23b4e7a023a4bef85dbe1359e7b5e1e4986 (patch)
tree326f8dc7d0e57fdd416092b947776b9d4233ed65
parentExplicitly specify included fields. (diff)
Add tests for the snake name listing API.
-rw-r--r--api/tests/test_snake_names.py47
1 files changed, 42 insertions, 5 deletions
diff --git a/api/tests/test_snake_names.py b/api/tests/test_snake_names.py
index 14574311..fcb70abd 100644
--- a/api/tests/test_snake_names.py
+++ b/api/tests/test_snake_names.py
@@ -1,10 +1,47 @@
from django_hosts.resolvers import reverse
-from rest_framework.test import APITestCase, force_authenticate
+from .base import APISubdomainTestCase
+from ..models import SnakeName
-class EmptyDatabaseSnakeNameTests(APITestCase):
- def test_endpoint_returns_empty_list(self):
- import pdb; pdb.set_trace()
- url = reverse('snake-names-list', host='api')
+
+
+class StatusTests(APISubdomainTestCase):
+ def setUp(self):
+ super().setUp()
+ self.client.force_authenticate(user=None)
+
+ def test_cannot_read_snake_names(self):
+ url = reverse('snakename-list', host='api')
+ response = self.client.get(url)
+
+ self.assertEqual(response.status_code, 401)
+
+
+class EmptyDatabaseSnakeNameTests(APISubdomainTestCase):
+ def test_endpoint_unauthed_returns_empty_list(self):
+ url = reverse('snakename-list', host='api')
response = self.client.get(url)
+
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(response.json(), [])
+
+
+class SnakeNameListTests(APISubdomainTestCase):
+ @classmethod
+ def setUpTestData(cls):
+ cls.snake_python = SnakeName.objects.create(name='Python', scientific='Totally.')
+
+ def test_endpoint_returns_all_snakes(self):
+ url = reverse('snakename-list', host='api')
+ response = self.client.get(url)
+
self.assertEqual(response.status_code, 200)
+ self.assertEqual(
+ response.json(),
+ [
+ {
+ 'name': 'Python',
+ 'scientific': 'Totally.'
+ }
+ ]
+ )