def get_score(self, request, game_id): """Returns the total score by the latest frame.""" response = bowling_services.get_frame_score(self.get_queryset(), game_id) clazz = self.get_serializer_class() serializer_instance = clazz(response) return Response(serializer_instance.data, status=status.HTTP_200_OK)
def test_calculate_score_for_all_strikes(self): scores = ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X-X-X'] for score in scores: services.set_frame_score(self.queryset, self.game_registration.game_id, score) game_object = services.get_frame_score(self.queryset, self.game_registration.game_id) assert game_object == game_models.Game(self.game_registration.game_id, 300)
def test_calculate_score_for_completed_game_5(self): scores = ['X', '7/', '7-2', '9/', 'X', 'X', 'X', '2-3', '6/', 'X-4/'] for score in scores: services.set_frame_score(self.queryset, self.game_registration.game_id, score) game_object = services.get_frame_score(self.queryset, self.game_registration.game_id) assert game_object == game_models.Game(self.game_registration.game_id, 178)
def test_calculate_score_for_active_game(self): scores = ['X', '7/', '7-2', '9/', 'X', 'X', 'X'] for score in scores: services.set_frame_score(self.queryset, self.game_registration.game_id, score) game_object = services.get_frame_score(self.queryset, self.game_registration.game_id) assert game_object == game_models.Game(self.game_registration.game_id, 96)
def test_game_id_not_found(self): score_object = services.get_frame_score(self.queryset, 'abcde12345') game_object = game_models.Game('abcde12345') game_object.errors = [ game_models.Error( error_code=404, error_message='No game was found for the game id: abcde12345.') ] assert score_object == game_object
def test_calculate_score_for_new_game(self): game_object = services.get_frame_score(self.queryset, self.game_registration.game_id) assert game_object == game_models.Game(self.game_registration.game_id)