Commit db990feade91f26ca6ffcb9366fe96569fbab99b
Committed by
GitHub
Merge pull request #128 from williamgibb/wg_fix_exception
Update __init__ of UnexpectedDataError exception
Showing
1 changed file
with
9 additions
and
2 deletions
oletools/olevba.py
| @@ -385,10 +385,17 @@ class UnexpectedDataError(OlevbaBaseException): | @@ -385,10 +385,17 @@ class UnexpectedDataError(OlevbaBaseException): | ||
| 385 | """ raised when parsing is strict (=not relaxed) and data is unexpected """ | 385 | """ raised when parsing is strict (=not relaxed) and data is unexpected """ |
| 386 | 386 | ||
| 387 | def __init__(self, stream_path, variable, expected, value): | 387 | def __init__(self, stream_path, variable, expected, value): |
| 388 | + if isinstance(expected, int): | ||
| 389 | + es = '{0:04X}'.format(expected) | ||
| 390 | + elif isinstance(expected, tuple): | ||
| 391 | + es = ','.join('{0:04X}'.format(e) for e in expected) | ||
| 392 | + es = '({0})'.format(es) | ||
| 393 | + else: | ||
| 394 | + raise ValueError('Unknown type encountered: {0}'.format(type(expected))) | ||
| 388 | super(UnexpectedDataError, self).__init__( | 395 | super(UnexpectedDataError, self).__init__( |
| 389 | 'Unexpected value in {0} for variable {1}: ' | 396 | 'Unexpected value in {0} for variable {1}: ' |
| 390 | - 'expected {2:04X} but found {3:04X}!' | ||
| 391 | - .format(stream_path, variable, expected, value)) | 397 | + 'expected {2} but found {3:04X}!' |
| 398 | + .format(stream_path, variable, es, value)) | ||
| 392 | self.stream_path = stream_path | 399 | self.stream_path = stream_path |
| 393 | self.variable = variable | 400 | self.variable = variable |
| 394 | self.expected = expected | 401 | self.expected = expected |