Loading cryptoparser/common/exception.py +4 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ import enum import attr import six @attr.s class InvalidDataLength(Exception): Loading Loading @@ -34,9 +36,9 @@ class InvalidValue(Exception): message = value message = hex(value) if isinstance(value, int) else repr(value) type_name = type_class.__name__ if hasattr(type_class, '__name__') else str(type(type_class)) message = u'{} is not a valid {}'.format(message, type_name) message = six.ensure_text('{} is not a valid {}').format(message, type_name) if class_member is not None: message = u'{} {} value'.format(message, class_member) message = six.ensure_text('{} {} value').format(message, class_member) super(InvalidValue, self).__init__(message) Loading cryptoparser/common/parse.py +3 −3 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ class ParserBase(collections_abc.Mapping): def __attrs_post_init__(self): if self._parsed_values is None: self._parsed_values = dict() self._parsed_values = {} def __len__(self): return len(self._parsed_values) Loading Loading @@ -189,7 +189,7 @@ class ParserText(ParserBase): ) def _parse_numeric_array(self, name, item_num, separator, converter): value = list() value = [] last_item_offset = self._parsed_length item_offset = self._parsed_length while True: Loading Loading @@ -447,7 +447,7 @@ class ParserBinary(ParserBase): raise NotEnoughData(bytes_needed=(item_num * item_size) - self.unparsed_length) if item_size in _SIZE_TO_FORMAT: value = list() value = [] for item_offset in range(self._parsed_length, self._parsed_length + (item_num * item_size), item_size): item_bytes = self._parsable[item_offset:item_offset + item_size] if item_size == 3: Loading test/common/classes.py +5 −5 Original line number Diff line number Diff line Loading @@ -200,13 +200,13 @@ OpaqueEnumParams = collections.namedtuple('OpaqueEnumParams', ['code', ]) class OpaqueEnum(OpaqueEnumComposer): ALPHA = OpaqueEnumParams( code=u'άλφα' code=six.ensure_text('άλφα') ) BETA = OpaqueEnumParams( code=u'βήτα' code=six.ensure_text('βήτα') ) GAMMA = OpaqueEnumParams( code=u'γάμμα' code=six.ensure_text('γάμμα') ) Loading Loading @@ -341,9 +341,9 @@ class SerializableRecursive(Serializable): # pylint: disable=too-many-instance- class SerializableEmptyValues(Serializable): def __init__(self): self.value = None self.list = list() self.list = [] self.tuple = tuple() self.dict = dict() self.dict = {} class FlagEnum(enum.IntEnum): Loading test/common/test_base.py +6 −4 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ import json import unittest import six from cryptoparser.common.exception import InvalidValue, NotEnoughData, TooMuchData from cryptoparser.common.base import ( Opaque, Loading Loading @@ -367,18 +369,18 @@ class TestOpaque(unittest.TestCase): class TestOpaqueEnum(unittest.TestCase): def test_error(self): with self.assertRaises(InvalidValue) as context_manager: OpaqueEnumFactory.parse_exact_size(b'\x0a' + u'δέλτα'.encode('utf-8')) self.assertEqual(context_manager.exception.value, u'δέλτα'.encode('utf-8')) OpaqueEnumFactory.parse_exact_size(b'\x0a' + six.ensure_text('δέλτα').encode('utf-8')) self.assertEqual(context_manager.exception.value, six.ensure_text('δέλτα').encode('utf-8')) def test_parse(self): self.assertEqual( OpaqueEnum.ALPHA, OpaqueEnumFactory.parse_exact_size(b'\x08' + u'άλφα'.encode('utf-8')) OpaqueEnumFactory.parse_exact_size(b'\x08' + six.ensure_text('άλφα').encode('utf-8')) ) def test_compose(self): self.assertEqual( b'\x0a' + u'γάμμα'.encode('utf-8'), b'\x0a' + six.ensure_text('γάμμα').encode('utf-8'), OpaqueEnum.GAMMA.compose() # pylint: disable=no-member ) Loading test/common/test_parse.py +6 −4 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ import datetime import unittest import six try: from unittest import mock except ImportError: Loading Loading @@ -30,11 +32,11 @@ from .classes import ( class TestParsableBase(unittest.TestCase): _ALPHA_BETA_GAMMA = u'αβγ' _ALPHA_BETA_GAMMA_BYTES = u'αβγ'.encode('utf-8') _ALPHA_BETA_GAMMA = six.ensure_text('αβγ') _ALPHA_BETA_GAMMA_BYTES = six.ensure_text('αβγ').encode('utf-8') _ALPHA_BETA_GAMMA_LEN_BYTES = chr(len(_ALPHA_BETA_GAMMA_BYTES)).encode('ascii') _ALPHA_BETA_GAMMA_HASHMARK_BYTES = bytes(u'αβγ#'.encode('utf-8')) _ALPHA_BETA_GAMMA_HASHMARK_BYTES = bytes(six.ensure_text('αβγ#').encode('utf-8')) class TestParsable(TestParsableBase): Loading Loading @@ -381,7 +383,7 @@ class TestParserText(TestParsableBase): parser = ParserText(self._ALPHA_BETA_GAMMA_HASHMARK_BYTES, 'utf-8') parser.parse_string_until_separator('alphabet', '#') self.assertEqual(parser['alphabet'], u'αβγ') self.assertEqual(parser['alphabet'], six.ensure_text('αβγ')) self.assertEqual(parser.unparsed_length, 1) parser = ParserText(b'ab') Loading Loading
cryptoparser/common/exception.py +4 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ import enum import attr import six @attr.s class InvalidDataLength(Exception): Loading Loading @@ -34,9 +36,9 @@ class InvalidValue(Exception): message = value message = hex(value) if isinstance(value, int) else repr(value) type_name = type_class.__name__ if hasattr(type_class, '__name__') else str(type(type_class)) message = u'{} is not a valid {}'.format(message, type_name) message = six.ensure_text('{} is not a valid {}').format(message, type_name) if class_member is not None: message = u'{} {} value'.format(message, class_member) message = six.ensure_text('{} {} value').format(message, class_member) super(InvalidValue, self).__init__(message) Loading
cryptoparser/common/parse.py +3 −3 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ class ParserBase(collections_abc.Mapping): def __attrs_post_init__(self): if self._parsed_values is None: self._parsed_values = dict() self._parsed_values = {} def __len__(self): return len(self._parsed_values) Loading Loading @@ -189,7 +189,7 @@ class ParserText(ParserBase): ) def _parse_numeric_array(self, name, item_num, separator, converter): value = list() value = [] last_item_offset = self._parsed_length item_offset = self._parsed_length while True: Loading Loading @@ -447,7 +447,7 @@ class ParserBinary(ParserBase): raise NotEnoughData(bytes_needed=(item_num * item_size) - self.unparsed_length) if item_size in _SIZE_TO_FORMAT: value = list() value = [] for item_offset in range(self._parsed_length, self._parsed_length + (item_num * item_size), item_size): item_bytes = self._parsable[item_offset:item_offset + item_size] if item_size == 3: Loading
test/common/classes.py +5 −5 Original line number Diff line number Diff line Loading @@ -200,13 +200,13 @@ OpaqueEnumParams = collections.namedtuple('OpaqueEnumParams', ['code', ]) class OpaqueEnum(OpaqueEnumComposer): ALPHA = OpaqueEnumParams( code=u'άλφα' code=six.ensure_text('άλφα') ) BETA = OpaqueEnumParams( code=u'βήτα' code=six.ensure_text('βήτα') ) GAMMA = OpaqueEnumParams( code=u'γάμμα' code=six.ensure_text('γάμμα') ) Loading Loading @@ -341,9 +341,9 @@ class SerializableRecursive(Serializable): # pylint: disable=too-many-instance- class SerializableEmptyValues(Serializable): def __init__(self): self.value = None self.list = list() self.list = [] self.tuple = tuple() self.dict = dict() self.dict = {} class FlagEnum(enum.IntEnum): Loading
test/common/test_base.py +6 −4 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ import json import unittest import six from cryptoparser.common.exception import InvalidValue, NotEnoughData, TooMuchData from cryptoparser.common.base import ( Opaque, Loading Loading @@ -367,18 +369,18 @@ class TestOpaque(unittest.TestCase): class TestOpaqueEnum(unittest.TestCase): def test_error(self): with self.assertRaises(InvalidValue) as context_manager: OpaqueEnumFactory.parse_exact_size(b'\x0a' + u'δέλτα'.encode('utf-8')) self.assertEqual(context_manager.exception.value, u'δέλτα'.encode('utf-8')) OpaqueEnumFactory.parse_exact_size(b'\x0a' + six.ensure_text('δέλτα').encode('utf-8')) self.assertEqual(context_manager.exception.value, six.ensure_text('δέλτα').encode('utf-8')) def test_parse(self): self.assertEqual( OpaqueEnum.ALPHA, OpaqueEnumFactory.parse_exact_size(b'\x08' + u'άλφα'.encode('utf-8')) OpaqueEnumFactory.parse_exact_size(b'\x08' + six.ensure_text('άλφα').encode('utf-8')) ) def test_compose(self): self.assertEqual( b'\x0a' + u'γάμμα'.encode('utf-8'), b'\x0a' + six.ensure_text('γάμμα').encode('utf-8'), OpaqueEnum.GAMMA.compose() # pylint: disable=no-member ) Loading
test/common/test_parse.py +6 −4 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ import datetime import unittest import six try: from unittest import mock except ImportError: Loading Loading @@ -30,11 +32,11 @@ from .classes import ( class TestParsableBase(unittest.TestCase): _ALPHA_BETA_GAMMA = u'αβγ' _ALPHA_BETA_GAMMA_BYTES = u'αβγ'.encode('utf-8') _ALPHA_BETA_GAMMA = six.ensure_text('αβγ') _ALPHA_BETA_GAMMA_BYTES = six.ensure_text('αβγ').encode('utf-8') _ALPHA_BETA_GAMMA_LEN_BYTES = chr(len(_ALPHA_BETA_GAMMA_BYTES)).encode('ascii') _ALPHA_BETA_GAMMA_HASHMARK_BYTES = bytes(u'αβγ#'.encode('utf-8')) _ALPHA_BETA_GAMMA_HASHMARK_BYTES = bytes(six.ensure_text('αβγ#').encode('utf-8')) class TestParsable(TestParsableBase): Loading Loading @@ -381,7 +383,7 @@ class TestParserText(TestParsableBase): parser = ParserText(self._ALPHA_BETA_GAMMA_HASHMARK_BYTES, 'utf-8') parser.parse_string_until_separator('alphabet', '#') self.assertEqual(parser['alphabet'], u'αβγ') self.assertEqual(parser['alphabet'], six.ensure_text('αβγ')) self.assertEqual(parser.unparsed_length, 1) parser = ParserText(b'ab') Loading