class TestCallable(object):
    def __init__(self, thing, makePathsRelative = True, debug = False):
        pass
    def __call__(self, target, source, env, for_signature):
       raise TypeError("User callable exception")

env = Environment()
env["TESTCLASS"] = TestCallable
env["CCCOM"] = "$CC $_CCCOMCOM $CCFLAGS -o ${TESTCLASS('$TARGET')} -c ${TESTCLASS('$SOURCES')}"

env.Program(target='test_main', source='test_main.c')