Unittest and dynamically created methods
Duncan Booth
duncan at NOSPAMrcp.co.uk
Wed Oct 15 04:34:49 EDT 2003
More information about the Python-list mailing list
Wed Oct 15 04:34:49 EDT 2003
- Previous message (by thread): Unittest and dynamically created methods
- Next message (by thread): Unittest and dynamically created methods
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
JAWS <jaws at ericsson.ca> wrote five times with HTML attachments: > I get this error message when trying to run a unittest test with a > dynamically created test method: > > Traceback (most recent call last): > File "unittest.py", line 215, in __call__ > testMethod() > TypeError: ?() takes no arguments (1 given) > > <snip> > base = 'def testCommandFailure2(self):\n\t""" Testing test1 method > """' +\ > '\n\tstatus, output = commands.getstatusoutput("python " +' + \ > '" ../bin/uimClient.py -p " + str(Test.port) + " -h " + > Test.host)'+\ > '\n\tself.assertEqual(status, 256)\n' > code = compile(base, 'uimClientFT.py', 'exec') > testf = new.function(code, Test.__dict__, 'testCommandFailure2') > setattr(Test, 'testCommandFailure2', testf) > Try adding: import dis dis.dis(code) and it should become obvious. Effectively your code is the same as: def testf(): def testCommandFailure2(self): ... whatever ... Test.testCommandFailure2 = testf so when Test.testCommandFailure2 is called it gets passed a self parameter which it wasn't expecting. In short, compiling code which contains a def statement doesn't execute the def statement until you execute the code. P.S. I don't know what you are trying to do, but I expect you can achieve whatever it is you are trying to do more cleanly by not compiling any code on the fly. -- Duncan Booth duncan at rcp.co.uk int month(char *p){return(124864/((p[0]+p[1]-p[2]&0x1f)+1)%12)["\5\x8\3" "\6\7\xb\1\x9\xa\2\0\4"];} // Who said my code was obscure?
- Previous message (by thread): Unittest and dynamically created methods
- Next message (by thread): Unittest and dynamically created methods
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list