コード例 #1
0
ファイル: test_engineio.py プロジェクト: posita/txsocketio
    def test_payload_enc_dec(self):
        packets = []
        raw = encbinpayloads(packets)
        self.assertEqual(packets, list(decbinpayloadsgen(raw)))

        packets = [
            PayloadsTestCase.GOOD_STR_PACKET,
        ]
        raw = encbinpayloads(packets)
        self.assertEqual(packets, list(decbinpayloadsgen(raw)))

        packets = [
            PayloadsTestCase.GOOD_BIN_PACKET,
        ]
        raw = encbinpayloads(packets)
        self.assertEqual(packets, list(decbinpayloadsgen(raw)))

        packets = [
            PayloadsTestCase.GOOD_STR_PACKET,
            PayloadsTestCase.GOOD_BIN_PACKET,
            PayloadsTestCase.GOOD_STR_PACKET,
            PayloadsTestCase.GOOD_BIN_PACKET,
        ]
        raw = encbinpayloads(packets)
        self.assertEqual(packets, list(decbinpayloadsgen(raw)))
コード例 #2
0
ファイル: test_engineio.py プロジェクト: posita/txsocketio
    def test_payload_dec_bad_type(self):
        raw = PayloadsTestCase.BAD_TYPE_PAYLOAD
        expected = []
        actual = []

        with self.assertRaisesRegex(PayloadDecodeError, r'^unrecognized payload type 2 at 0$'):
            for i in decbinpayloadsgen(raw):
                actual.append(i)

        self.assertEqual(expected, actual)

        raw = PayloadsTestCase.GOOD_STR_PACKET_PAYLOAD \
            + PayloadsTestCase.GOOD_BIN_PACKET_PAYLOAD \
            + PayloadsTestCase.BAD_TYPE_PAYLOAD
        expected = [
            PayloadsTestCase.GOOD_STR_PACKET,
            PayloadsTestCase.GOOD_BIN_PACKET,
        ]
        actual = []

        with self.assertRaisesRegex(PayloadDecodeError, r'^unrecognized payload type 2 at 14$'):
            for i in decbinpayloadsgen(raw):
                actual.append(i)

        self.assertEqual(expected, actual)
コード例 #3
0
ファイル: test_engineio.py プロジェクト: posita/txsocketio
    def test_payload_dec_bad_payload(self):
        raw = PayloadsTestCase.BAD_TRUNC_PAYLOAD
        expected = []
        actual = []

        with self.assertRaisesRegex(PayloadDecodeError, r'^payload data truncated \(received only 1 of 3 expected octets\) at 3$'):
            for i in decbinpayloadsgen(raw):
                actual.append(i)

        self.assertEqual(expected, actual)

        raw = PayloadsTestCase.GOOD_STR_PACKET_PAYLOAD \
            + PayloadsTestCase.GOOD_BIN_PACKET_PAYLOAD \
            + PayloadsTestCase.BAD_TRUNC_PAYLOAD
        expected = [
            PayloadsTestCase.GOOD_STR_PACKET,
            PayloadsTestCase.GOOD_BIN_PACKET,
        ]
        actual = []

        with self.assertRaisesRegex(PayloadDecodeError, r'^payload data truncated \(received only 1 of 3 expected octets\) at 17$'):
            for i in decbinpayloadsgen(raw):
                actual.append(i)

        self.assertEqual(expected, actual)
コード例 #4
0
ファイル: test_engineio.py プロジェクト: posita/txsocketio
    def test_payload_dec(self):
        raw = PayloadsTestCase.GOOD_STR_PACKET_PAYLOAD
        expected = [
            PayloadsTestCase.GOOD_STR_PACKET,
        ]
        actual = list(decbinpayloadsgen(raw))
        self.assertEqual(expected, actual)

        raw = PayloadsTestCase.GOOD_BIN_PACKET_PAYLOAD
        expected = [
            PayloadsTestCase.GOOD_BIN_PACKET,
        ]
        actual = list(decbinpayloadsgen(raw))
        self.assertEqual(expected, actual)

        raw = PayloadsTestCase.GOOD_BIN_PACKET_PAYLOAD \
            + PayloadsTestCase.GOOD_STR_PACKET_PAYLOAD \
            + PayloadsTestCase.GOOD_BIN_PACKET_PAYLOAD \
            + PayloadsTestCase.GOOD_STR_PACKET_PAYLOAD
        expected = [
            PayloadsTestCase.GOOD_BIN_PACKET,
            PayloadsTestCase.GOOD_STR_PACKET,
            PayloadsTestCase.GOOD_BIN_PACKET,
            PayloadsTestCase.GOOD_STR_PACKET,
        ]
        actual = list(decbinpayloadsgen(raw))
        self.assertEqual(expected, actual)
コード例 #5
0
ファイル: test_engineio.py プロジェクト: posita/txsocketio
    def test_payload_dec_enc(self):
        raw = b''
        packets = list(decbinpayloadsgen(raw))
        self.assertEqual(raw, encbinpayloads(packets))

        raw = PayloadsTestCase.GOOD_STR_PACKET_PAYLOAD
        packets = list(decbinpayloadsgen(raw))
        self.assertEqual(raw, encbinpayloads(packets))

        raw = PayloadsTestCase.GOOD_BIN_PACKET_PAYLOAD
        packets = list(decbinpayloadsgen(raw))
        self.assertEqual(raw, encbinpayloads(packets))

        raw = PayloadsTestCase.GOOD_BIN_PACKET_PAYLOAD \
            + PayloadsTestCase.GOOD_STR_PACKET_PAYLOAD \
            + PayloadsTestCase.GOOD_BIN_PACKET_PAYLOAD \
            + PayloadsTestCase.GOOD_STR_PACKET_PAYLOAD
        packets = list(decbinpayloadsgen(raw))
        self.assertEqual(raw, encbinpayloads(packets))
コード例 #6
0
ファイル: test_engineio.py プロジェクト: posita/txsocketio
    def test_regression_long_payload(self):
        # This is raw data from Insight API (on or about 2015-11-05) that
        # we choked on because we (erroneously) didn't allow for payloads
        # longer than 310 characters
        raw = b'\x00\x02\x01\x05\xff42["tx",{"txid":"e9772f1171fb16c3461a545b320cf9882a3d60e8fe58af6058f14230cda5d493","valueOut":74.6768726,"vout":[{"1JzddE9RdGaxWbJgfBM15J3Xj6hzKX3o3f":1200000000},{"1GJ9AnmcwwCGSJyksX8thqRvnuAfS1ZB6C":6267687260}]}]\x00\x01\x01\x02\x05\xff42["tx",{"txid":"5c3264d64107f5398745bdbd2c6a2c40ee3ea022eb4bbacc79271ce0fc91e8ea","valueOut":31.47905388,"vout":[{"1BKLefgfSQjRWRHSkirEKPz9y5Z5VwUKYT":25257121},{"1BGv1vWNjvekSFD6SoyNQJvCDGbhCfyknp":24046431},{"1GMcQBw7NHL17Xw8b1ueDzP1fuCESCgDfy":70226431},{"1DZxmrAMnRssRNjqNTp5XsCACwQXte3fdz":25247121},{"1QA7FTnqvHabS979u19UvWzgLRxThH3vMP":42800000},{"176yohfzuRWw9PWXaKwxZuGZana5EJj4Wi":535262879},{"15iQFJNjprPNHhdFwHpg3NxYBQH4rqAis8":1200690},{"1L7kTokjjCsLhmTwBeTUaw3zZX5cmAZgey":688940},{"1HKugLe1iFnHFUdTNGtm1K8vCMjjhgfvKB":324710000},{"1F8LtvqAhMEFkcfYHvqLVDMPFQv8ncZoZ6":118062879},{"1CjLvNRipzdq6hUWJ14iE72TfXFL6hBgUu":254362879},{"137Em62DLiYoWtvYbZoe396XaQ1iwYJLnd":433500000},{"17hD8cgNetd6G4L4nLUmJeD7PxgjfSMhdk":460000000},{"14uP5jHc26Kmt9xKs8CJwXSWDFuZAkz47S":144562879},{"1GxscjUdN9Ntxo68zGXYJCq5p2dXLb1Q68":10000},{"13rgFRQqTuxTUBCsgBGonXKQXSSf6ThDxW":323700000},{"1PTDGyzVGkjgL3VTKXZjDSGkSyd5SquuvZ":24056431},{"17jJiNJiRwaZmwtsAU8BdCua3RNwK8c8DZ":71427121},{"1MPv7Px7BRzVXJQyYB1Fn5nFVMKt5TnXVz":511750},{"13LErEoUYp9HxGX9jYoZedPShXgTasUy5J":253352879},{"1KYLZwc939EJUz1y45YqbtbSqarjhtqJbi":14918957}]}]'

        expected = [
            (
                b'4',
                '2["tx",{"txid":"e9772f1171fb16c3461a545b320cf9882a3d60e8fe58af6058f14230cda5d493","valueOut":74.6768726,"vout":[{"1JzddE9RdGaxWbJgfBM15J3Xj6hzKX3o3f":1200000000},{"1GJ9AnmcwwCGSJyksX8thqRvnuAfS1ZB6C":6267687260}]}]',
            ),
            (
                b'4',
                '2["tx",{"txid":"5c3264d64107f5398745bdbd2c6a2c40ee3ea022eb4bbacc79271ce0fc91e8ea","valueOut":31.47905388,"vout":[{"1BKLefgfSQjRWRHSkirEKPz9y5Z5VwUKYT":25257121},{"1BGv1vWNjvekSFD6SoyNQJvCDGbhCfyknp":24046431},{"1GMcQBw7NHL17Xw8b1ueDzP1fuCESCgDfy":70226431},{"1DZxmrAMnRssRNjqNTp5XsCACwQXte3fdz":25247121},{"1QA7FTnqvHabS979u19UvWzgLRxThH3vMP":42800000},{"176yohfzuRWw9PWXaKwxZuGZana5EJj4Wi":535262879},{"15iQFJNjprPNHhdFwHpg3NxYBQH4rqAis8":1200690},{"1L7kTokjjCsLhmTwBeTUaw3zZX5cmAZgey":688940},{"1HKugLe1iFnHFUdTNGtm1K8vCMjjhgfvKB":324710000},{"1F8LtvqAhMEFkcfYHvqLVDMPFQv8ncZoZ6":118062879},{"1CjLvNRipzdq6hUWJ14iE72TfXFL6hBgUu":254362879},{"137Em62DLiYoWtvYbZoe396XaQ1iwYJLnd":433500000},{"17hD8cgNetd6G4L4nLUmJeD7PxgjfSMhdk":460000000},{"14uP5jHc26Kmt9xKs8CJwXSWDFuZAkz47S":144562879},{"1GxscjUdN9Ntxo68zGXYJCq5p2dXLb1Q68":10000},{"13rgFRQqTuxTUBCsgBGonXKQXSSf6ThDxW":323700000},{"1PTDGyzVGkjgL3VTKXZjDSGkSyd5SquuvZ":24056431},{"17jJiNJiRwaZmwtsAU8BdCua3RNwK8c8DZ":71427121},{"1MPv7Px7BRzVXJQyYB1Fn5nFVMKt5TnXVz":511750},{"13LErEoUYp9HxGX9jYoZedPShXgTasUy5J":253352879},{"1KYLZwc939EJUz1y45YqbtbSqarjhtqJbi":14918957}]}]',
            ),
        ]

        actual = [ deceiopacket(pckt) for pckt in decbinpayloadsgen(raw) ]
        self.assertEqual(expected, actual)
コード例 #7
0
ファイル: test_engineio.py プロジェクト: posita/txsocketio
    def test_payload_dec_bad_len(self):
        raw = PayloadsTestCase.BAD_LEN_OCTET_PAYLOAD
        expected = []
        actual = []

        with self.assertRaisesRegex(PayloadDecodeError, r'^unrecognized length byte 10 at 1$'):
            for i in decbinpayloadsgen(raw):
                actual.append(i)

        self.assertEqual(expected, actual)

        raw = PayloadsTestCase.GOOD_BIN_PACKET_PAYLOAD \
            + PayloadsTestCase.GOOD_STR_PACKET_PAYLOAD \
            + PayloadsTestCase.BAD_LEN_OCTET_PAYLOAD
        expected = [
            PayloadsTestCase.GOOD_BIN_PACKET,
            PayloadsTestCase.GOOD_STR_PACKET,
        ]
        actual = []

        with self.assertRaisesRegex(PayloadDecodeError, r'^unrecognized length byte 10 at 15$'):
            for i in decbinpayloadsgen(raw):
                actual.append(i)

        self.assertEqual(expected, actual)

        raw = PayloadsTestCase.BAD_LEN_TRUNC_PAYLOAD
        expected = []
        actual = []

        with self.assertRaisesRegex(PayloadDecodeError, r'^payload length field truncated at 3$'):
            for i in decbinpayloadsgen(raw):
                actual.append(i)

        self.assertEqual(expected, actual)

        raw = PayloadsTestCase.GOOD_STR_PACKET_PAYLOAD \
            + PayloadsTestCase.GOOD_BIN_PACKET_PAYLOAD \
            + PayloadsTestCase.BAD_LEN_TRUNC_PAYLOAD
        expected = [
            PayloadsTestCase.GOOD_STR_PACKET,
            PayloadsTestCase.GOOD_BIN_PACKET,
        ]
        actual = []

        with self.assertRaisesRegex(PayloadDecodeError, r'^payload length field truncated at 17$'):
            for i in decbinpayloadsgen(raw):
                actual.append(i)

        self.assertEqual(expected, actual)

        raw = PayloadsTestCase.BAD_LEN_VALUE_PAYLOAD
        expected = []
        actual = []

        with self.assertRaisesRegex(PayloadDecodeError, r'^9{311} exceeds max bytes for length field at 1$'):
            for i in decbinpayloadsgen(raw):
                actual.append(i)

        self.assertEqual(expected, actual)

        raw = PayloadsTestCase.GOOD_BIN_PACKET_PAYLOAD \
            + PayloadsTestCase.GOOD_STR_PACKET_PAYLOAD \
            + PayloadsTestCase.BAD_LEN_VALUE_PAYLOAD
        expected = [
            PayloadsTestCase.GOOD_BIN_PACKET,
            PayloadsTestCase.GOOD_STR_PACKET,
        ]
        actual = []

        with self.assertRaisesRegex(PayloadDecodeError, r'^9{311} exceeds max bytes for length field at 15$'):
            for i in decbinpayloadsgen(raw):
                actual.append(i)

        self.assertEqual(expected, actual)