Вы можете переопределить настройки в своих тестах и затем проверить эту настройку в своем представлении. Here - это документы для переопределения настроек.
from django.conf import settings
if not settings.TEST_API:
# api call here
Тогда ваш тест будет выглядеть примерно так
from django.test import TestCase, override_settings
class LoginTestCase(TestCase):
@override_settings(TEST_API=True)
def test_api_func(self):
# Do test here
Поскольку было бы довольно запутанна, чтобы иметь те повсюду, я бы рекомендовал создать подмешать, который будет выглядеть примерно так.
class SensitiveAPIMixin(object):
def api_request(self, url, *args, **kwargs):
from django.conf import settings
if not settings.TEST_API:
request = api_call(url)
# Do api request in here
return request
Затем, через силу множественного наследования, ваши мнения, что вам нужно сделать запрос на этот апи позвонить вы могли бы сделать что-то похожее на это.
class View(generic.ListView, SensitiveAPIMixin):
def get(self, request, *args, **kwargs):
data = self.api_request('http://example.com/api1')
хорошая статья, которую вы поделили, это можно использовать для издевательства над определенной частью кода. Но не получить, как взгляд django можно протестировать в целом. – navyad