Pytest: Сопряжение представления Django с несколькими вызовами API и комбинированным возвращаемым значением
У меня есть представление Django, которое вызывает несколько конечных точек api и объединяет их результат вместе. Этот результат возвращается обратно в представление в виде контекстных переменных. Вот код:
def form_valid(self, form):
data = form.cleaned_data
dashboard = meraki.DashboardAPI(api_key=meraki_api_key)
try:
device = dashboard.devices.getDevice(data.get('camera_id')) #api call 1
context = {}
context['name'] = device.get('name', 'Not Available')
context['model'] = device.get('model', 'Not Available')
preview = dashboard.camera.generateDeviceCameraSnapshot(data.get('camera_id')) #api call 2
context['preview'] = preview.get('url', 'No Preview')
camera_sense = dashboard.camera.getDeviceCameraSense(data.get('camera_id')) # api call 3
context['sense_enabled'] = camera_sense.get('senseEnabled',
'Not Available')
broker = dashboard.networks.getNetworkMqttBroker(device.get('networkId'), camera_sense.get('mqttBrokerId')) #api call 4
context['broker_name'] = broker.get('name', 'Not Available')
context['broker_host'] = broker.get('host', 'Not Available')
context['broker_port'] = broker.get('port', 'Not Available')
except meraki.exceptions.APIError as exc:
messages.add_message(self.request, messages.ERROR, str(exc))
return self.render_to_response(self.get_context_data(form=form))
messages.add_message(self.request, messages.SUCCESS,
"Success")
return self.render_to_response(
self.get_context_data(form=form, camera=context))
Теперь как написать модульный тест для приведенного выше представления, подражая вызовам api?