Что эквивалентно TestCase.client в обычном сценарии
Например, с помощью TestCase.
Я могу проверить login post и так далее с self.client
class TestMyProj(TestCase):
response = self.client.login(username="user@example.com", password="qwpo1209")
response = self.client.post('/cms/content/up',
{'name': 'test', '_content_file': fp},
follow=True)
Однако теперь я хочу использовать это в сценарии, а не в тестовом примере.
потому что это очень полезно для создания начальной базы данных.
Я хочу сделать вот так.
def run():
response = client.login(username="user@example.com", password="qwpo1209")
response = client.post('/cms/content/up',
{'name': 'test', '_content_file': fp},
follow=True)
Что эквивалентно TestCase.client в обычном скрипте???
Это Client объект [Django-doc], поэтому:
from django.test.client import Client
def run():
client = Client()
response = client.login(username="user@example.com", password="qwpo1209")
response = client.post(
'/cms/content/up',
{'name': 'test', '_content_file': fp},
follow=True
)
В документации обсуждаются параметры, которые можно передать при конструировании объекта Client.
Обычно я рекомендую создать команду для создания начальной базы данных вместо использования класса Client, который мы можем использовать для тестирования приложения. https://docs.djangoproject.com/en/4.0/howto/custom-management-commands/. Вы также можете воспользоваться преимуществами массовых методов для создания множества экземпляров в одном запросе.