zopefoundation/Zope — pull request #2 by jcbrand (2013-07-31 13:47:45+00:00)
Title: Bugfix. unrestrictedTraverse fails when no REQUEST present.

unrestrictedTraverse shouldn't assume that a REQUEST attribute is always
available in the acquisition chain.

Products such as plone.app.async and collective.xmpp.core sometimes
asynchronously connect to the ZServer without an HTTP request.

They should still be able to use unrestrictedTraverse to traverse namespace adapters.

zope.traversing.namespace.namespacelookup doesn't require a Request object to
be available for it to do namespace adapter lookups.

Thanks to @reinhardt who noticed this issue when testing plone.app.async with an object accessed via a namespace adapter.