[ python-Bugs-1742940 ] can't run single lamba funcs as unittest
SourceForge.net
noreply at sourceforge.net
Mon Jun 25 23:57:37 CEST 2007
Bugs item #1742940, was opened at 2007-06-25 10:28
Message generated for change (Comment added) made by tctimmeh
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1742940&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: Python 2.5
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: timmeh (tctimmeh)
Assigned to: Nobody/Anonymous (nobody)
Summary: can't run single lamba funcs as unittest
Initial Comment:
I have some code that adds new test funtions to a TestCase class as lambda functions:
ExmplTests.myTest = lambda: 1+2
When I run the app and specify my lamba test to run, as in:
myTestProg ExmplTests.mytest
I get:
Traceback (most recent call last):
File "C:\work\CTTS\o-ticket\scOmniCTTS\test\otfbatch_test.py", line 188, in ?
unittest.main(defaultTest = 'suite')
File "C:\Python24\lib\unittest.py", line 761, in __init__
self.parseArgs(argv)
File "C:\Python24\lib\unittest.py", line 788, in parseArgs
self.createTests()
File "C:\Python24\lib\unittest.py", line 794, in createTests
self.module)
File "C:\Python24\lib\unittest.py", line 559, in loadTestsFromNames
suites = [self.loadTestsFromName(name, module) for name in names]
File "C:\Python24\lib\unittest.py", line 543, in loadTestsFromName
return parent(obj.__name__)
File "C:\Python24\lib\unittest.py", line 211, in __init__
raise ValueError, "no such test method in %s: %s" % \
ValueError: no such test method in <class '__main__.ExmplTests'>: <lambda>
It seems this is the case because lamba functions are always named '<lamba>'. If I change unittest.py ln543 from:
return parent(obj.__name__)
to:
return parent(part)
it fixes my problem because part has the function name as a string, instead of getting it from obj, which returns '<lambda>' in my case.
----------------------------------------------------------------------
>Comment By: timmeh (tctimmeh)
Date: 2007-06-25 15:57
Message:
Logged In: YES
user_id=1827855
Originator: YES
Here is code that causes the problem:
import unittest
class Exmpl(unittest.TestCase):
pass
Exmpl.testBug = lambda self: 1+2
if (__name__ == '__main__'):
unittest.main()
Running "program.py" with no args is an error free run. Running
"program.py Exmpl.testBug" dies with the stack trace mentioned above.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1742940&group_id=5470
More information about the Python-bugs-list
mailing list