diff --git a/fowl/game/models.py b/fowl/game/models.py index de94a47..e2223db 100644 --- a/fowl/game/models.py +++ b/fowl/game/models.py @@ -103,9 +103,9 @@ class Match(models.Model): if self.title_at_stake: victors = list(self.teams.get(victorious=True).members.all()) if len(victors) == 1: - victor[0].win_title(self.title_at_stake) + victors[0].win_title(self.title_at_stake) elif len(victors) == 2 and self.title_at_stake == 'tag': - victor[0].win_title(self.title_at_stake, victor[1]) + victors[0].win_title(self.title_at_stake, victors[1]) else: raise ValueError('invalid number of victors for title change') diff --git a/fowl/game/tests.py b/fowl/game/tests.py index d392dc2..53a2b50 100644 --- a/fowl/game/tests.py +++ b/fowl/game/tests.py @@ -51,6 +51,40 @@ class MatchTest(TestCase): self.assertEqual(unicode(match), 'CM Punk (c) (v) vs. Rey Mysterio') + def test_do_title_change(self): + # title to punk + match = self.event.add_match('cmpunk', 'reymysterio', winner='cmpunk', + outcome='normal', title_at_stake='wwe') + match.do_title_change() + self.assertEqual(Star.objects.get(pk='cmpunk').title, 'wwe') + + # title to mysterio + match = self.event.add_match('cmpunk', 'reymysterio', + winner='reymysterio', outcome='normal', + title_at_stake='wwe') + match.do_title_change() + self.assertEqual(Star.objects.get(pk='reymysterio').title, 'wwe') + self.assertEqual(Star.objects.get(pk='cmpunk').title, None) + + # tag title + match = self.event.add_match(['kofikingston', 'rtruth'], + ['jackswagger', 'dolphziggler'], + winner='dolphziggler', outcome='normal', + title_at_stake='tag') + match.do_title_change() + self.assertEqual(Star.objects.get(pk='kofikingston').title, None) + self.assertEqual(Star.objects.get(pk='rtruth').title, None) + self.assertEqual(Star.objects.get(pk='dolphziggler').title, 'tag') + self.assertEqual(Star.objects.get(pk='jackswagger').title, 'tag') + + match = self.event.add_match(['kofikingston', 'rtruth'], + ['jackswagger', 'dolphziggler'], + winner='dolphziggler', outcome='normal', + title_at_stake='diva') + # diva title on a tag match + with self.assertRaises(ValueError): + match.do_title_change() + def test_scoring(self): # one on one : 2 points match = self.event.add_match('tripleh', 'undertaker',