Что эквивалентно 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/. Вы также можете воспользоваться преимуществами массовых методов для создания множества экземпляров в одном запросе.

Вернуться на верх