##// END OF EJS Templates
Stylistic cleanup - mostly formatting
Stylistic cleanup - mostly formatting

File last commit:

r3550:7abbb77b beta
r3552:7967d00e beta
Show More
__init__.py
202 lines | 6.2 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
white space cleanup
r2478
fixes timezone issues with tests
r1707 import pylons.test
Repo size - show just the size without duplicating text...
r3550 from rhodecode.lib.utils2 import safe_unicode, safe_str
fixes timezone issues with tests
r1707
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',
rewrote test_scm_operations, now run by nosetests
r2728 'HG_FORK', 'GIT_FORK', 'TEST_USER_ADMIN_LOGIN', 'TEST_USER_ADMIN_PASS',
'TEST_USER_REGULAR_LOGIN', 'TEST_USER_REGULAR_PASS',
'TEST_USER_REGULAR_EMAIL', 'TEST_USER_REGULAR2_LOGIN',
'TEST_USER_REGULAR2_PASS', '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',
fixed issue with renaming repos group together with changing parents with multiple nested trees...
r3459 'GIT_REMOTE_REPO', 'SCM_TESTS', '_get_repo_create_params',
'_get_group_create_params'
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):
added test for setting repo as private which should set perm => None for default user
r3219 self.assertTrue('flash' in response.session,
Repo size - show just the size without duplicating text...
r3550 msg='Response session:%r have no flash'
% response.session)
better error message in checkSession in tests
r2530 if not msg in response.session['flash'][0][1]:
Repo size - show just the size without duplicating text...
r3550 msg = u'msg `%s` not found in session flash: got `%s` instead' % (
msg, response.session['flash'][0][1])
self.fail(safe_str(msg))
Implemented #379 defaults settings page for creation of repositories...
r3056
## HELPERS ##
def _get_repo_create_params(**custom):
defs = {
'repo_name': None,
'repo_type': 'hg',
'clone_uri': '',
'repo_group': '',
'repo_description': 'DESC',
'repo_private': False,
'repo_landing_rev': 'tip'
}
defs.update(custom)
if 'repo_name_full' not in custom:
defs.update({'repo_name_full': defs['repo_name']})
return defs
fixed issue with renaming repos group together with changing parents with multiple nested trees...
r3459
def _get_group_create_params(**custom):
defs = dict(
group_name=None,
group_description='DESC',
group_parent_id=None,
perms_updates=[],
perms_new=[],
enable_locking=False,
recursive=False
)
defs.update(custom)
return defs