98 lines
2.8 KiB
Python
98 lines
2.8 KiB
Python
import sys
|
|
import shutil
|
|
import tempfile
|
|
|
|
import pytest
|
|
|
|
from quixote import cleanup, get_publisher
|
|
from qommon import errors, sessions
|
|
from wcs import formdef, publisher
|
|
from wcs.qommon.http_request import HTTPRequest
|
|
from wcs.formdef import FormDef
|
|
from wcs.categories import Category
|
|
import wcs.forms.root
|
|
|
|
sys.modules['formdef'] = formdef
|
|
|
|
|
|
def setup_module(module):
|
|
cleanup()
|
|
|
|
global pub, req
|
|
|
|
publisher.WcsPublisher.APP_DIR = tempfile.mkdtemp()
|
|
pub = publisher.WcsPublisher.create_publisher()
|
|
|
|
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
|
|
req._user = None
|
|
req.language = 'en'
|
|
pub._set_request(req)
|
|
req.session = sessions.Session(id=1)
|
|
|
|
def create_superuser():
|
|
global user1
|
|
user1 = pub.user_class(name='user-one-role')
|
|
user1.id = 'user-one-role'
|
|
user1.is_admin = True
|
|
user1.store()
|
|
|
|
def teardown_module(module):
|
|
shutil.rmtree(pub.APP_DIR)
|
|
|
|
|
|
def visit_page(path, user=None):
|
|
req._user = req.session.user = user
|
|
if req._user:
|
|
req.session.user = user.id
|
|
return str(get_publisher().root_directory._q_traverse(path.split('/')))
|
|
|
|
|
|
def test_empty_site():
|
|
visit_page('admin/')
|
|
|
|
|
|
def test_with_user():
|
|
create_superuser()
|
|
with pytest.raises(errors.AccessUnauthorizedError):
|
|
visit_page('admin/')
|
|
visit_page('admin/', user=user1)
|
|
|
|
def test_forms():
|
|
visit_page('admin/forms/', user=user1)
|
|
visit_page('admin/forms/new', user=user1)
|
|
|
|
def test_workflows():
|
|
visit_page('admin/workflows/', user=user1)
|
|
visit_page('admin/workflows/new', user=user1)
|
|
|
|
def test_users():
|
|
visit_page('admin/users/', user=user1)
|
|
visit_page('admin/users/new', user=user1)
|
|
|
|
def test_roles():
|
|
visit_page('admin/roles/', user=user1)
|
|
visit_page('admin/roles/new', user=user1)
|
|
|
|
def test_categories():
|
|
visit_page('admin/categories/', user=user1)
|
|
visit_page('admin/categories/new', user=user1)
|
|
|
|
def test_settings():
|
|
visit_page('admin/settings/', user=user1)
|
|
visit_page('admin/settings/themes', user=user1)
|
|
visit_page('admin/settings/users', user=user1)
|
|
visit_page('admin/settings/template', user=user1)
|
|
visit_page('admin/settings/misc', user=user1)
|
|
visit_page('admin/settings/emails', user=user1)
|
|
visit_page('admin/settings/debug_options', user=user1)
|
|
visit_page('admin/settings/language', user=user1)
|
|
visit_page('admin/settings/import', user=user1)
|
|
visit_page('admin/settings/export', user=user1)
|
|
visit_page('admin/settings/identification', user=user1)
|
|
visit_page('admin/settings/sitename', user=user1)
|
|
visit_page('admin/settings/sms', user=user1)
|
|
visit_page('admin/settings/certificates', user=user1)
|
|
visit_page('admin/settings/texts', user=user1)
|
|
visit_page('admin/settings/session', user=user1)
|
|
visit_page('admin/settings/admin-permissions', user=user1)
|