Django channels test AsyncConsumer.__call__() missing 1 required positional argument: 'send'

Я использую приведенный ниже код в реальной среде.

Когда я попытался написать тестовый код, возникла следующая ошибка.

Он также отлично работает в моей локальной среде.

Я пытался написать код теста, глядя на channels test,

но произошла ошибка, описанная ниже. Что случилось?

routing.py

from django.urls import path

from .consumers import ExchangeRateConsumer

websocket_urlpatterns = [
    path("ws/exchange_rate/<str:currency>/", ExchangeRateConsumer.as_asgi()),
]

asgi.py

application = ProtocolTypeRouter(
    {
        "http": django_asgi_app,
        "websocket": AllowedHostsOriginValidator(
            AuthMiddlewareStack(URLRouter(websocket_urlpatterns))
        ),
    }
)

tests.py

class ChannelTest(TestCase):
    async def test_channel_connect(self):
        communicator = HttpCommunicator(ExchangeRateConsumer, "GET", "/exchange_rate/USD")
        response = await communicator.get_response()

error

TypeError: AsyncConsumer.call() отсутствует 1 обязательный позиционный аргумент: 'send'

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