src/notes/tests/api/note.py
changeset 128 34a75bd8d0b9
parent 120 892980a3af09
child 131 adad5563603c
--- a/src/notes/tests/api/note.py	Fri Jul 28 18:22:46 2017 +0200
+++ b/src/notes/tests/api/note.py	Tue Jul 25 19:11:26 2017 +0200
@@ -82,7 +82,6 @@
             categorization="[]"
         )
 
-
         Note.objects.create(
             tc_start=timezone.now(),
             tc_end=timezone.now(),
@@ -174,7 +173,7 @@
         self.assertTrue(note)
         self.assertEqual("example note 1 modified", note.plain)
 
-    #TODO: Fail if a tc_start, tc_end, session, ext_id updated, created are provided on update ?
+    # 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-session-detail',
     #                   kwargs={'session_ext_id': self.session1.ext_id, 'ext_id': self.note1.ext_id})
@@ -203,12 +202,64 @@
         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'))
+            self.assertIn('plain', note_json)
+            self.assertIn('html', note_json)
+            self.assertIn('raw', note_json)
+
+    def test_root_note_list_filter(self):
+        url = reverse('notes:note-list')
+        self.client.login(username='test_user1', password='top_secret')
+        response = self.client.get(url, {'ext_id__in': ",".join(
+            [str(self.note1.ext_id), str(uuid4())])}, 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(1, len(json_resp['results']))
+
+        note_json = json_resp['results'][0]
+        self.assertEqual(str(self.note1.ext_id), note_json.get('ext_id'))
+        self.assertEqual(str(self.session1.ext_id), note_json.get('session'))
+        self.assertIn('plain', note_json)
+        self.assertIn('html', note_json)
+        self.assertIn('raw', note_json)
+
+    def test_root_note_list_filter_both(self):
+        url = reverse('notes:note-list')
+        self.client.login(username='test_user1', password='top_secret')
+        response = self.client.get(url, {'ext_id__in': ",".join(
+            [str(self.note1.ext_id), str(self.note2.ext_id)])}, 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.assertIn(note_json.get('ext_id'), [str(self.note1.ext_id), str(self.note2.ext_id)])
             self.assertEqual(str(self.session1.ext_id), note_json.get('session'))
             self.assertIn('plain', note_json)
             self.assertIn('html', note_json)
             self.assertIn('raw', note_json)
 
 
+    def test_root_note_list_bad_filter(self):
+        url = reverse('notes:note-list')
+        self.client.login(username='test_user1', password='top_secret')
+        response = self.client.get(url, {'ext_id__in': ",".join(
+            [str(self.note1.ext_id), "foo"])}, format='json')
+        self.assertEqual(response.status_code, status.HTTP_200_OK)
+
+        json_resp = response.json()
+        self.assertIn('results', json_resp)
+        self.assertEqual(0, json_resp['count'])
+        self.assertEqual(0, len(json_resp['results']))
+
+
     def test_root_note_list_modified(self):
 
         nexthour = \
@@ -221,7 +272,8 @@
 
         response = self.client.get(
             url,
-            {'modified_since': (nexthour - datetime.timedelta(minutes=30)).timestamp()},
+            {'modified_since': (
+                nexthour - datetime.timedelta(minutes=30)).timestamp()},
             format='json'
         )
 
@@ -231,11 +283,12 @@
         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'))
-
+        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})
+        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)