def is_a_winner(self, request, *args, **kwargs): """ Given a ticket it requests to Bob to check if is a winner of the related lotto :param request: the client request object :param args: extra unnamed arguments :param kwargs: extra named arguments :return: boolean indicating if is a winner or a string with error message """ if request.method == 'GET': bet_ticket = self.get_object() try: result = BobHelper.is_a_winner_ticket(bet_ticket.id, bet_ticket.lotto_id, bet_ticket.bet) except BobServiceLottoWithoutResult as error: result = str(error) return Response(data=result) return Response(status=status.HTTP_400_BAD_REQUEST)
def test__check_next_lotto__success(self, mock_get): mock_get.return_value = MagicMock(content=b'{"next": 1}') next_lotto_id = BobHelper.check_next_lotto() self.assertEqual(next_lotto_id, 1)
def test__is_a_winner_ticket__success_winner_ticket(self, mock_get): mock_get.return_value = MagicMock(content=b'{"matches": true}', status_code=200) is_a_winner = BobHelper.is_a_winner_ticket(1, 1, "1 2 3 4 5 6") self.assertTrue(is_a_winner)
def perform_create(self, serializer: BetTicketSerializer): # Request to know the next lotto next_lotto_id = BobHelper.check_next_lotto() serializer.save(owner=self.request.user, lotto_id=next_lotto_id)