diff -r 2cb8d11aa9ca -r 8ff8e2aee0f9 src/notes/tests/api/note.py
--- a/src/notes/tests/api/note.py Tue Jul 18 17:59:28 2017 +0200
+++ b/src/notes/tests/api/note.py Wed Jul 19 15:57:13 2017 +0200
@@ -1,6 +1,7 @@
"""
Tests the core api for sessions
"""
+import datetime
import logging
from uuid import uuid4
@@ -16,6 +17,9 @@
class NoteApiTests(APITransactionTestCase):
+ '''
+ Test Note api
+ '''
def setUp(self):
User = get_user_model()
@@ -67,6 +71,18 @@
categorization="[]"
)
+ self.note2 = Note.objects.create(
+ tc_start=timezone.now(),
+ tc_end=timezone.now(),
+ session=self.session1,
+ plain="example note 1.1",
+ html="example note 1,1",
+ raw="example note 1.1",
+ margin_note="margin note 1.1",
+ categorization="[]"
+ )
+
+
Note.objects.create(
tc_start=timezone.now(),
tc_end=timezone.now(),
@@ -79,7 +95,7 @@
)
def test_create_note_no_user(self):
- url = reverse('notes:notes-list',
+ url = reverse('notes:notes-session-list',
kwargs={'session_ext_id': self.session1.ext_id})
response = self.client.post(url, {
'tc_start': timezone.now(),
@@ -94,7 +110,7 @@
self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)
def test_create_note(self):
- url = reverse('notes:notes-list',
+ url = reverse('notes:notes-session-list',
kwargs={'session_ext_id': self.session1.ext_id})
self.client.login(username='test_user1', password='top_secret')
response = self.client.post(url, {
@@ -115,7 +131,7 @@
self.assertTrue(note)
def test_create_note_with_ext_id(self):
- url = reverse('notes:notes-list',
+ url = reverse('notes:notes-session-list',
kwargs={'session_ext_id': self.session1.ext_id})
self.client.login(username='test_user1', password='top_secret')
ext_id = str(uuid4())
@@ -138,7 +154,7 @@
self.assertTrue(note)
def test_update_note(self):
- url = reverse('notes:notes-detail',
+ url = reverse('notes:notes-session-detail',
kwargs={'session_ext_id': self.session1.ext_id, 'ext_id': self.note1.ext_id})
self.client.login(username='test_user1', password='top_secret')
response = self.client.put(url, {
@@ -160,7 +176,7 @@
#TODO: Fail if a tc_start, tc_end, session, ext_id updated, created are provided on update ?
# def test_update_note_tc_start(self):
- # url = reverse('notes:notes-detail',
+ # url = reverse('notes:notes-session-detail',
# kwargs={'session_ext_id': self.session1.ext_id, 'ext_id': self.note1.ext_id})
# self.client.login(username='test_user1', password='top_secret')
# response = self.client.put(url, {
@@ -174,3 +190,53 @@
# }, format='json')
# self.assertEqual(response.status_code, status.HTTP_200_OK)
+
+ def test_root_note_list(self):
+ url = reverse('notes:note-list')
+ 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)
+
+ json_resp = response.json()
+ self.assertIn('results', json_resp)
+ self.assertEqual(2, json_resp['count'])
+ self.assertEqual(2, len(json_resp['results']))
+
+ for note_json in json_resp['results']:
+ self.assertEqual(str(self.session1.ext_id), note_json.get('session'))
+
+
+ def test_root_note_list_modified(self):
+
+ nexthour = \
+ datetime.datetime.utcnow().replace(tzinfo=timezone.utc) +\
+ datetime.timedelta(hours=1)
+ Note.objects.filter(pk=self.note2.id).update(updated=nexthour)
+
+ url = reverse('notes:note-list')
+ self.client.login(username='test_user1', password='top_secret')
+
+ response = self.client.get(
+ url,
+ {'modified_since': (nexthour - datetime.timedelta(minutes=30)).timestamp()},
+ format='json'
+ )
+
+ self.assertEqual(response.status_code, status.HTTP_200_OK)
+ json_resp = response.json()
+ self.assertIn('results', json_resp)
+ self.assertEqual(1, json_resp['count'])
+
+ self.assertEqual(len(json_resp['results']), 1, "must have one note")
+ self.assertEqual(str(self.session1.ext_id), json_resp['results'][0].get('session'))
+
+
+ def test_root_note_detail(self):
+ url = reverse('notes:note-detail', kwargs={'ext_id': self.note2.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)
+
+ json_resp = response.json()
+ self.assertEqual(str(self.session1.ext_id), json_resp.get('session'))
+ self.assertEqual('example note 1.1', json_resp.get('plain'))