On Sat, Sep 17, 2011 at 7:47 AM, Reikje <[email protected]> wrote:
> Okay I am having some troubles getting this to work. In my application
> I am using WebTest and django-webtest to do template testing. In order
> to monkeypatch the django.core.urlresolvers.reverse function, I have
> created a new Test base that looks like this:
>
> class FacebookWebTest(WebTest):
>
> def __init__(self, methodName='runTest'):
> super(FacebookWebTest, self).__init__(methodName)
> import django.core.urlresolvers
> django.core.urlresolvers.reverse = self.reverse
>
> def reverse(*args, **kwargs):
> return "foo"
>
>
> Then hier is a test:
>
> from django.core.urlresolvers import reverse
>
> class HomepageViewTestCase(FacebookWebTest):
>
> def testPopulateFieldsInitially(self):
> url = reverse('webapp_home')
> form = self.app.get(url).form
> ...
>
> Within the HomepageViewTestCase it is still calling the original
> reverse method in django.core.urlresolvers even though it is calling
> the FacebookWebTest constructor before. Any suggestions :)
I usually monkey patch like so:
# myviews.py
from django.core.urlresolvers import reverse
def view(request):
blah blah
x = reverse('whaterrr')
return HttpResponse('monkey-patch')
# tests.py
import myviews
def patch_reverse(name):
return whatever_you_want
class MyViewTests(TestCase):
def setUp(self):
self.old_reverse = getattr(myviews, 'reverse')
myviews.reverse = patch_reverse
def tearDown(self):
myviews.reverse = self.old_reverse
Gets the job done
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.