Skip to content

Commit

Permalink
added test exception on composite metadata tag longer than 256
Browse files Browse the repository at this point in the history
  • Loading branch information
gabi committed Feb 12, 2022
1 parent 8d91ee2 commit b636d1b
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 2 deletions.
3 changes: 2 additions & 1 deletion rsocket/extensions/tagging.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import struct
from typing import Union, List, Optional

from rsocket.exceptions import RSocketError
from rsocket.extensions.composite_metadata import CompositeMetadataItem
from rsocket.frame_helpers import ensure_bytes

Expand All @@ -25,7 +26,7 @@ def _serialize_tags(self) -> bytes:

for tag in list(map(ensure_bytes, self.tags)):
if len(tag) > 256:
raise Exception('Tag length longer than 256 characters')
raise RSocketError('Tag length longer than 256 characters: "%s"' % tag)

serialized += struct.pack('>b', len(tag))
serialized += tag
Expand Down
14 changes: 14 additions & 0 deletions tests/rsocket/test_composite_metadata.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import pytest

from rsocket.exceptions import RSocketError
from rsocket.extensions.composite_metadata import CompositeMetadata
from rsocket.extensions.routing import RoutingMetadata


def test_tag_composite_metadata_too_long():
routing = RoutingMetadata(tags=[('some data too long %s' % ''.join(['x'] * 256)).encode()])
composite_metadata = CompositeMetadata()
composite_metadata.items.append(routing)

with pytest.raises(RSocketError):
composite_metadata.serialize()
2 changes: 1 addition & 1 deletion tests/rsocket/test_frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ async def test_request_channel_frame(connection, follows, complete):
assert composite_metadata.serialize() == frame.metadata


async def test_basic_composite_metadata_item():
def test_basic_composite_metadata_item():
data = build_frame(

bits(1, 1, 'Well known metadata type'),
Expand Down

0 comments on commit b636d1b

Please sign in to comment.