##// END OF EJS Templates
fixed default permissions population during upgrades...
fixed default permissions population during upgrades - it often happen that introducing new permission caused default permission to reset it's state to installation default. new version makes sure that only missing permissions are created while leaving old defaults

File last commit:

r3714:7e3d89d9 beta
r3733:af049a95 beta
Show More
test_validators.py
255 lines | 10.0 KiB | text/x-python | PythonLexer
Added rewritten validators module + tests
r2466 # -*- coding: utf-8 -*-
import unittest
import formencode
from rhodecode.tests import *
from rhodecode.model import validators as v
Mads Kiilerich
further cleanup of UsersGroup...
r3417 from rhodecode.model.users_group import UserGroupModel
Added rewritten validators module + tests
r2466
from rhodecode.model.meta import Session
from rhodecode.model.repos_group import ReposGroupModel
from rhodecode.config.routing import ADMIN_PREFIX
fixed validator tests
r2898 from rhodecode.model.db import ChangesetStatus, Repository
Add test for NotReviewed validator
r2721 from rhodecode.model.changeset_status import ChangesetStatusModel
- Manage User’s Groups: create, delete, rename, add/remove users inside....
r3714 from rhodecode.tests.fixture import Fixture
fixture = Fixture()
Added rewritten validators module + tests
r2466
class TestReposGroups(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
more usage of fixture tools...
r3647 Session.remove()
Added rewritten validators module + tests
r2466
def test_Message_extractor(self):
validator = v.ValidUsername()
self.assertRaises(formencode.Invalid, validator.to_python, 'default')
class StateObj(object):
pass
self.assertRaises(formencode.Invalid,
validator.to_python, 'default', StateObj)
def test_ValidUsername(self):
validator = v.ValidUsername()
self.assertRaises(formencode.Invalid, validator.to_python, 'default')
self.assertRaises(formencode.Invalid, validator.to_python, 'new_user')
self.assertRaises(formencode.Invalid, validator.to_python, '.,')
self.assertRaises(formencode.Invalid, validator.to_python,
TEST_USER_ADMIN_LOGIN)
self.assertEqual('test', validator.to_python('test'))
validator = v.ValidUsername(edit=True, old_data={'user_id': 1})
def test_ValidRepoUser(self):
validator = v.ValidRepoUser()
self.assertRaises(formencode.Invalid, validator.to_python, 'nouser')
self.assertEqual(TEST_USER_ADMIN_LOGIN,
validator.to_python(TEST_USER_ADMIN_LOGIN))
Mads Kiilerich
further cleanup of UsersGroup...
r3417 def test_ValidUserGroup(self):
validator = v.ValidUserGroup()
Added rewritten validators module + tests
r2466 self.assertRaises(formencode.Invalid, validator.to_python, 'default')
self.assertRaises(formencode.Invalid, validator.to_python, '.,')
- Manage User’s Groups: create, delete, rename, add/remove users inside....
r3714 gr = fixture.create_user_group('test')
gr2 = fixture.create_user_group('tes2')
Session().commit()
Added rewritten validators module + tests
r2466 self.assertRaises(formencode.Invalid, validator.to_python, 'test')
assert gr.users_group_id != None
Mads Kiilerich
further cleanup of UsersGroup...
r3417 validator = v.ValidUserGroup(edit=True,
Added rewritten validators module + tests
r2466 old_data={'users_group_id':
gr2.users_group_id})
self.assertRaises(formencode.Invalid, validator.to_python, 'test')
self.assertRaises(formencode.Invalid, validator.to_python, 'TesT')
self.assertRaises(formencode.Invalid, validator.to_python, 'TEST')
Mads Kiilerich
further cleanup of UsersGroup...
r3417 UserGroupModel().delete(gr)
UserGroupModel().delete(gr2)
- Manage User’s Groups: create, delete, rename, add/remove users inside....
r3714 Session().commit()
Added rewritten validators module + tests
r2466
def test_ValidReposGroup(self):
validator = v.ValidReposGroup()
model = ReposGroupModel()
self.assertRaises(formencode.Invalid, validator.to_python,
{'group_name': HG_REPO, })
gr = model.create(group_name='test_gr', group_description='desc',
parent=None,
Group management delegation:...
r3222 just_db=True,
owner=TEST_USER_ADMIN_LOGIN)
Added rewritten validators module + tests
r2466 self.assertRaises(formencode.Invalid,
validator.to_python, {'group_name': gr.group_name, })
validator = v.ValidReposGroup(edit=True,
old_data={'group_id': gr.group_id})
self.assertRaises(formencode.Invalid,
validator.to_python, {
'group_name': gr.group_name + 'n',
'group_parent_id': gr.group_id
})
model.delete(gr)
def test_ValidPassword(self):
validator = v.ValidPassword()
self.assertEqual('lol', validator.to_python('lol'))
self.assertEqual(None, validator.to_python(None))
self.assertRaises(formencode.Invalid, validator.to_python, 'ąćżź')
def test_ValidPasswordsMatch(self):
validator = v.ValidPasswordsMatch()
self.assertRaises(formencode.Invalid,
validator.to_python, {'password': 'pass',
'password_confirmation': 'pass2'})
self.assertRaises(formencode.Invalid,
validator.to_python, {'new_password': 'pass',
'password_confirmation': 'pass2'})
self.assertEqual({'new_password': 'pass',
'password_confirmation': 'pass'},
validator.to_python({'new_password': 'pass',
'password_confirmation': 'pass'}))
self.assertEqual({'password': 'pass',
'password_confirmation': 'pass'},
validator.to_python({'password': 'pass',
'password_confirmation': 'pass'}))
def test_ValidAuth(self):
validator = v.ValidAuth()
valid_creds = {
'username': TEST_USER_REGULAR2_LOGIN,
'password': TEST_USER_REGULAR2_PASS,
}
invalid_creds = {
'username': 'err',
'password': 'err',
}
self.assertEqual(valid_creds, validator.to_python(valid_creds))
self.assertRaises(formencode.Invalid,
validator.to_python, invalid_creds)
def test_ValidAuthToken(self):
validator = v.ValidAuthToken()
# this is untestable without a threadlocal
# self.assertRaises(formencode.Invalid,
# validator.to_python, 'BadToken')
validator
def test_ValidRepoName(self):
validator = v.ValidRepoName()
self.assertRaises(formencode.Invalid,
validator.to_python, {'repo_name': ''})
self.assertRaises(formencode.Invalid,
validator.to_python, {'repo_name': HG_REPO})
gr = ReposGroupModel().create(group_name='group_test',
group_description='desc',
Group management delegation:...
r3222 parent=None,
owner=TEST_USER_ADMIN_LOGIN)
Added rewritten validators module + tests
r2466 self.assertRaises(formencode.Invalid,
validator.to_python, {'repo_name': gr.group_name})
#TODO: write an error case for that ie. create a repo withinh a group
# self.assertRaises(formencode.Invalid,
# validator.to_python, {'repo_name': 'some',
# 'repo_group': gr.group_id})
def test_ValidForkName(self):
# this uses ValidRepoName validator
assert True
@parameterized.expand([
('test', 'test'), ('lolz!', 'lolz'), (' aavv', 'aavv'),
('ala ma kota', 'ala-ma-kota'), ('@nooo', 'nooo'),
('$!haha lolz !', 'haha-lolz'), ('$$$$$', ''), ('{}OK!', 'OK'),
('/]re po', 're-po')])
def test_SlugifyName(self, name, expected):
validator = v.SlugifyName()
self.assertEqual(expected, validator.to_python(name))
def test_ValidCloneUri(self):
skip failures for two tests in validators
r2557 #TODO: write this one
pass
Added rewritten validators module + tests
r2466
def test_ValidForkType(self):
validator = v.ValidForkType(old_data={'repo_type': 'hg'})
self.assertEqual('hg', validator.to_python('hg'))
self.assertRaises(formencode.Invalid, validator.to_python, 'git')
def test_ValidPerms(self):
skip failures for two tests in validators
r2557 #TODO: write this one
pass
Added rewritten validators module + tests
r2466
def test_ValidSettings(self):
validator = v.ValidSettings()
self.assertEqual({'pass': 'pass'},
validator.to_python(value={'user': 'test',
'pass': 'pass'}))
self.assertEqual({'user2': 'test', 'pass': 'pass'},
validator.to_python(value={'user2': 'test',
'pass': 'pass'}))
def test_ValidPath(self):
validator = v.ValidPath()
self.assertEqual(TESTS_TMP_PATH,
validator.to_python(TESTS_TMP_PATH))
self.assertRaises(formencode.Invalid, validator.to_python,
'/no_such_dir')
def test_UniqSystemEmail(self):
validator = v.UniqSystemEmail(old_data={})
self.assertEqual('mail@python.org',
validator.to_python('MaiL@Python.org'))
email = TEST_USER_REGULAR2_EMAIL
self.assertRaises(formencode.Invalid, validator.to_python, email)
def test_ValidSystemEmail(self):
validator = v.ValidSystemEmail()
email = TEST_USER_REGULAR2_EMAIL
self.assertEqual(email, validator.to_python(email))
self.assertRaises(formencode.Invalid, validator.to_python, 'err')
def test_LdapLibValidator(self):
fixed ldap tests when ldap lib is installed
r3674 if ldap_lib_installed:
validator = v.LdapLibValidator()
self.assertEqual("DN", validator.to_python('DN'))
else:
validator = v.LdapLibValidator()
self.assertRaises(v.LdapImportError, validator.to_python, 'err')
Added rewritten validators module + tests
r2466
def test_AttrLoginValidator(self):
validator = v.AttrLoginValidator()
fixed ldap tests when ldap lib is installed
r3674 self.assertEqual('DN_attr', validator.to_python('DN_attr'))
Add test for NotReviewed validator
r2721
def test_NotReviewedRevisions(self):
fixed validator tests
r2898 repo_id = Repository.get_by_repo_name(HG_REPO).repo_id
validator = v.NotReviewedRevisions(repo_id)
Add test for NotReviewed validator
r2721 rev = '0' * 40
# add status for a rev, that should throw an error because it is already
# reviewed
new_status = ChangesetStatus()
new_status.author = ChangesetStatusModel()._get_user(TEST_USER_ADMIN_LOGIN)
new_status.repo = ChangesetStatusModel()._get_repo(HG_REPO)
new_status.status = ChangesetStatus.STATUS_APPROVED
new_status.comment = None
new_status.revision = rev
Session().add(new_status)
Session().commit()
try:
self.assertRaises(formencode.Invalid, validator.to_python, [rev])
finally:
Session().delete(new_status)
Session().commit()