def make_teams(teamscores): quiz = Quiz() for i, teamscore in enumerate(teamscores, start=1): quiz.get_team(i, 'team {}'.format(i)) for section_nr in range(len(teamscores[0])): section = Section(name='section {}'.format(section_nr), quiz=quiz) section.scores = lambda i=section_nr: {quiz.teams[j]: t[i] for j, t in enumerate(teamscores)} return quiz
def test_when_team_has_multiple_responses_expect_only_score_of_first_response( self): section = Section() team = section.get_team('1', 'team1') response1 = Response(team=team, timestamp='2020/11/01 20:00:00') response1.score = lambda: 5 section.add_response(response1) response2 = Response(team=team, timestamp='2020/11/01 19:00:00') response2.score = lambda: 4 section.add_response(response2) response3 = Response(team=team, timestamp='2020/11/01 21:00:00') response3.score = lambda: 3 section.add_response(response3) # ACT result = section.scores() # ASSERT self.assertEqual(result, {team: 4})
def test_when_merging_teams_expect_scores_are_added(self): # ARRANGE quiz = Quiz() section1 = Section(quiz=quiz) team1 = quiz.get_team(1, 'test_1') response1 = Response(team=team1) response1.score = lambda: 4 section1.add_response(response1) section2 = Section(quiz=quiz) team2 = quiz.get_team(2, 'test_2') response2 = Response(team=team2) response2.score = lambda: 5 section2.add_response(response2) # ACT quiz.merge_teams([team1, team2]) # ASSERT self.assertEqual(section2.scores(), {team1: 5}) self.assertEqual(quiz.scores(), {team1: 9})