|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import pytest
|
|
|
|
from django_webtest import DjangoTestApp, WebTestMixin
|
|
|
|
|
|
|
|
|
|
|
|
DEFAULT_MARK = object()
|
|
|
|
|
|
|
|
|
|
|
|
class SigiTestApp(DjangoTestApp):
|
|
|
|
def __init__(
|
|
|
|
self, extra_environ=None, relative_to=None, default_user=None
|
|
|
|
):
|
|
|
|
super(SigiTestApp, self).__init__(extra_environ, relative_to)
|
|
|
|
self.default_user = default_user
|
|
|
|
|
|
|
|
def get(
|
|
|
|
self,
|
|
|
|
url,
|
|
|
|
params=None,
|
|
|
|
headers=None,
|
|
|
|
extra_environ=None,
|
|
|
|
status=None,
|
|
|
|
expect_errors=False,
|
|
|
|
user=DEFAULT_MARK,
|
|
|
|
auto_follow=True,
|
|
|
|
content_type=None,
|
|
|
|
**kwargs
|
|
|
|
):
|
|
|
|
# note we altered the default values for user and auto_follow
|
|
|
|
|
|
|
|
if user is DEFAULT_MARK: # a trick to allow explicit user=None
|
|
|
|
user = self.default_user
|
|
|
|
|
|
|
|
return super(SigiTestApp, self).get(
|
|
|
|
url,
|
|
|
|
params,
|
|
|
|
headers,
|
|
|
|
extra_environ,
|
|
|
|
status,
|
|
|
|
expect_errors,
|
|
|
|
user,
|
|
|
|
auto_follow,
|
|
|
|
content_type,
|
|
|
|
**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)
|
|
|
|
return SigiTestApp(default_user=admin_user.username)
|