def test_can_decode_a_story(self, story): d = Decoder() # We support draft 5 of the HPACK spec. assert story['draft'] == 5 if story['context'] == 'request': d.huffman_coder = HuffmanDecoder(REQUEST_CODES, REQUEST_CODES_LENGTH) for case in story['cases']: d.header_table_size = case['header_table_size'] decoded_headers = d.decode(unhexlify(case['wire'])) # The correct headers are a list of dicts, which is annoying. correct_headers = {(item[0], item[1]) for header in case['headers'] for item in header.items()} assert correct_headers == decoded_headers
def test_can_decode_a_story(self, story): d = Decoder() # We support draft 9 of the HPACK spec. if story['draft'] != 9: skip("We support draft 9, not draft %d" % story['draft']) for case in story['cases']: try: d.header_table_size = case['header_table_size'] except KeyError: pass decoded_headers = d.decode(unhexlify(case['wire'])) # The correct headers are a list of dicts, which is annoying. correct_headers = [(item[0], item[1]) for header in case['headers'] for item in header.items()] correct_headers = correct_headers assert correct_headers == decoded_headers