コード例 #1
0
async def test_send_message(url, client):
    user = baker.make(models.USER_MODEL)
    client.force_login(user)
    request = client.get(url).wsgi_request
    session = request.session

    communicator = WebsocketCommunicator(ChatConsumer.as_asgi(), url)
    communicator.scope['session'] = session

    chat = baker.make(models.CHAT_MODEL)
    # Setup
    data = {
        'type': 'setup_channel_layer',
        'chat': chat.pk,
        'session_key': session.session_key,
    }
    await communicator.send_json_to(data)

    word = fake.word()
    data = {
        'type': 'send_message',
        'chat': chat.pk,
        'message': word,
    }
    await communicator.send_json_to(data)
    response = await communicator.receive_json_from()
    message = response['message']

    assert word == message['message']
    assert chat.pk == message['chat']

    assert ChatMessage.objects.get(pk=message['id'])

    # Disconnect
    await communicator.disconnect()
コード例 #2
0
async def test_setup_channel_layer(url):
    communicator = WebsocketCommunicator(ChatConsumer.as_asgi(), url)

    chat = baker.make(models.CHAT_MODEL)
    data = {
        'type': 'setup_channel_layer',
        'chat': chat.pk,
    }
    await communicator.send_json_to(data)

    # Disconnect communicator
    await communicator.disconnect()
コード例 #3
0
async def test_send_message_without_setup(url, client):
    user = baker.make(models.USER_MODEL)
    client.force_login(user)
    request = client.get(url).wsgi_request

    communicator = WebsocketCommunicator(ChatConsumer.as_asgi(), url)
    communicator.scope['session'] = request.session

    chat = baker.make(models.CHAT_MODEL)
    data = {
        'type': 'send_message',
        'chat': chat.pk,
        'message': fake.word(),
    }
    await communicator.send_json_to(data)
    response = await communicator.receive_json_from()

    assert 'error' in response

    # Disconnect
    await communicator.disconnect()
コード例 #4
0
# chat/routing.py
from django.urls import re_path

from chat.consumers import ChatConsumer

websocket_urlpatterns = [
    re_path(r'ws/chat/(?P<room_name>\w+)/$', ChatConsumer.as_asgi()),
]
コード例 #5
0
ファイル: routing.py プロジェクト: jessicahelem/CHATDJANGO
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from django.urls import path

from chat.consumers import ChatConsumer


application = ProtocolTypeRouter({
    'websocket': AuthMiddlewareStack(
        URLRouter([
            path('ws/chat/<slug:chatname>/', ChatConsumer.as_asgi()),
        ])
    ),
})
コード例 #6
0
ファイル: routing.py プロジェクト: shibelgut/marketplace
from django.urls import path
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack

from chat.consumers import ChatConsumer

application = ProtocolTypeRouter({
    'websocket':
    AuthMiddlewareStack(
        URLRouter({
            path('ws/chat/', ChatConsumer.as_asgi(), name='chat'),
        }), ),
})
コード例 #7
0
ファイル: routing.py プロジェクト: yangnibal/oscar-backend
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
from django.urls import path, include, re_path
from django.conf.urls import url
from chat.consumers import ChatConsumer

ws_urlpatterns = [
    re_path(r'^ws/(?P<room_id>\w+)/$', ChatConsumer.as_asgi()),
]

application = ProtocolTypeRouter({
    'websocket': AuthMiddlewareStack(
        URLRouter(
            ws_urlpatterns
        )
    )
})
コード例 #8
0
from django.urls import path

from chat.consumers import ChatConsumer

websocket_urlpatterns = [

    # path(r'^ws/chat/(?P<room_name>[^/]+)/(?P<auth>[^/]+)/$', ChatConsumer)
    path('ws/chat/<int:sender_id>/<int:receiver_id>/', ChatConsumer.as_asgi())
]