##// END OF EJS Templates
merge branch codereview into beta
merge branch codereview into beta

File last commit:

r2466:7010dc12 codereview
r2476:19d94d75 merge beta
Show More
__init__.py
160 lines | 5.1 KiB | text/x-python | PythonLexer
renamed project to rhodecode
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.
"""
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366 import os
fixes timezone issues with tests
r1707 import time
Notification system improvements...
r1712 import logging
Added vcs testsuite for better integration tests + added fetching...
r2451 import datetime
import hashlib
import tempfile
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366 from os.path import join as jn
renamed project to rhodecode
r547 from unittest import TestCase
- refactoring to overcome poor usage of global pylons config...
r1723 from tempfile import _RandomNameSequence
renamed project to rhodecode
r547
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
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366
fix windows test issue with tzset()
r2254 from rhodecode import is_windows
- refactoring to overcome poor usage of global pylons config...
r1723 from rhodecode.model.meta import Session
Notification system improvements...
r1712 from rhodecode.model.db import User
Added rewritten validators module + tests
r2466 from rhodecode.tests.nose_parametrized import parameterized
fixes timezone issues with tests
r1707 import pylons.test
Added vcs testsuite for better integration tests + added fetching...
r2451
fixes timezone issues with tests
r1707 os.environ['TZ'] = 'UTC'
fix windows test issue with tzset()
r2254 if not is_windows:
time.tzset()
renamed project to rhodecode
r547
Tests rewrite for 1.2 added some globals configs to make tests easier....
r688 log = logging.getLogger(__name__)
renamed project to rhodecode
r547
fixed repo_create permission by adding missing commit statements...
r1758 __all__ = [
Added rewritten validators module + tests
r2466 'parameterized', 'environ', 'url', 'get_new_dir', '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',
Added vcs testsuite for better integration tests + added fetching...
r2451 'TEST_USER_REGULAR_PASS', 'TEST_USER_REGULAR_EMAIL',
'TEST_USER_REGULAR2_LOGIN', 'TEST_USER_REGULAR2_PASS',
Initial version of landing revisions ref #483...
r2459 'TEST_USER_REGULAR2_EMAIL', 'TEST_HG_REPO', 'TEST_HG_REPO_CLONE',
'TEST_HG_REPO_PULL', 'TEST_GIT_REPO', 'TEST_GIT_REPO_CLONE',
'TEST_GIT_REPO_PULL', 'HG_REMOTE_REPO', 'GIT_REMOTE_REPO', 'SCM_TESTS',
fixed repo_create permission by adding missing commit statements...
r1758 ]
renamed project to rhodecode
r547
# Invoke websetup with the current config file
Some code cleanups and fixes
r1628 # SetupCommand('setup-app').run([config_file])
renamed project to rhodecode
r547
##RUNNING DESIRED TESTS
test env update
r1416 # nosetests -x rhodecode.tests.functional.test_admin_settings:TestSettingsController.test_my_account
auto white-space removal
r1818 # nosetests --pdb --pdb-failures
Added rewritten validators module + tests
r2466 # nosetests --with-coverage --cover-package=rhodecode.model.validators rhodecode.tests.test_validators
renamed project to rhodecode
r547 environ = {}
Tests rewrite for 1.2 added some globals configs to make tests easier....
r688 #SOME GLOBALS FOR TESTS
- refactoring to overcome poor usage of global pylons config...
r1723
Added new random directory for each test to be better sandboxed
r1397 TESTS_TMP_PATH = jn('/', 'tmp', 'rc_test_%s' % _RandomNameSequence().next())
test env update
r1416 TEST_USER_ADMIN_LOGIN = 'test_admin'
TEST_USER_ADMIN_PASS = 'test12'
fixed repo_create permission by adding missing commit statements...
r1758 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'
Tests rewrite for 1.2 added some globals configs to make tests easier....
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'
Added vcs testsuite for better integration tests + added fetching...
r2451 ## VCS
SCM_TESTS = ['hg', 'git']
uniq_suffix = str(int(time.mktime(datetime.datetime.now().timetuple())))
Initial version of landing revisions ref #483...
r2459 GIT_REMOTE_REPO = 'git://github.com/codeinn/vcs.git'
Added vcs testsuite for better integration tests + added fetching...
r2451
TEST_GIT_REPO = jn(TESTS_TMP_PATH, GIT_REPO)
TEST_GIT_REPO_CLONE = jn(TESTS_TMP_PATH, 'vcsgitclone%s' % uniq_suffix)
TEST_GIT_REPO_PULL = jn(TESTS_TMP_PATH, 'vcsgitpull%s' % uniq_suffix)
HG_REMOTE_REPO = 'http://bitbucket.org/marcinkuzminski/vcs'
Initial version of landing revisions ref #483...
r2459
TEST_HG_REPO = jn(TESTS_TMP_PATH, HG_REPO)
Added vcs testsuite for better integration tests + added fetching...
r2451 TEST_HG_REPO_CLONE = jn(TESTS_TMP_PATH, 'vcshgclone%s' % uniq_suffix)
TEST_HG_REPO_PULL = jn(TESTS_TMP_PATH, 'vcshgpull%s' % uniq_suffix)
TEST_DIR = tempfile.gettempdir()
TEST_REPO_PREFIX = 'vcs-test'
Initial version of landing revisions ref #483...
r2459 # cached repos if any !
# comment out to get some other repos from bb or github
GIT_REMOTE_REPO = jn(TESTS_TMP_PATH, GIT_REPO)
HG_REMOTE_REPO = jn(TESTS_TMP_PATH, HG_REPO)
Added vcs testsuite for better integration tests + added fetching...
r2451
def get_new_dir(title):
"""
Returns always new directory path.
"""
from rhodecode.tests.vcs.utils import get_normalized_path
name = TEST_REPO_PREFIX
if title:
name = '-'.join((name, title))
hex = hashlib.sha1(str(time.time())).hexdigest()
name = '-'.join((name, hex))
path = os.path.join(TEST_DIR, name)
return get_normalized_path(path)
renamed project to rhodecode
r547 class TestController(TestCase):
def __init__(self, *args, **kwargs):
wsgiapp = pylons.test.pylonsapp
config = wsgiapp.config
Tests rewrite for 1.2 added some globals configs to make tests easier....
r688
renamed project to rhodecode
r547 self.app = TestApp(wsgiapp)
url._push_object(URLGenerator(config['routes.map'], environ))
- refactoring to overcome poor usage of global pylons config...
r1723 self.Session = Session
Tests rewrite for 1.2 added some globals configs to make tests easier....
r688 self.index_location = config['app_conf']['index_dir']
renamed project to rhodecode
r547 TestCase.__init__(self, *args, **kwargs)
Tests rewrite for 1.2 added some globals configs to make tests easier....
r688
test env update
r1416 def log_user(self, username=TEST_USER_ADMIN_LOGIN,
password=TEST_USER_ADMIN_PASS):
Notification system improvements...
r1712 self._logged_username = username
renamed project to rhodecode
r547 response = self.app.post(url(controller='login', action='index'),
Added vcs testsuite for better integration tests + added fetching...
r2451 {'username': username,
'password': password})
Notification system improvements...
r1712
renamed project to rhodecode
r547 if 'invalid user name' in response.body:
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366 self.fail('could not login using %s %s' % (username, password))
Tests rewrite for 1.2 added some globals configs to make tests easier....
r688
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366 self.assertEqual(response.status, '302 Found')
- refactoring to overcome poor usage of global pylons config...
r1723 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']
Added CheckSessionFlash into init....
r1382
Notification system improvements...
r1712 def _get_logged_user(self):
return User.get_by_username(self._logged_username)
Added CheckSessionFlash into init....
r1382 def checkSessionFlash(self, response, msg):
self.assertTrue('flash' in response.session)
self.assertTrue(msg in response.session['flash'][0][1])