'The resource\'s ``__name__`` attribute will be set to the
value of the ``__name__`` argument, and the resource\'s
``__parent__`` attribute will be set to the value of the
``__parent__`` argument.  If ``__provides__`` is specified, it
should be an interface object or tuple of interface objects
that will be attached to the resulting resource via
:func:`zope.interface.alsoProvides`. Any extra keywords passed
in the ``kw`` argumnent will be set as direct attributes of
the resource object.
.. note:: For backwards compatibility purposes, this class can also
be imported as :class:`pyramid.testing.DummyModel`.'

def __init__(self, __name__=None, __parent__=None, __provides__=None, **kw):

    self.__name__ = __name__
    self.__parent__ = __parent__
    if (__provides__ is not None):
        alsoProvides(self, __provides__)
    self.kw = kw
    self.__dict__.update(**kw)
    self.subs = {}
