[Python-Dev] Possible bugs in test_struct (original) (raw)
Collin Winter collinw at gmail.com
Thu Mar 29 21:50:14 CEST 2007
- Previous message: [Python-Dev] Should TemporaryFile() return a wrapper like NamedTemporaryFile()?
- Next message: [Python-Dev] Get 2.5 changes in now, branch will be frozen soon
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
While converting test_struct to use unittest, I came across these two issues:
- r51119 by Bob Ippolito added a test case for "SF bug 1530559: struct.pack raises TypeError where it used to convert." (Handy diff at http://svn.python.org/view/python/trunk/Lib/test/test_struct.py?rev=51119&r1=46679&r2=51119). As far as I can tell, this test doesn't work, thanks to the lines
check_float_coerce = with_warning_restore(deprecated_err)
def test_1530559(): for endian in ('', '>', '<'): for fmt in ('B', 'H', 'I', 'L', 'b', 'h', 'i', 'l'): check_float_coerce(endian + fmt, 1.0) check_float_coerce(endian + fmt, 1.5)
The problem is that the calls to check_float_coerce() attempt to call the string produced by "endian + fmt", so a TypeError will always be raised.
Fixing the test to do what was actually intended causes a TestFailed error to be raised with the message "did not raise error for float coerce". I'm confused as to why this is a test failure, when it seems like "rais[ing an] error for float coerce" is exactly what we're trying to avoid. Anyone know what's going on here?
test_705836() features the code
big = (1 << 25) - 1 big = math.ldexp(big, 127 - 24) try: packed = struct.pack(">f", big) except OverflowError: pass else: TestFailed("expected OverflowError")
Actually raising the TestFailed exception (as opposed to just instantiating it) causes a test failure. Is this a bug in struct or a bad test?
Thanks, Collin Winter
- Previous message: [Python-Dev] Should TemporaryFile() return a wrapper like NamedTemporaryFile()?
- Next message: [Python-Dev] Get 2.5 changes in now, branch will be frozen soon
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]