##// END OF EJS Templates
Fixed issues with how mysql handles float values. Caused gists with...
Fixed issues with how mysql handles float values. Caused gists with expiration dates not work properly on mysql.

File last commit:

r3960:5293d4bb merge default
r3971:7f71d22a default
Show More
__init__.py
202 lines | 6.5 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.
tests docs
r3637
nosetests -x - fail on first error
nosetests rhodecode.tests.functional.test_admin_settings:TestSettingsController.test_my_account
nosetests --pdb --pdb-failures
nosetests --with-coverage --cover-package=rhodecode.model.validators rhodecode.tests.test_validators
optional FLAGS:
RC_WHOOSH_TEST_DISABLE=1 - skip whoosh index building and tests
RC_NO_TMP_PATH=1 - disable new temp path for tests, used mostly for test_vcs_operations
renamed project to rhodecode
r547 """
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
- 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
synced vcs with upstream...
r3797
import pylons
import pylons.test
renamed project to rhodecode
r547 from pylons import config, url
synced vcs with upstream...
r3797 from pylons.i18n.translation import _get_translator
created basic TestClass for tests that does...
r3829 from pylons.util import ContextObj
synced vcs with upstream...
r3797
renamed project to rhodecode
r547 from routes.util import URLGenerator
from webtest import TestApp
Use only mustcontain for testing response body
r3646 from nose.plugins.skip import SkipTest
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366
Use unittest2 for testing
r3872 from rhodecode.lib.compat import unittest
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
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',
created basic TestClass for tests that does...
r3829 'SkipTest', 'ldap_lib_installed', 'BaseTestCase', 'init_stack',
Added rewritten validators module + tests
r2466 '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',
more usage of fixture tools...
r3647 '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
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)
fixed ldap tests when ldap lib is installed
r3674 #skip ldap tests if LDAP lib is not installed
ldap_lib_installed = False
try:
import ldap
ldap_lib_installed = True
except ImportError:
# means that python-ldap is not installed
pass
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)
created basic TestClass for tests that does...
r3829 def init_stack(config=None):
if not config:
config = pylons.test.pylonsapp.config
url._push_object(URLGenerator(config['routes.map'], environ))
pylons.app_globals._push_object(config['pylons.app_globals'])
pylons.config._push_object(config)
pylons.tmpl_context._push_object(ContextObj())
# Initialize a translator for tests that utilize i18n
translator = _get_translator(pylons.config.get('lang'))
pylons.translator._push_object(translator)
Use unittest2 for testing
r3872 class BaseTestCase(unittest.TestCase):
created basic TestClass for tests that does...
r3829 def __init__(self, *args, **kwargs):
self.wsgiapp = pylons.test.pylonsapp
init_stack(self.wsgiapp.config)
Use unittest2 for testing
r3872 unittest.TestCase.__init__(self, *args, **kwargs)
created basic TestClass for tests that does...
r3829
class TestController(BaseTestCase):
renamed project to rhodecode
r547
def __init__(self, *args, **kwargs):
created basic TestClass for tests that does...
r3829 BaseTestCase.__init__(self, *args, **kwargs)
self.app = TestApp(self.wsgiapp)
Tests rewrite for 1.2 added some globals configs to make tests easier....
r688 self.index_location = config['app_conf']['index_dir']
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))