Skip to content

Commit

Permalink
fix(multipart): don't share MultipartParseOptions._DEFAULT_HANDLERS b…
Browse files Browse the repository at this point in the history
…etween instances
  • Loading branch information
myusko committed Sep 5, 2024
1 parent f20c3cc commit 206eed7
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
2 changes: 1 addition & 1 deletion falcon/media/multipart.py
Original file line number Diff line number Diff line change
Expand Up @@ -610,4 +610,4 @@ def __init__(self) -> None:
self.max_body_part_buffer_size = 1024 * 1024
self.max_body_part_count = 64
self.max_body_part_headers_size = 8192
self.media_handlers = self._DEFAULT_HANDLERS
self.media_handlers = self._DEFAULT_HANDLERS.copy()
12 changes: 12 additions & 0 deletions tests/test_media_multipart.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from falcon import media
from falcon import testing
from falcon.util import BufferedReader
from falcon.media.multipart import MultipartParseOptions

try:
import msgpack
Expand Down Expand Up @@ -849,3 +850,14 @@ async def deserialize_async(self, stream, content_type, content_length):

assert resp.status_code == 200
assert resp.json == ['', '0x48']


def test_multipart_parse_options_default_handlers_unique():
parse_options_one = MultipartParseOptions()
parse_options_two = MultipartParseOptions()

parse_options_one.media_handlers.pop(falcon.MEDIA_JSON)

assert id(parse_options_one.media_handlers) != id(parse_options_two.media_handlers)
assert len(parse_options_one.media_handlers) == 1
assert len(parse_options_two.media_handlers) >= 2

0 comments on commit 206eed7

Please sign in to comment.