def get_by_numbers(self, numbers):
     try:
         return LottoTicket.objects.get(numbers=numbers)
     except LottoTicket.DoesNotExist:
         encoded_ticket_data = get_bob_ticket_by_numbers(numbers)
         decoded_ticket_data = json.loads(encoded_ticket_data)
         ticket = LottoTicket.objects.create(**decoded_ticket_data)
         return ticket
    def test_service(self, mocked_request, mocked_urlopen):
        expected_data = json.dumps({'numbers': [1, 2]})

        response = get_bob_ticket_by_numbers([1, 2])

        self.assertTrue(mocked_request.called_once_with(settings.CURRENT_BOB_API_URL))
        self.assertTrue(mocked_request().add_header.called_once_with('Content-Type', 'application/json'))
        self.assertTrue(mocked_urlopen.called_once_with(mocked_request(), expected_data))
        self.assertEqual(response, mocked_urlopen().read())