diff -r 006c5270128c -r 34a75bd8d0b9 src/notes/tests/api/note.py --- 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)