MCPcopy
hub / github.com/pallets/werkzeug / test_decoder_simple

Function test_decoder_simple

tests/sansio/test_multipart.py:14–54  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

12
13
14def test_decoder_simple() -> None:
15 boundary = b"---------------------------9704338192090380615194531385$"
16 decoder = MultipartDecoder(boundary)
17 data = """
18-----------------------------9704338192090380615194531385$
19Content-Disposition: form-data; name="fname"
20
21ß∑œß∂ƒå∂
22-----------------------------9704338192090380615194531385$
23Content-Disposition: form-data; name="lname"; filename="bob"
24
25asdasd
26-----------------------------9704338192090380615194531385$--
27 """.replace("\n", "\r\n").encode()
28 decoder.receive_data(data)
29 decoder.receive_data(None)
30 events = [decoder.next_event()]
31 while not isinstance(events[-1], Epilogue):
32 events.append(decoder.next_event())
33 assert events == [
34 Preamble(data=b""),
35 Field(
36 name="fname",
37 headers=Headers([("Content-Disposition", 'form-data; name="fname"')]),
38 ),
39 Data(data="ß∑œß∂ƒå∂".encode(), more_data=False),
40 File(
41 name="lname",
42 filename="bob",
43 headers=Headers(
44 [("Content-Disposition", 'form-data; name="lname"; filename="bob"')]
45 ),
46 ),
47 Data(data=b"asdasd", more_data=False),
48 Epilogue(data=b" "),
49 ]
50 encoder = MultipartEncoder(boundary)
51 result = b""
52 for event in events:
53 result += encoder.send_event(event)
54 assert data == result
55
56
57@pytest.mark.parametrize(

Callers

nothing calls this directly

Calls 12

receive_dataMethod · 0.95
next_eventMethod · 0.95
send_eventMethod · 0.95
MultipartDecoderClass · 0.90
PreambleClass · 0.90
FieldClass · 0.90
HeadersClass · 0.90
DataClass · 0.90
FileClass · 0.90
EpilogueClass · 0.90
MultipartEncoderClass · 0.90
appendMethod · 0.80

Tested by

no test coverage detected