本文整理汇总了Python中hyper.http20.frame.Frame类的典型用法代码示例。如果您正苦于以下问题:Python Frame类的具体用法?Python Frame怎么用?Python Frame使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Frame类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_priority_frame_parses_properly
def test_priority_frame_parses_properly(self):
s = b'\x00\x04\x02\x00\x00\x00\x00\x01\x00\x00\x00\xff'
f, length = Frame.parse_frame_header(s[:8])
f.parse_body(s[8:8 + length])
assert isinstance(f, PriorityFrame)
assert f.flags == set()
assert f.priority == 0xFF
示例2: test_rst_stream_frame_parses_properly
def test_rst_stream_frame_parses_properly(self):
s = b'\x00\x04\x03\x00\x00\x00\x00\x01\x00\x00\x01\xa4'
f, length = Frame.parse_frame_header(s[:8])
f.parse_body(s[8:8 + length])
assert isinstance(f, RstStreamFrame)
assert f.flags == set()
assert f.error_code == 420
示例3: test_continuation_frame_parses_properly
def test_continuation_frame_parses_properly(self):
s = b'\x00\x0B\x0A\x04\x00\x00\x00\x01hello world'
f, length = Frame.parse_frame_header(s[:8])
f.parse_body(s[8:8 + length])
assert isinstance(f, ContinuationFrame)
assert f.flags == set(['END_HEADERS'])
assert f.data == b'hello world'
示例4: test_data_frame_parses_properly
def test_data_frame_parses_properly(self):
s = b'\x00\x08\x00\x01\x00\x00\x00\x01testdata'
f, length = Frame.parse_frame_header(s[:8])
f.parse_body(s[8:8 + length])
assert isinstance(f, DataFrame)
assert f.flags == set(['END_STREAM'])
assert f.data == b'testdata'
示例5: test_ping_frame_parses_properly
def test_ping_frame_parses_properly(self):
s = b'\x00\x08\x06\x01\x00\x00\x00\x00\x01\x02\x00\x00\x00\x00\x00\x00'
f, length = Frame.parse_frame_header(s[:8])
f.parse_body(s[8:8 + length])
assert isinstance(f, PingFrame)
assert f.flags == set(['ACK'])
assert f.opaque_data == b'\x01\x02\x00\x00\x00\x00\x00\x00'
示例6: test_windowupdate_frame_parses_properly
def test_windowupdate_frame_parses_properly(self):
s = b'\x00\x04\x09\x00\x00\x00\x00\x00\x00\x00\x02\x00'
f, length = Frame.parse_frame_header(s[:8])
f.parse_body(s[8:8 + length])
assert isinstance(f, WindowUpdateFrame)
assert f.flags == set()
assert f.window_increment == 512
示例7: test_headers_frame_parses_properly
def test_headers_frame_parses_properly(self):
s = b"\x00\x0F\x01\x0D\x00\x00\x00\x01" + b"\x40\x00\x00\x01" + b"hello world"
f, length = Frame.parse_frame_header(s[:8])
f.parse_body(s[8 : 8 + length])
assert isinstance(f, HeadersFrame)
assert f.flags == set(["END_STREAM", "END_HEADERS", "PRIORITY"])
assert f.priority == (2 ** 30) + 1
assert f.data == b"hello world"
示例8: test_headers_frame_parses_properly
def test_headers_frame_parses_properly(self):
s = (
b'\x00\x0F\x01\x0D\x00\x00\x00\x01' +
b'\x40\x00\x00\x01' +
b'hello world'
)
f, length = Frame.parse_frame_header(s[:8])
f.parse_body(s[8:8 + length])
assert isinstance(f, HeadersFrame)
assert f.flags == set(['END_STREAM', 'END_HEADERS', 'PRIORITY'])
assert f.priority == (2 ** 30) + 1
assert f.data == b'hello world'
示例9: test_goaway_frame_parses_properly
def test_goaway_frame_parses_properly(self):
s = (
b'\x00\x0D\x07\x00\x00\x00\x00\x00' + # Frame header
b'\x00\x00\x00\x40' + # Last Stream ID
b'\x00\x00\x00\x20' + # Error Code
b'hello' # Additional data
)
f, length = Frame.parse_frame_header(s[:8])
f.parse_body(s[8:8 + length])
assert isinstance(f, GoAwayFrame)
assert f.flags == set()
assert f.additional_data == b'hello'
示例10: test_settings_frame_parses_properly
def test_settings_frame_parses_properly(self):
s = (
b'\x00\x28\x04\x01\x00\x00\x00\x00' + # Frame header
b'\x00\x00\x00\x01\x00\x00\x10\x00' + # HEADER_TABLE_SIZE
b'\x00\x00\x00\x02\x00\x00\x00\x00' + # ENABLE_PUSH
b'\x00\x00\x00\x04\x00\x00\x00\x64' + # MAX_CONCURRENT_STREAMS
b'\x00\x00\x00\x0A\x00\x00\x00\x01' + # FLOW_CONTROL_OPTIONS
b'\x00\x00\x00\x07\x00\x00\xFF\xFF' # INITIAL_WINDOW_SIZE
)
f, length = Frame.parse_frame_header(s[:8])
f.parse_body(s[8:8 + length])
assert isinstance(f, SettingsFrame)
assert f.flags == set(['ACK'])
assert f.settings == {
SettingsFrame.HEADER_TABLE_SIZE: 4096,
SettingsFrame.ENABLE_PUSH: 0,
SettingsFrame.MAX_CONCURRENT_STREAMS: 100,
SettingsFrame.INITIAL_WINDOW_SIZE: 65535,
SettingsFrame.FLOW_CONTROL_OPTIONS: 1,
}
示例11: test_base_frame_cant_serialize
def test_base_frame_cant_serialize(self):
f = Frame(0)
with pytest.raises(NotImplementedError):
f.serialize()
示例12: test_base_frame_ignores_flags
def test_base_frame_ignores_flags(self):
f = Frame(0)
flags = f.parse_flags(0xFF)
assert not flags
assert isinstance(flags, set)
示例13: test_base_frame_cant_parse_body
def test_base_frame_cant_parse_body(self):
data = b""
f = Frame(0)
with pytest.raises(NotImplementedError):
f.parse_body(data)
示例14: decode_frame
def decode_frame(frame_data):
f, length = Frame.parse_frame_header(frame_data[:8])
f.parse_body(frame_data[8 : 8 + length])
assert 8 + length == len(frame_data)
return f
示例15: decode_frame
def decode_frame(frame_data):
f, length = Frame.parse_frame_header(frame_data[:9])
f.parse_body(memoryview(frame_data[9:9 + length]))
assert 9 + length == len(frame_data)
return f