def _encode_packobj(type, content, compression_level=1):
+ if compression_level not in (0, 1, 2, 3, 4, 5, 6, 7, 8, 9):
+ raise ValueError('invalid compression level %s' % compression_level)
szout = ''
sz = len(content)
szbits = (sz & 0x0f) | (_typemap[type]<<4)
break
szbits = sz & 0x7f
sz >>= 7
- if compression_level > 9:
- raise BaseException("Compression Level Above 9")
- elif compression_level < 0:
- raise BaseException("Compression Level Below 0")
z = zlib.compressobj(compression_level)
yield szout
yield z.compress(content)
WVPASSEQ(git._decode_packobj(packb), ('blob', s))
WVPASSEQ(git._decode_packobj(packt), ('tree', s))
WVPASSEQ(git._decode_packobj(packc), ('commit', s))
+ for i in xrange(10):
+ WVPASS(git._encode_looseobj('blob', s, compression_level=i))
+ def encode_pobj(n):
+ return ''.join(git._encode_packobj('blob', s, compression_level=n))
+ WVEXCEPT(ValueError, encode_pobj, -1)
+ WVEXCEPT(ValueError, encode_pobj, 10)
+ WVEXCEPT(ValueError, encode_pobj, 'x')
@wvtest