Mercurial > kallithea
view rhodecode/tests/__init__.py @ 1957:04dd907b2993 beta
changeset: do not mix font sizes/padding of hash vs. date there, looks very distracting
author | Aras Pranckevicius <aras@unity3d.com> |
---|---|
date | Fri, 27 Jan 2012 08:11:35 +0200 |
parents | cf51bbfb120e |
children | 82a88013a3fd 8b1a79ad7a42 |
line wrap: on
line source
"""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. """ import os import time import logging from os.path import join as jn from unittest import TestCase from tempfile import _RandomNameSequence 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 from rhodecode.model.meta import Session from rhodecode.model.db import User import pylons.test os.environ['TZ'] = 'UTC' time.tzset() log = logging.getLogger(__name__) __all__ = [ 'environ', 'url', 'TestController', 'TESTS_TMP_PATH', 'HG_REPO', 'GIT_REPO', 'NEW_HG_REPO', 'NEW_GIT_REPO', 'HG_FORK', 'GIT_FORK', 'TEST_USER_ADMIN_LOGIN', 'TEST_USER_REGULAR_LOGIN', 'TEST_USER_REGULAR_PASS', 'TEST_USER_REGULAR_EMAIL', 'TEST_USER_REGULAR2_LOGIN', 'TEST_USER_REGULAR2_PASS', 'TEST_USER_REGULAR2_EMAIL' ] # Invoke websetup with the current config file # SetupCommand('setup-app').run([config_file]) ##RUNNING DESIRED TESTS # nosetests -x rhodecode.tests.functional.test_admin_settings:TestSettingsController.test_my_account # nosetests --pdb --pdb-failures environ = {} #SOME GLOBALS FOR TESTS TESTS_TMP_PATH = jn('/', 'tmp', 'rc_test_%s' % _RandomNameSequence().next()) TEST_USER_ADMIN_LOGIN = 'test_admin' TEST_USER_ADMIN_PASS = 'test12' TEST_USER_ADMIN_EMAIL = 'test_admin@mail.com' TEST_USER_REGULAR_LOGIN = 'test_regular' TEST_USER_REGULAR_PASS = 'test12' TEST_USER_REGULAR_EMAIL = 'test_regular@mail.com' TEST_USER_REGULAR2_LOGIN = 'test_regular2' TEST_USER_REGULAR2_PASS = 'test12' TEST_USER_REGULAR2_EMAIL = 'test_regular2@mail.com' 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' class TestController(TestCase): def __init__(self, *args, **kwargs): wsgiapp = pylons.test.pylonsapp config = wsgiapp.config self.app = TestApp(wsgiapp) url._push_object(URLGenerator(config['routes.map'], environ)) self.Session = Session self.index_location = config['app_conf']['index_dir'] TestCase.__init__(self, *args, **kwargs) def log_user(self, username=TEST_USER_ADMIN_LOGIN, password=TEST_USER_ADMIN_PASS): self._logged_username = username response = self.app.post(url(controller='login', action='index'), {'username':username, 'password':password}) if 'invalid user name' in response.body: self.fail('could not login using %s %s' % (username, password)) self.assertEqual(response.status, '302 Found') ses = response.session['rhodecode_user'] self.assertEqual(ses.get('username'), username) response = response.follow() self.assertEqual(ses.get('is_authenticated'), True) return response.session['rhodecode_user'] def _get_logged_user(self): return User.get_by_username(self._logged_username) def checkSessionFlash(self, response, msg): self.assertTrue('flash' in response.session) self.assertTrue(msg in response.session['flash'][0][1])