tests: basic unit test to check module loading is ok

This commit is contained in:
Frédéric Péters 2015-01-29 17:41:30 +01:00
parent 15e6542248
commit 25697df1d5
2 changed files with 108 additions and 0 deletions

68
tests/test_admin_pages.py Normal file
View File

@ -0,0 +1,68 @@
import os
import shutil
import StringIO
import time
try:
import lasso
except ImportError:
lasso = None
import pytest
from quixote import cleanup, get_publisher
from wcs.qommon import errors, sessions
from qommon.ident.password_accounts import PasswordAccount
from wcs.qommon.http_request import HTTPRequest
from wcs.qommon.template import get_current_theme
from wcs.categories import Category
from wcs.roles import Role
from wcs.workflows import Workflow
from wcs.formdef import FormDef
from wcs import fields
from utilities import get_app, login, create_temporary_pub
def setup_module(module):
cleanup()
global pub
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)
pub.cfg['identification'] = {'methods': ['password']}
pub.write_cfg()
def create_superuser():
global user1
if pub.user_class.has_key('admin'):
return
user1 = pub.user_class(name='admin')
user1.id = 'admin'
user1.is_admin = True
user1.store()
account1 = PasswordAccount(id='admin')
account1.set_password('admin')
account1.user_id = user1.id
account1.store()
pub.cfg['identification'] = {'methods': ['password']}
pub.write_cfg()
def create_role():
Role.wipe()
role = Role(name='foobar')
role.store()
return role
def teardown_module(module):
shutil.rmtree(pub.APP_DIR)
def test_with_superuser():
create_superuser()
app = login(get_app(pub))
resp = app.get('/admin/')
assert 'Au Quotidien' in resp.body

40
tests/utilities.py Normal file
View File

@ -0,0 +1,40 @@
import ConfigParser
import os
import tempfile
from webtest import TestApp
from quixote.wsgi import QWIP
from qommon.publisher import set_publisher_class
import wcs
from wcs import publisher
from wcs.qommon.http_request import HTTPRequest
QWIP.request_class = HTTPRequest
def create_temporary_pub():
config = ConfigParser.ConfigParser()
APP_DIR = tempfile.mkdtemp()
set_publisher_class(publisher.WcsPublisher)
publisher.WcsPublisher.APP_DIR = APP_DIR
publisher.WcsPublisher.DATA_DIR = os.path.abspath(
os.path.join(os.path.dirname(wcs.__file__), '..', 'data'))
publisher.WcsPublisher.configure(config,
extra=[os.path.join(os.path.dirname(__file__), '..', 'extra')])
pub = publisher.WcsPublisher.create_publisher()
# allow saving the user
pub.app_dir = os.path.join(APP_DIR, 'example.net')
os.mkdir(pub.app_dir)
return pub
def get_app(pub):
return TestApp(QWIP(pub), extra_environ={'HTTP_HOST': 'example.net'})
def login(app, username='admin', password='admin'):
login_page = app.get('/login/')
login_form = login_page.forms['login-form']
login_form['username'] = username
login_form['password'] = password
resp = login_form.submit()
assert resp.status_int == 302
return app