88 url = reverse('notes:session-list') |
96 url = reverse('notes:session-list') |
89 self.client.login(username='test_user1', password='top_secret') |
97 self.client.login(username='test_user1', password='top_secret') |
90 response = self.client.get(url) |
98 response = self.client.get(url) |
91 self.assertEqual(response.status_code, status.HTTP_200_OK) |
99 self.assertEqual(response.status_code, status.HTTP_200_OK) |
92 json = response.json() |
100 json = response.json() |
93 self.assertEqual(len(json), 1, "must have one session") |
101 self.assertIn('results', json, "must have results") |
94 for session in json: |
102 self.assertIn('count', json, "must have count") |
|
103 self.assertEqual(json['count'], 1, "must have one session") |
|
104 self.assertEqual(len(json['results']), 1, "must have one session") |
|
105 |
|
106 for session in json['results']: |
95 self.assertEqual(session['owner'], 'test_user1') |
107 self.assertEqual(session['owner'], 'test_user1') |
96 |
108 |
97 |
109 |
98 def test_create_session_no_user(self): |
110 def test_create_session_no_user(self): |
99 url = reverse('notes:session-list') |
111 url = reverse('notes:session-list') |
142 self.client.login(username='test_user1', password='top_secret') |
154 self.client.login(username='test_user1', password='top_secret') |
143 response = self.client.get(url, format='json') |
155 response = self.client.get(url, format='json') |
144 self.assertEqual(response.status_code, status.HTTP_200_OK) |
156 self.assertEqual(response.status_code, status.HTTP_200_OK) |
145 |
157 |
146 def test_list_notes(self): |
158 def test_list_notes(self): |
147 url = reverse('notes:notes-list', kwargs={'session_ext_id':str(self.session1.ext_id)}) |
159 url = reverse('notes:notes-session-list', kwargs={'session_ext_id':str(self.session1.ext_id)}) |
148 self.client.login(username='test_user1', password='top_secret') |
160 self.client.login(username='test_user1', password='top_secret') |
149 response = self.client.get(url, format='json') |
161 response = self.client.get(url, format='json') |
150 self.assertEqual(response.status_code, status.HTTP_200_OK) |
162 self.assertEqual(response.status_code, status.HTTP_200_OK) |
151 |
163 |
152 def test_detail_session_bad(self): |
164 def test_detail_session_bad(self): |
154 self.client.login(username='test_user1', password='top_secret') |
166 self.client.login(username='test_user1', password='top_secret') |
155 response = self.client.get(url, format='json') |
167 response = self.client.get(url, format='json') |
156 self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) |
168 self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) |
157 |
169 |
158 def test_list_notes_bad(self): |
170 def test_list_notes_bad(self): |
159 url = reverse('notes:notes-list', kwargs={'session_ext_id':str(self.session2.ext_id)}) |
171 url = reverse('notes:notes-session-list', kwargs={'session_ext_id':str(self.session2.ext_id)}) |
160 logger.debug("URL: %s", url) |
172 self.client.login(username='test_user1', password='top_secret') |
161 self.client.login(username='test_user1', password='top_secret') |
173 response = self.client.get(url, format='json') |
162 response = self.client.get(url, format='json') |
|
163 logger.debug(response.json()) |
|
164 self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) |
174 self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) |
|
175 |
|
176 def test_filter_modified_since(self): |
|
177 url = reverse('notes:session-list') |
|
178 self.client.login(username='test_user3', password='top_secret') |
|
179 nexthour = \ |
|
180 datetime.datetime.utcnow().replace(tzinfo=timezone.utc) +\ |
|
181 datetime.timedelta(hours=1) |
|
182 Session.objects.filter(pk=self.session4.id).update(updated=nexthour) |
|
183 |
|
184 response = self.client.get( |
|
185 url, |
|
186 {'modified_since': (nexthour - datetime.timedelta(minutes=30)).timestamp()}, |
|
187 format='json' |
|
188 ) |
|
189 |
|
190 self.assertEqual(response.status_code, status.HTTP_200_OK) |
|
191 json = response.json() |
|
192 self.assertIn('results', json, "must have results") |
|
193 self.assertIn('count', json, "must have count") |
|
194 self.assertEqual(json['count'], 1, "must have one session") |
|
195 self.assertEqual(len(json['results']), 1, "must have one session") |
|
196 |
|
197 self.assertEqual(json['results'][0].get('title'), "a new session 4") |
|
198 |
|
199 |
|
200 def test_filter_modified_since_zero(self): |
|
201 url = reverse('notes:session-list') |
|
202 self.client.login(username='test_user3', password='top_secret') |
|
203 |
|
204 response = self.client.get(url, {'modified_since': 0}, format='json') |
|
205 |
|
206 self.assertEqual(response.status_code, status.HTTP_200_OK) |
|
207 json = response.json() |
|
208 self.assertIn('results', json, "must have results") |
|
209 self.assertIn('count', json, "must have count") |
|
210 self.assertEqual(json['count'], 2, "must have two sessions") |
|
211 self.assertEqual(len(json['results']), 2, "must have two sessions") |
|
212 |
|
213 for session_json in json['results']: |
|
214 self.assertIn(session_json.get('title'), ['a new session 3', 'a new session 4']) |
|
215 |
|
216 |
|
217 def test_filter_modified_seconds(self): |
|
218 url = reverse('notes:session-list') |
|
219 self.client.login(username='test_user3', password='top_secret') |
|
220 |
|
221 prevmoment = \ |
|
222 datetime.datetime.utcnow().replace(tzinfo=timezone.utc) -\ |
|
223 datetime.timedelta(seconds=5) |
|
224 |
|
225 response = self.client.get(url, {'modified_since': prevmoment.timestamp()}, format='json') |
|
226 |
|
227 self.assertEqual(response.status_code, status.HTTP_200_OK) |
|
228 json = response.json() |
|
229 self.assertIn('results', json, "must have results") |
|
230 self.assertIn('count', json, "must have count") |
|
231 self.assertEqual(json['count'], 2, "must have two sessions") |
|
232 self.assertEqual(len(json['results']), 2, "must have two sessions") |
|
233 for session_json in json['results']: |
|
234 self.assertIn(session_json.get('title'), ['a new session 3', 'a new session 4']) |
|
235 |