tests: basic unit test to check module loading is ok
This commit is contained in:
parent
15e6542248
commit
25697df1d5
|
@ -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
|
|
@ -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
|
Reference in New Issue