__init__.py
85 lines
| 2.6 KiB
| text/x-python
|
PythonLexer
r547 | """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. | ||||
""" | ||||
r1366 | import os | |||
from os.path import join as jn | ||||
r547 | 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 | ||||
r1366 | ||||
r547 | from rhodecode.model import meta | |||
import logging | ||||
r688 | log = logging.getLogger(__name__) | |||
r547 | ||||
import pylons.test | ||||
r688 | __all__ = ['environ', 'url', 'TestController', 'TESTS_TMP_PATH', 'HG_REPO', | |||
r1418 | 'GIT_REPO', 'NEW_HG_REPO', 'NEW_GIT_REPO', 'HG_FORK', 'GIT_FORK', | |||
r1416 | 'TEST_USER_ADMIN_LOGIN', 'TEST_USER_ADMIN_PASS' ] | |||
r547 | ||||
# Invoke websetup with the current config file | ||||
#SetupCommand('setup-app').run([config_file]) | ||||
##RUNNING DESIRED TESTS | ||||
r1416 | # nosetests -x rhodecode.tests.functional.test_admin_settings:TestSettingsController.test_my_account | |||
# nosetests --pdb --pdb-failures | ||||
r547 | environ = {} | |||
r688 | #SOME GLOBALS FOR TESTS | |||
r1397 | from tempfile import _RandomNameSequence | |||
TESTS_TMP_PATH = jn('/', 'tmp', 'rc_test_%s' % _RandomNameSequence().next()) | ||||
r1416 | TEST_USER_ADMIN_LOGIN = 'test_admin' | |||
TEST_USER_ADMIN_PASS = 'test12' | ||||
r688 | HG_REPO = 'vcs_test_hg' | |||
GIT_REPO = 'vcs_test_git' | ||||
NEW_HG_REPO = 'vcs_test_hg_new' | ||||
NEW_GIT_REPO = 'vcs_test_git_new' | ||||
HG_FORK = 'vcs_test_hg_fork' | ||||
GIT_FORK = 'vcs_test_git_fork' | ||||
r547 | class TestController(TestCase): | |||
def __init__(self, *args, **kwargs): | ||||
wsgiapp = pylons.test.pylonsapp | ||||
config = wsgiapp.config | ||||
r688 | ||||
r547 | self.app = TestApp(wsgiapp) | |||
url._push_object(URLGenerator(config['routes.map'], environ)) | ||||
self.sa = meta.Session | ||||
r688 | self.index_location = config['app_conf']['index_dir'] | |||
r547 | TestCase.__init__(self, *args, **kwargs) | |||
r688 | ||||
r1416 | def log_user(self, username=TEST_USER_ADMIN_LOGIN, | |||
password=TEST_USER_ADMIN_PASS): | ||||
r547 | response = self.app.post(url(controller='login', action='index'), | |||
{'username':username, | ||||
'password':password}) | ||||
r688 | ||||
r547 | if 'invalid user name' in response.body: | |||
r1366 | self.fail('could not login using %s %s' % (username, password)) | |||
r688 | ||||
r1366 | self.assertEqual(response.status, '302 Found') | |||
self.assertEqual(response.session['rhodecode_user'].username, username) | ||||
r547 | return response.follow() | |||
r1382 | ||||
def checkSessionFlash(self, response, msg): | ||||
self.assertTrue('flash' in response.session) | ||||
self.assertTrue(msg in response.session['flash'][0][1]) | ||||