Open
Description
Sorry, I know this is not a place for "debuging" and asking questions, but there isn't too big community on Stack Overflow for this.
-
Your OS and runtime environment, and browser if applicable:
OS: MacOS and Linux -
pip freeze
:
Django==4.2
channels==4.0.0
Consumer connect
class EditResourceConsumer(JsonWebsocketConsumer):
def connect(self):
self.accept()
draft_id = self.scope["url_route"]["kwargs"]["id"]
draft.edited_by = self.scope["user"]
draft.save()
self.send_message("success")
- What you expected to happen vs. what actually happened:
I want to access object from the database after calling.connect()
method onWebsocketCommunicator
., but instead, running is blocked on the line mentioned bellow.
Code example:
@freeze_time("2023-03-07 13:06:00")
class ResourceWSTestCase(TransactionTestCase):
@aioresponses()
async def test_connect_with_correct_token_edit_resource_draft(
self, mocked_io_request
):
communicator = WebsocketCommunicator(
application, f"/ws/draft/1/?token={self.token_john}"
)
connected, subprotocol = await communicator.connect()
self.assertTrue(connected)
event = await communicator.receive_output()
draft = (
await ResourceDraft.objects.filter(pk=self.draft.pk)
.select_related("edited_by")
.afirst()
)
self.assertEqual(draft.edited_by, self.user_john)
self.assertEqual(event["type"], "websocket.send")
self.assertDictEqual(
json.loads(event["text"]), {"code": "success", "message": "Success"}
)
Code gets stuck on:
draft = await ResourceDraft.objects.filter(pk=self.draft.pk).select_related("edited_by").afirst()
There is no logs.
This code and tests runs successfully on MacOS but it fails on Ubuntu. We are running our app using docker image python:3.11
Am I doing something wrong?
Metadata
Metadata
Assignees
Labels
No labels