def test_with_flavours(self):
        content_item = factories.ContentItemFactory(
            content_type=models.ContentItem.TOPIC,
            flavours=[JAVASCRIPT, TYPESCRIPT],
        )

        card_ts = factories.AgileCardFactory(
            content_item=content_item, flavours=[TYPESCRIPT]
        )
        user = card_ts.assignees.first()

        # card_ts.assignees.add(self.user)

        card_js = factories.AgileCardFactory(
            content_item=content_item, flavours=[JAVASCRIPT], assignees=[user]
        )
        assert card_js.assignees.first() == user

        progress = models.TopicProgress(
            content_item=content_item, user=user, start_time=timezone.now()
        )
        progress.save()
        progress.flavours.add(
            taggit.models.Tag.objects.get_or_create(name=TYPESCRIPT)[0]
        )

        update_topic_card_progress(user)
        card_ts.refresh_from_db()
        card_js.refresh_from_db()

        self.assertEqual(card_js.status, card_ts.READY)
        self.assertEqual(card_ts.status, card_ts.IN_PROGRESS)
Exemple #2
0
    def test_error_gets_raised_if_card_has_flavours_but_progress_doesnt(self):
        content_item = factories.ContentItemFactory(
            content_type=models.ContentItem.TOPIC,
            available_flavours=[JAVASCRIPT, TYPESCRIPT],
        )

        card_ts = factories.AgileCardFactory(
            content_item=content_item, content_flavours=[TYPESCRIPT]
        )
        card_ts.assignees.add(self.user)

        progress = models.TopicProgress(content_item=content_item, user=self.user)
        progress.save()

        with self.assertRaises(FlavourProgressMismatchError):
            update_topic_card_progress(self.user)
    def test_no_flavours(self):

        content_item = factories.ContentItemFactory(
            content_type=models.ContentItem.TOPIC
        )

        card = factories.AgileCardFactory(content_item=content_item)
        user = card.assignees.first()
        # card.assignees.add(self.user)

        update_topic_card_progress(user)
        card.refresh_from_db()
        self.assertEqual(card.status, card.READY)

        progress = models.TopicProgress(
            content_item=content_item, user=user, due_time=timezone.now()
        )
        progress.save()

        update_topic_card_progress(user)
        card.refresh_from_db()
        self.assertEqual(card.status, card.READY)

        progress.start_time = timezone.now()
        progress.save()

        update_topic_card_progress(user)
        card.refresh_from_db()
        self.assertEqual(card.status, card.IN_PROGRESS)

        progress.review_request_time = timezone.now()
        progress.save()

        update_topic_card_progress(user)
        card.refresh_from_db()
        self.assertEqual(card.status, card.IN_REVIEW)

        progress.complete_time = timezone.now()
        progress.save()

        update_topic_card_progress(user)
        card.refresh_from_db()
        self.assertEqual(card.status, card.COMPLETE)