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)