import pytest from django_webtest import DjangoTestApp, WebTestMixin class OurTestApp(DjangoTestApp): def __init__(self, *args, **kwargs): self.default_user = kwargs.pop('default_user', None) super(OurTestApp, self).__init__(*args, **kwargs) def get(self, *args, **kwargs): kwargs.setdefault('user', self.default_user) kwargs.setdefault('auto_follow', True) return super(OurTestApp, self).get(*args, **kwargs) @pytest.fixture(scope='function') def app(request, admin_user): """WebTest's TestApp. Patch and unpatch settings before and after each test. WebTestMixin, when used in a unittest.TestCase, automatically calls _patch_settings() and _unpatchsettings. source: https://gist.github.com/magopian/6673250 """ wtm = WebTestMixin() wtm._patch_settings() request.addfinalizer(wtm._unpatch_settings) # XXX change this admin user to "saploper" return OurTestApp(default_user=admin_user.username)