示例#1
0
 def test_save(self):
     self.assertEqual(Competition.objects.count(), 0)
     
     cat1 = mixer.blend('notorhot.CandidateCategory')
     cat2 = mixer.blend('notorhot.CandidateCategory')
     cands = mixer.cycle(3).blend('notorhot.Candidate', category=cat1, 
         is_enabled=True, challenges=0)
             
     comp = Competition(**{
         'left': cands[0],
         'right': cands[1],
     })
     
     comp.save()
     
     self.assertEqual(Competition.objects.count(), 1)
     self.assertEqual(cands[0].challenges, 1)
     self.assertEqual(cands[1].challenges, 1)
     self.assertEqual(comp.category, cat1)
     self.assertIsNone(comp.winner)
     self.assertIsNone(comp.winning_side)
     self.assertIsNone(comp.date_voted)
     self.assertIsNotNone(comp.date_presented)    
     
     # make sure saving again doesn't set any new values
     comp.save()
     
     self.assertEqual(Competition.objects.count(), 1)
     self.assertEqual(cands[0].challenges, 1)
     self.assertEqual(cands[1].challenges, 1)
     self.assertEqual(comp.category, cat1)
     self.assertIsNone(comp.winner)
     self.assertIsNone(comp.winning_side)
     self.assertIsNone(comp.date_voted)
     self.assertIsNotNone(comp.date_presented)    
示例#2
0
    def test_clean(self):
        cat1 = mixer.blend('notorhot.CandidateCategory')
        cat2 = mixer.blend('notorhot.CandidateCategory')
        cands = mixer.cycle(3).blend('notorhot.Candidate', category=cat1, 
            is_enabled=True)
        cand_cat2 = mixer.blend('notorhot.Candidate', category=cat2, 
            is_enabled=True)
        
        try:
            comp = Competition(**{
                'left': cands[0],
                'right': cands[1],
            })
            comp.clean()
        except ValidationError:
            self.fail(u"Competition with no winner or category set should clean "
                u"without trouble.")

        try:
            comp = Competition(**{
                'left': cands[0],
                'right': cands[1],
                'winner': cands[0],
                'category': cat1,
            })
            comp.clean()
        except ValidationError:
            self.fail(u"Competition with winner and category matching candidates "
                u"shoudl clean without trouble")

        # winner in same category but difft competition
        with self.assertRaises(ValidationError):
            comp = Competition(**{
                'left': cands[0],
                'right': cands[1],
                'winner': cands[2],
            })
            comp.clean()

        # category doesn't match candidates
        with self.assertRaises(ValidationError):
            comp = Competition(**{
                'left': cands[0],
                'right': cands[1],
                'category': cat2,
            })
            comp.clean()

        # candidates from different categories
        with self.assertRaises(ValidationError):
            comp = Competition(**{
                'left': cands[0],
                'right': cand_cat2,
            })
            comp.clean()