Tests for miscellaneous behaviors of the top-level twisted package (ie, for the code in 
twisted/__init__.py.
| Class | SetAsideModule | SetAsideModuleis a context manager for temporarily removing a module fromsys.modules. | 
| Class | MakePackagesTests | Tests for _makePackages,
a helper for populatingsys.moduleswith fictional 
modules. | 
| Function | _install | Take a mapping defining a package and turn it into real ModuleTypeinstances insys.modules. | 
| Function | _makePackages | Construct module objects (for either modules or packages). | 
Take a mapping defining a package and turn it into real C{ModuleType}
instances in C{sys.modules}.
Consider these example::
    a = {"foo": "bar"}
    b = {"twisted": {"__version__": "42.6"}}
    c = {"twisted": {"plugin": {"getPlugins": stub}}}
C{_install(a)} will place an item into C{sys.modules} with C{"foo"} as the
key and C{"bar" as the value.
C{_install(b)} will place an item into C{sys.modules} with C{"twisted"} as
the key.  The value will be a new module object.  The module will have a
C{"__version__"} attribute with C{"42.6"} as the value.
C{_install(c)} will place an item into C{sys.modules} with C{"twisted"} as
the key.  The value will be a new module object with a C{"plugin"}
attribute.  An item will also be placed into C{sys.modules} with the key
C{"twisted.plugin"} which refers to that module object.  That module will
have an attribute C{"getPlugins"} with a value of C{stub}.
@param modules: A mapping from names to definitions of modules.  The names
    are native strings like C{"twisted"} or C{"unittest"}.  Values may be
    arbitrary objects.  Any value which is not a dictionary will be added to
    C{sys.modules} unmodified.  Any dictionary value indicates the value is
    a new module and its items define the attributes of that module.  The
    definition of this structure is recursive, so a value in the dictionary
    may be a dictionary to trigger another level of processing.
@return: L{None}
Construct module objects (for either modules or packages).
| Parameters | parent | Noneor a module object which is the Python package containing all of the 
modules being created by this function call.  Its name will be prepended to
the name of all created modules. | 
| attributes | A mapping giving the attributes of the particular module object this call is creating. | |
| result | A mapping which is populated with all created module names. This is 
suitable for use in updating sys.modules. | |
| Returns | A mapping of all of the attributes created by this call.  This is suitable 
for populating the dictionary of parent. | |
| See Also | _install. | |