Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

162
Visualizações
No se puede simular una llamada api de un tercero

Tengo una vista que realiza una llamada API de terceros:

 from .atoca_api_calls import atoca_api_call def atoca_api_call_view(request): # some code data = atoca_api_call(**params) # the actual API call happens in this func # some code

Mi intención es burlarme solo de la función atoca_api_call() y no de toda la vista.

 class AtocaTestCase(TestCase): def setUp(self): # some code @patch('crm.atoca_api_calls.atoca_api_call') def test_atoca_call(self, mock_atoca_api_call): mock_atoca_api_call.return_value = MagicMock( status_code=200, response=some_json # just returns some json ) url = reverse('crm:atoca-api-call') # url related to `atoca_api_call_view` response = self.client.post(url, some_others_params) # various asserts

La prueba funciona bien, pero atoca_api_call() no se burla. Soy consciente de dónde parchear :

 @patch('crm.views.atoca_api_call', autospec=True)

Genera un ValueError :

 ValueError: Failed to insert expression "<MagicMock name='mock.__getitem__().__getitem__().__getitem__()().resolve_expression()' id='140048216397424'>" on crm.Company.atoca_id. F() expressions can only be used to update, not to insert.

Probablemente sea un problema simple que no capto por inexperiencia, cualquier ayuda es realmente apreciada.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Como veo atoca_api_call() se burla. El problema es el valor de retorno.

 mock_atoca_api_call.return_value = MagicMock( status_code=200, response=some_json # just returns some json )

Esto debería tener una respuesta adecuada, supongo que una respuesta JsonResponse o Response(data) no estoy seguro de qué está devolviendo. Prueba con:

 mock_atoca_api_call.return_value = JsonResponse( some_json # just returns some json )
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda