src/notes/tests/api/session.py
changeset 74 043477fd5c5c
parent 31 63be3ce389f7
child 119 8ff8e2aee0f9
--- a/src/notes/tests/api/session.py	Thu Jun 22 11:58:27 2017 +0200
+++ b/src/notes/tests/api/session.py	Thu Jun 22 12:09:48 2017 +0200
@@ -2,6 +2,7 @@
 Tests the core api for sessions
 """
 import logging
+from uuid import uuid4
 
 from django.contrib.auth import get_user_model
 from django.urls import reverse
@@ -78,13 +79,13 @@
 
 
     def test_list_session_no_user(self):
-        url = reverse('notes_api:session-list')
+        url = reverse('notes:session-list')
         response = self.client.post(url)
-        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
+        self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)
 
 
     def test_list_session(self):
-        url = reverse('notes_api:session-list')
+        url = reverse('notes:session-list')
         self.client.login(username='test_user1', password='top_secret')
         response = self.client.get(url)
         self.assertEqual(response.status_code, status.HTTP_200_OK)
@@ -95,18 +96,18 @@
 
 
     def test_create_session_no_user(self):
-        url = reverse('notes_api:session-list')
+        url = reverse('notes:session-list')
         response = self.client.post(url, {
             'title': "a new session",
             'description': "description of the session",
             'protocol': "[]"
         }, format='json')
 
-        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
+        self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)
 
 
     def test_create_session(self):
-        url = reverse('notes_api:session-list')
+        url = reverse('notes:session-list')
         self.client.login(username='test_user1', password='top_secret')
         response = self.client.post(url, {
             'title': "a new session",
@@ -119,26 +120,43 @@
         json = response.json()
         self.assertIn('ext_id', json)
 
+    def test_create_session_with_ext_id(self):
+        url = reverse('notes:session-list')
+        self.client.login(username='test_user1', password='top_secret')
+        ext_id = str(uuid4())
+        response = self.client.post(url, {
+            'ext_id': ext_id,
+            'title': "a new session",
+            'description': "description of the session",
+            'protocol': "[]"
+        }, format='json')
+
+        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
+        json = response.json()
+        self.assertIn('ext_id', json)
+        self.assertEqual(json['ext_id'], ext_id)
+
+
     def test_detail_session(self):
-        url = reverse('notes_api:session-detail', kwargs={'ext_id':str(self.session1.ext_id)})
+        url = reverse('notes:session-detail', kwargs={'ext_id':str(self.session1.ext_id)})
         self.client.login(username='test_user1', password='top_secret')
         response = self.client.get(url, format='json')
         self.assertEqual(response.status_code, status.HTTP_200_OK)
 
     def test_list_notes(self):
-        url = reverse('notes_api:notes-list', kwargs={'session_ext_id':str(self.session1.ext_id)})
+        url = reverse('notes:notes-list', kwargs={'session_ext_id':str(self.session1.ext_id)})
         self.client.login(username='test_user1', password='top_secret')
         response = self.client.get(url, format='json')
         self.assertEqual(response.status_code, status.HTTP_200_OK)
 
     def test_detail_session_bad(self):
-        url = reverse('notes_api:session-detail', kwargs={'ext_id':str(self.session2.ext_id)})
+        url = reverse('notes:session-detail', kwargs={'ext_id':str(self.session2.ext_id)})
         self.client.login(username='test_user1', password='top_secret')
         response = self.client.get(url, format='json')
         self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
 
     def test_list_notes_bad(self):
-        url = reverse('notes_api:notes-list', kwargs={'session_ext_id':str(self.session2.ext_id)})
+        url = reverse('notes:notes-list', kwargs={'session_ext_id':str(self.session2.ext_id)})
         logger.debug("URL: %s", url)
         self.client.login(username='test_user1', password='top_secret')
         response = self.client.get(url, format='json')