|
|
|
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)
|