src/notes/tests/api/note.py
changeset 128 34a75bd8d0b9
parent 120 892980a3af09
child 131 adad5563603c
equal deleted inserted replaced
127:006c5270128c 128:34a75bd8d0b9
    80             raw="<i>example note 1.1</i>",
    80             raw="<i>example note 1.1</i>",
    81             margin_note="margin note 1.1",
    81             margin_note="margin note 1.1",
    82             categorization="[]"
    82             categorization="[]"
    83         )
    83         )
    84 
    84 
    85 
       
    86         Note.objects.create(
    85         Note.objects.create(
    87             tc_start=timezone.now(),
    86             tc_start=timezone.now(),
    88             tc_end=timezone.now(),
    87             tc_end=timezone.now(),
    89             session=self.session2,
    88             session=self.session2,
    90             plain="example note 2",
    89             plain="example note 2",
   172         note = Note.objects.get(
   171         note = Note.objects.get(
   173             ext_id=json['ext_id'], session__id=self.session1.id)
   172             ext_id=json['ext_id'], session__id=self.session1.id)
   174         self.assertTrue(note)
   173         self.assertTrue(note)
   175         self.assertEqual("example note 1 modified", note.plain)
   174         self.assertEqual("example note 1 modified", note.plain)
   176 
   175 
   177     #TODO: Fail if a tc_start, tc_end, session, ext_id updated, created are provided on update ?
   176     # TODO: Fail if a tc_start, tc_end, session, ext_id updated, created are provided on update ?
   178     # def test_update_note_tc_start(self):
   177     # def test_update_note_tc_start(self):
   179     #     url = reverse('notes:notes-session-detail',
   178     #     url = reverse('notes:notes-session-detail',
   180     #                   kwargs={'session_ext_id': self.session1.ext_id, 'ext_id': self.note1.ext_id})
   179     #                   kwargs={'session_ext_id': self.session1.ext_id, 'ext_id': self.note1.ext_id})
   181     #     self.client.login(username='test_user1', password='top_secret')
   180     #     self.client.login(username='test_user1', password='top_secret')
   182     #     response = self.client.put(url, {
   181     #     response = self.client.put(url, {
   201         self.assertIn('results', json_resp)
   200         self.assertIn('results', json_resp)
   202         self.assertEqual(2, json_resp['count'])
   201         self.assertEqual(2, json_resp['count'])
   203         self.assertEqual(2, len(json_resp['results']))
   202         self.assertEqual(2, len(json_resp['results']))
   204 
   203 
   205         for note_json in json_resp['results']:
   204         for note_json in json_resp['results']:
       
   205             self.assertEqual(str(self.session1.ext_id),
       
   206                              note_json.get('session'))
       
   207             self.assertIn('plain', note_json)
       
   208             self.assertIn('html', note_json)
       
   209             self.assertIn('raw', note_json)
       
   210 
       
   211     def test_root_note_list_filter(self):
       
   212         url = reverse('notes:note-list')
       
   213         self.client.login(username='test_user1', password='top_secret')
       
   214         response = self.client.get(url, {'ext_id__in': ",".join(
       
   215             [str(self.note1.ext_id), str(uuid4())])}, format='json')
       
   216         self.assertEqual(response.status_code, status.HTTP_200_OK)
       
   217 
       
   218         json_resp = response.json()
       
   219         self.assertIn('results', json_resp)
       
   220         self.assertEqual(1, json_resp['count'])
       
   221         self.assertEqual(1, len(json_resp['results']))
       
   222 
       
   223         note_json = json_resp['results'][0]
       
   224         self.assertEqual(str(self.note1.ext_id), note_json.get('ext_id'))
       
   225         self.assertEqual(str(self.session1.ext_id), note_json.get('session'))
       
   226         self.assertIn('plain', note_json)
       
   227         self.assertIn('html', note_json)
       
   228         self.assertIn('raw', note_json)
       
   229 
       
   230     def test_root_note_list_filter_both(self):
       
   231         url = reverse('notes:note-list')
       
   232         self.client.login(username='test_user1', password='top_secret')
       
   233         response = self.client.get(url, {'ext_id__in': ",".join(
       
   234             [str(self.note1.ext_id), str(self.note2.ext_id)])}, format='json')
       
   235         self.assertEqual(response.status_code, status.HTTP_200_OK)
       
   236 
       
   237         json_resp = response.json()
       
   238         self.assertIn('results', json_resp)
       
   239         self.assertEqual(2, json_resp['count'])
       
   240         self.assertEqual(2, len(json_resp['results']))
       
   241 
       
   242         for note_json in json_resp['results']:
       
   243             self.assertIn(note_json.get('ext_id'), [str(self.note1.ext_id), str(self.note2.ext_id)])
   206             self.assertEqual(str(self.session1.ext_id), note_json.get('session'))
   244             self.assertEqual(str(self.session1.ext_id), note_json.get('session'))
   207             self.assertIn('plain', note_json)
   245             self.assertIn('plain', note_json)
   208             self.assertIn('html', note_json)
   246             self.assertIn('html', note_json)
   209             self.assertIn('raw', note_json)
   247             self.assertIn('raw', note_json)
   210 
   248 
   211 
   249 
       
   250     def test_root_note_list_bad_filter(self):
       
   251         url = reverse('notes:note-list')
       
   252         self.client.login(username='test_user1', password='top_secret')
       
   253         response = self.client.get(url, {'ext_id__in': ",".join(
       
   254             [str(self.note1.ext_id), "foo"])}, format='json')
       
   255         self.assertEqual(response.status_code, status.HTTP_200_OK)
       
   256 
       
   257         json_resp = response.json()
       
   258         self.assertIn('results', json_resp)
       
   259         self.assertEqual(0, json_resp['count'])
       
   260         self.assertEqual(0, len(json_resp['results']))
       
   261 
       
   262 
   212     def test_root_note_list_modified(self):
   263     def test_root_note_list_modified(self):
   213 
   264 
   214         nexthour = \
   265         nexthour = \
   215             datetime.datetime.utcnow().replace(tzinfo=timezone.utc) +\
   266             datetime.datetime.utcnow().replace(tzinfo=timezone.utc) +\
   216             datetime.timedelta(hours=1)
   267             datetime.timedelta(hours=1)
   219         url = reverse('notes:note-list')
   270         url = reverse('notes:note-list')
   220         self.client.login(username='test_user1', password='top_secret')
   271         self.client.login(username='test_user1', password='top_secret')
   221 
   272 
   222         response = self.client.get(
   273         response = self.client.get(
   223             url,
   274             url,
   224             {'modified_since': (nexthour - datetime.timedelta(minutes=30)).timestamp()},
   275             {'modified_since': (
       
   276                 nexthour - datetime.timedelta(minutes=30)).timestamp()},
   225             format='json'
   277             format='json'
   226         )
   278         )
   227 
   279 
   228         self.assertEqual(response.status_code, status.HTTP_200_OK)
   280         self.assertEqual(response.status_code, status.HTTP_200_OK)
   229         json_resp = response.json()
   281         json_resp = response.json()
   230         self.assertIn('results', json_resp)
   282         self.assertIn('results', json_resp)
   231         self.assertEqual(1, json_resp['count'])
   283         self.assertEqual(1, json_resp['count'])
   232 
   284 
   233         self.assertEqual(len(json_resp['results']), 1, "must have one note")
   285         self.assertEqual(len(json_resp['results']), 1, "must have one note")
   234         self.assertEqual(str(self.session1.ext_id), json_resp['results'][0].get('session'))
   286         self.assertEqual(str(self.session1.ext_id),
   235 
   287                          json_resp['results'][0].get('session'))
   236 
   288 
   237     def test_root_note_detail(self):
   289     def test_root_note_detail(self):
   238         url = reverse('notes:note-detail', kwargs={'ext_id': self.note2.ext_id})
   290         url = reverse('notes:note-detail',
       
   291                       kwargs={'ext_id': self.note2.ext_id})
   239         self.client.login(username='test_user1', password='top_secret')
   292         self.client.login(username='test_user1', password='top_secret')
   240         response = self.client.get(url, format='json')
   293         response = self.client.get(url, format='json')
   241         self.assertEqual(response.status_code, status.HTTP_200_OK)
   294         self.assertEqual(response.status_code, status.HTTP_200_OK)
   242 
   295 
   243         json_resp = response.json()
   296         json_resp = response.json()