Тесты для Django Channels/WebSockets

какой хороший и простой способ тестирования consumers.py в Django Channels (конечные точки websocket). Я видел https://channels.readthedocs.io/en/stable/topics/testing.html, но для меня это слишком сложно и я не уверен, что это то, что мне нужно. Например, я не нашел информации о том, как передать пользователя в scope для правильного потребительского тестирования или как сделать свой собственный middleware для аутентификации. Может быть есть кто-то "продвинутый" на django каналах и вы тестировали потребителей. Если да, пожалуйста, поделитесь тем, как вы это сделали, потому что я действительно не могу нагуглить, как тестировать эти вещи.

Я уже достиг этой стадии:

class TestConsumer(TestCase):
    async def test_consumer(self):
        communicator = WebsocketCommunicator(UserLocationConsumer.as_asgi(), path='/ws/user-track-location'))
        connected, subprotocol = await communicator.connect()
        self.assertTrue(connected, 'Could not connect')
        await communicator.send_json_to(content='test')
        result = await communicator.receive_json_from()
        print(result)
        await communicator.disconnect() 

Это позволяет мне ввести моего потребителя, но внутри потребителя нет области видимости, потому что никакая авторизация не передавалась, поэтому я не могу полностью покрыть функциональность моего потребителя тестами:

ERROR: test_consumer (gps.tests.test_consumers.TestConsumer)
self.user_id = self.scope['user'].id
KeyError: 'user'
Вернуться на верх