Merge pull request #3965 from ostcar/fix_change_id_on_connection
Fix error on to big change id on websocket connection
This commit is contained in:
commit
0b1d11f03f
@ -41,8 +41,14 @@ class SiteConsumer(ProtocollAsyncJsonWebsocketConsumer):
|
|||||||
await self.channel_layer.group_add('autoupdate', self.channel_name)
|
await self.channel_layer.group_add('autoupdate', self.channel_name)
|
||||||
|
|
||||||
await self.accept()
|
await self.accept()
|
||||||
|
|
||||||
if change_id is not None:
|
if change_id is not None:
|
||||||
|
try:
|
||||||
data = await get_element_data(self.scope['user'], change_id)
|
data = await get_element_data(self.scope['user'], change_id)
|
||||||
|
except ValueError:
|
||||||
|
# When the change_id is to big, do nothing
|
||||||
|
pass
|
||||||
|
else:
|
||||||
await self.send_json(type='autoupdate', content=data)
|
await self.send_json(type='autoupdate', content=data)
|
||||||
|
|
||||||
async def disconnect(self, close_code: int) -> None:
|
async def disconnect(self, close_code: int) -> None:
|
||||||
|
@ -101,6 +101,17 @@ async def test_connection_with_invalid_change_id(get_communicator):
|
|||||||
assert connected is False
|
assert connected is False
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
async def test_connection_with_to_big_change_id(get_communicator):
|
||||||
|
await set_config('general_system_enable_anonymous', True)
|
||||||
|
communicator = get_communicator('change_id=1000000000000')
|
||||||
|
|
||||||
|
connected, __ = await communicator.connect()
|
||||||
|
|
||||||
|
assert connected is True
|
||||||
|
assert await communicator.receive_nothing()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_changed_data_autoupdate_off(communicator):
|
async def test_changed_data_autoupdate_off(communicator):
|
||||||
await set_config('general_system_enable_anonymous', True)
|
await set_config('general_system_enable_anonymous', True)
|
||||||
|
Loading…
Reference in New Issue
Block a user