__init__.py
70 lines
| 2.2 KiB
| text/x-python
|
PythonLexer
Marcin Kuzminski
|
r0 | """Pylons application test package | ||
This package assumes the Pylons environment is already loaded, such as | ||||
when this script is imported from the `nosetests --with-pylons=test.ini` | ||||
command. | ||||
This module initializes the application via ``websetup`` (`paster | ||||
setup-app`) and provides the base testing objects. | ||||
""" | ||||
from unittest import TestCase | ||||
from paste.deploy import loadapp | ||||
from paste.script.appinstall import SetupCommand | ||||
from pylons import config, url | ||||
from routes.util import URLGenerator | ||||
from webtest import TestApp | ||||
r459 | import os | |||
r463 | from pylons_app.model import meta | |||
r483 | from pylons_app.lib.indexers import IDX_LOCATION | |||
r473 | import logging | |||
r483 | import shutil | |||
r473 | log = logging.getLogger(__name__) | |||
Marcin Kuzminski
|
r0 | import pylons.test | ||
__all__ = ['environ', 'url', 'TestController'] | ||||
# Invoke websetup with the current config file | ||||
r473 | #SetupCommand('setup-app').run([pylons.test.pylonsapp.config['__file__']]) | |||
r483 | def create_index(repo_location, full_index): | |||
from pylons_app.lib.indexers import daemon | ||||
from pylons_app.lib.indexers.daemon import WhooshIndexingDaemon | ||||
from pylons_app.lib.indexers.pidlock import DaemonLock, LockHeld | ||||
try: | ||||
l = DaemonLock() | ||||
WhooshIndexingDaemon(repo_location=repo_location)\ | ||||
.run(full_index=full_index) | ||||
l.release() | ||||
except LockHeld: | ||||
pass | ||||
if os.path.exists(IDX_LOCATION): | ||||
shutil.rmtree(IDX_LOCATION) | ||||
create_index('/tmp/*', True) | ||||
Marcin Kuzminski
|
r0 | |||
environ = {} | ||||
class TestController(TestCase): | ||||
def __init__(self, *args, **kwargs): | ||||
r459 | wsgiapp = pylons.test.pylonsapp | |||
config = wsgiapp.config | ||||
Marcin Kuzminski
|
r0 | self.app = TestApp(wsgiapp) | ||
url._push_object(URLGenerator(config['routes.map'], environ)) | ||||
r463 | self.sa = meta.Session | |||
r483 | ||||
Marcin Kuzminski
|
r0 | TestCase.__init__(self, *args, **kwargs) | ||
r459 | ||||
r464 | ||||
def log_user(self): | ||||
response = self.app.post(url(controller='login', action='index'), | ||||
{'username':'test_admin', | ||||
'password':'test'}) | ||||
assert response.status == '302 Found', 'Wrong response code from login got %s' % response.status | ||||
assert response.session['hg_app_user'].username == 'test_admin', 'wrong logged in user' | ||||
r473 | return response.follow() | |||
r483 | ||||