def test_with_flavours(self): content_item = factories.ContentItemFactory( content_type=models.ContentItem.WORKSHOP, 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 user == card_js.assignees.first() # card_js.assignees.add(self.user) progress = factories.WorkshopAttendanceFactory( content_item=content_item, attendee_user=user ) progress.save() progress.flavours.add( taggit.models.Tag.objects.get_or_create(name=TYPESCRIPT)[0] ) update_workshop_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.COMPLETE)
def test_error_gets_raised_if_card_has_flavours_but_progress_doesnt(self): content_item = factories.ContentItemFactory( content_type=models.ContentItem.WORKSHOP, available_flavours=[JAVASCRIPT, TYPESCRIPT], ) card_ts = factories.AgileCardFactory(content_item=content_item, content_flavours=[TYPESCRIPT]) card_ts.assignees.add(self.user) progress = factories.WorkshopAttendanceFactory( content_item=content_item, attendee_user=self.user) progress.save() with self.assertRaises(FlavourProgressMismatchError): update_workshop_card_progress(self.user)
def test_no_flavours(self): content_item = factories.ContentItemFactory( content_type=models.ContentItem.WORKSHOP) card = factories.AgileCardFactory(content_item=content_item) card.assignees.add(self.user) update_workshop_card_progress(self.user) card.refresh_from_db() self.assertEqual(card.status, card.READY) progress = factories.WorkshopAttendanceFactory( content_item=content_item, attendee_user=self.user) progress.save() update_workshop_card_progress(self.user) card.refresh_from_db() self.assertEqual(card.status, card.COMPLETE)