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)
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)