'Create a L{SynchronousTestCase} subclass which mixes in C{cls} for each
known reactor and return a dict mapping their names to them.'

def makeTestCaseClasses(cls):

    classes = {}
    for reactor in cls._reactors:
        shortReactorName = reactor.split('.')[(-1)]
        name = (((cls.__name__ + '.') + shortReactorName) + 'Tests').replace('.', '_')
        class testcase(cls, SynchronousTestCase, ):
            __module__ = cls.__module__
            if (reactor in cls.skippedReactors):
                skip = cls.skippedReactors[reactor]
            try:
                reactorFactory = namedAny(reactor)
            except:
                skip = Failure().getErrorMessage()
        testcase.__name__ = name
        if hasattr(cls, '__qualname__'):
            testcase.__qualname__ = '.'.join((cls.__qualname__.split()[0:(-1)] + [name]))
        classes[testcase.__name__] = testcase
    return classes
