I'm trying to add a class to a module at runtime. I've seen examples of adding a method to a class, but I haven't been able to suit it to my needs.
As part of a testsuite, I have a main process X that searches recursively for python test files. Those files typically have a global "isSupported" method, in which the file tells the test searcher "do or do not run me", as well as the typical TestName_TestCase class, with a testMyTest method. For numerous and reasonable reasons, the TestName_TestCase class must be generated at runtime (i cannot use any pre-processing scripts to generate the testcase files). So the external runner has to look into each testcase file, determine if it is supported, expand out the test-class code, and add that new class to that testcase in memory. I hope this picture helps: #-------- atestcase.py -------- def isSupported(): """ do a real check""" return True ThisTestName = "foo" TestCode = \ """ class %s_TestCase: def __init__( self ): """ do some stuff""" def test_%s( self ): """ run the test """ """ #------------------------------------ #------- The external runner -------- (essentially) import atestcase.py if atestcase.isSupported(): # Run this test (here's what i'm trying to figure out) #--> expand atestcase.TestCode out to include "foo" #--> make the testcode a class #--> add the new foo_TestCase class to # the atestcase module #------------------------------------- So: Does anyone know how dynamically generate a class, and add it to a "module" that is already in memory? Thanks so much in advance. My flu is heating up my brain pretty badly, so please ask me if I have to clarify anything above. -- http://mail.python.org/mailman/listinfo/python-list