To simulate requests I am using following code and works perfect for me:
from django.test.client import Client c = Client() response = c.get('/url/you/want/to/request') On Tuesday, July 8, 2008 7:16:54 AM UTC+5:30, Andrew wrote: > > Here's the situation: > > I'm creating an RESTful internal API as an app in our project. Our > 'main' app (we'll call it main) is a client of the API app. Since > we're building the API piece by piece as we use it, the emphasis on > all of this is simple simple simple -- with our eye on eventually > opening up pieces of the API to the public. > > The general flow looks like: > request => main app handling => API client => API logic. > > Because right now both of the apps live in the same project and are > being served from the same boxes (and the API won't be running on a > separate machine for a while), I figured, hey, why not just fake an > HttpRequest from the main app logic and pass it over to API? That way, > we don't need to worry about exposing the internal URLs, we don't need > to worry about authentication right now, it'll be simple. > > Right now the API client I've written takes an HTTP method, path, and > params, uses resolve(path, api.urls) to get the view, and then calls > the view using a fake HttpRequest that I populate myself. > > The one problem is that I'm finding it much harder to fake the > HttpRequests than I thought -- namely because the RESTful handlers on > the API side are expecting things like request._get_post_and_files() > to be present. > > So, my thoughts: > a) Continue using the lightweight API "client" I've written, but > instead of building a HttpRequest, fake a WSGIRequest instead (with > the _minimum_ data needed) > b) Patch the django test client to deal with PUT and DELETE and use > that as our API client > c) Import the API urls.py into the main urls.py and call the API > methods by generating actual HTTP requests > > I'm not crazy about c) since it requires more infrastructure work now. > > Any thoughts? > -- You received this message because you are subscribed to the Google Groups "Django users" group. To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/anK1ji7axM8J. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.