From: Forrest Voight Date: Sat, 13 Aug 2011 04:14:13 +0000 (-0400) Subject: more detailed exceptions in serialization code X-Git-Tag: 0.8.2~207^2~32 X-Git-Url: https://git.novaco.in/?a=commitdiff_plain;h=2c51b895d9f1142cba7cac736a4316cabd69744e;p=p2pool.git more detailed exceptions in serialization code --- diff --git a/p2pool/bitcoin/data.py b/p2pool/bitcoin/data.py index 1c951d0..5ef63d1 100644 --- a/p2pool/bitcoin/data.py +++ b/p2pool/bitcoin/data.py @@ -155,9 +155,13 @@ class EnumType(Type): def read(self, file): data, file = self.inner.read(file) + if data not in self.keys: + raise ValueError('enum data (%r) not in values (%r)' % (data, self.values)) return self.keys[data], file def write(self, file, item): + if item not in self.values: + raise ValueError('enum item (%r) not in values (%r)' % (item, self.values)) return self.inner.write(file, self.values[item]) class HashType(Type): @@ -319,7 +323,7 @@ class FloatingIntegerType(Type): target = math.shift_left(bits2 & 0x00ffffff, 8 * ((bits2 >> 24) - 3)) if p2pool.DEBUG: assert target == self._bits_to_target1(struct.pack('