Commit c2b6dc85289a4cd1259acf873f432fd9be974322

Authored by Rachel Lee
1 parent e8cd6d2e30
Exists in master

Wrote test for section/{pk}/flashcards

Showing 3 changed files with 20 additions and 4 deletions Side-by-side Diff

flashcards/fields.py View file @ c2b6dc8
... ... @@ -64,6 +64,9 @@
64 64  
65 65 @classmethod
66 66 def _varchar_parse_mask(cls, value):
  67 + if not value:
  68 + return FlashcardMask([])
  69 +
67 70 mask = [tuple(map(int, i.split('-'))) for i in value.split(',')]
68 71 return FlashcardMask(mask)
69 72  
flashcards/tests/test_api.py View file @ c2b6dc8
... ... @@ -200,6 +200,8 @@
200 200 def setUp(self):
201 201 self.client.login(email='none@none.com', password='1234')
202 202 self.user = User.objects.get(email='none@none.com')
  203 + flashcard = Flashcard(text="jason", section=Section.objects.get(pk=1), material_date=now(), author=self.user)
  204 + flashcard.save()
203 205  
204 206 def test_list_sections(self):
205 207 response = self.client.get("/api/sections/", format="json")
... ... @@ -243,4 +245,8 @@
243 245 response = self.client.post('/api/sections/%d/drop/' % section.pk)
244 246 self.assertEqual(response.status_code, HTTP_204_NO_CONTENT)
245 247 self.assertFalse(self.user.sections.filter(pk=section.pk).exists())
  248 +
  249 + def test_section_flashcards(self):
  250 + response = self.client.get('/api/sections/1/flashcards/')
  251 + self.assertEqual(response.status_code, HTTP_200_OK)
flashcards/views.py View file @ c2b6dc8
... ... @@ -259,6 +259,15 @@
259 259 serializer_class = FlashcardSerializer
260 260 permission_classes = [IsAuthenticated]
261 261  
  262 + # Override create in CreateModelMixin
  263 + def create(self, request, *args, **kwargs):
  264 + serializer = self.get_serializer(data=request.data)
  265 + serializer.is_valid(raise_exception=True)
  266 + serializer.validated_data['author'] = request.user
  267 + self.perform_create(serializer)
  268 + headers = self.get_success_headers(serializer.data)
  269 + return Response(serializer.data, status=HTTP_201_CREATED, headers=headers)
  270 +
262 271 @detail_route(methods=['post'], permission_classes=[IsAuthenticated])
263 272 def report(self, request, pk):
264 273 """
... ... @@ -285,9 +294,7 @@
285 294 """
286 295 user = request.user
287 296 flashcard = self.get_object()
288   - user_card, created = UserFlashcard.objects.get_or_create(user=user,
289   - flashcard=flashcard,
290   - mask=flashcard.mask)
  297 + user_card, created = UserFlashcard.objects.get_or_create(user=user, flashcard=flashcard)
291 298 user_card.save()
292 299 return Response(status=HTTP_204_NO_CONTENT)