I really like the way fakeweb in Ruby can be used to fake http requests when testing. Is there a similar library or an alternative for Python?
See also How can one mock/stub python module like urllib . The answer that recommends Mox seems the most like fakeweb, but Mox lets you create fake versions of any module, not just urllib.
For incoming requests, if your web framework uses WebOb (repoze.bfg, Pylons others), you can use webob.Request.blank
.
from webob import Request
r = Request.blank('/')
a_view_function(r)