aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/tests
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2013-04-04 18:31:15 +0200
committerMarcin Kuzminski <marcin@python-works.com>2013-04-04 18:31:15 +0200
commit8247b13694283eb3adc0d31ed1f70748bddf3770 (patch)
tree59a68ed82d736a33500909e46ef55ed6c7e3f1ab /rhodecode/tests
parentc9e08d2a01f3ee674e57374382bca62a6b0ad8e3 (diff)
fixed ldap tests when ldap lib is installed
--HG-- branch : beta extra : rebase_source : 2816c813a297bda3e62f68407849ceb6b61c2ade extra : amend_source : 1bf0662cda630b754f0e4319878db66682eedffc
Diffstat (limited to 'rhodecode/tests')
-rw-r--r--rhodecode/tests/__init__.py11
-rw-r--r--rhodecode/tests/functional/test_admin_ldap_settings.py95
-rw-r--r--rhodecode/tests/test_validators.py10
3 files changed, 71 insertions, 45 deletions
diff --git a/rhodecode/tests/__init__.py b/rhodecode/tests/__init__.py
index 5e9cfb06..64ce6f87 100644
--- a/rhodecode/tests/__init__.py
+++ b/rhodecode/tests/__init__.py
@@ -52,7 +52,7 @@ log = logging.getLogger(__name__)
__all__ = [
'parameterized', 'environ', 'url', 'get_new_dir', 'TestController',
- 'SkipTest',
+ 'SkipTest', 'ldap_lib_installed',
'TESTS_TMP_PATH', 'HG_REPO', 'GIT_REPO', 'NEW_HG_REPO', 'NEW_GIT_REPO',
'HG_FORK', 'GIT_FORK', 'TEST_USER_ADMIN_LOGIN', 'TEST_USER_ADMIN_PASS',
'TEST_USER_REGULAR_LOGIN', 'TEST_USER_REGULAR_PASS',
@@ -117,6 +117,15 @@ TEST_REPO_PREFIX = 'vcs-test'
GIT_REMOTE_REPO = jn(TESTS_TMP_PATH, GIT_REPO)
HG_REMOTE_REPO = jn(TESTS_TMP_PATH, HG_REPO)
+#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
+
def get_new_dir(title):
"""
diff --git a/rhodecode/tests/functional/test_admin_ldap_settings.py b/rhodecode/tests/functional/test_admin_ldap_settings.py
index bd838c0c..2237cbfc 100644
--- a/rhodecode/tests/functional/test_admin_ldap_settings.py
+++ b/rhodecode/tests/functional/test_admin_ldap_settings.py
@@ -1,15 +1,6 @@
from rhodecode.tests import *
from rhodecode.model.db import RhodeCodeSetting
-skip_ldap_test = False
-try:
- import ldap
-except ImportError:
- # means that python-ldap is not installed
- skip_ldap_test = True
- pass
-
-
class TestLdapSettingsController(TestController):
def test_index(self):
@@ -20,26 +11,26 @@ class TestLdapSettingsController(TestController):
def test_ldap_save_settings(self):
self.log_user()
- if skip_ldap_test:
+ if ldap_lib_installed:
raise SkipTest('skipping due to missing ldap lib')
test_url = url(controller='admin/ldap_settings',
action='ldap_settings')
response = self.app.post(url=test_url,
- params={'ldap_host' : u'dc.example.com',
- 'ldap_port' : '999',
- 'ldap_tls_kind' : 'PLAIN',
- 'ldap_tls_reqcert' : 'NEVER',
- 'ldap_dn_user':'test_user',
- 'ldap_dn_pass':'test_pass',
- 'ldap_base_dn':'test_base_dn',
- 'ldap_filter':'test_filter',
- 'ldap_search_scope':'BASE',
- 'ldap_attr_login':'test_attr_login',
- 'ldap_attr_firstname':'ima',
- 'ldap_attr_lastname':'tester',
- 'ldap_attr_email':'test@example.com' })
+ params={'ldap_host': u'dc.example.com',
+ 'ldap_port': '999',
+ 'ldap_tls_kind': 'PLAIN',
+ 'ldap_tls_reqcert': 'NEVER',
+ 'ldap_dn_user': 'test_user',
+ 'ldap_dn_pass': 'test_pass',
+ 'ldap_base_dn': 'test_base_dn',
+ 'ldap_filter': 'test_filter',
+ 'ldap_search_scope': 'BASE',
+ 'ldap_attr_login': 'test_attr_login',
+ 'ldap_attr_firstname': 'ima',
+ 'ldap_attr_lastname': 'tester',
+ 'ldap_attr_email': 'test@example.com' })
new_settings = RhodeCodeSetting.get_ldap_settings()
self.assertEqual(new_settings['ldap_host'], u'dc.example.com',
@@ -48,36 +39,58 @@ class TestLdapSettingsController(TestController):
self.checkSessionFlash(response,
'LDAP settings updated successfully')
+ def test_ldap_error_form_wrong_port_number(self):
+ self.log_user()
+ if ldap_lib_installed:
+ raise SkipTest('skipping due to missing ldap lib')
+
+ test_url = url(controller='admin/ldap_settings',
+ action='ldap_settings')
+
+ response = self.app.post(url=test_url,
+ params={'ldap_host': '',
+ 'ldap_port': 'i-should-be-number', # bad port num
+ 'ldap_tls_kind': 'PLAIN',
+ 'ldap_tls_reqcert': 'NEVER',
+ 'ldap_dn_user': '',
+ 'ldap_dn_pass': '',
+ 'ldap_base_dn': '',
+ 'ldap_filter': '',
+ 'ldap_search_scope': 'BASE',
+ 'ldap_attr_login': '',
+ 'ldap_attr_firstname': '',
+ 'ldap_attr_lastname': '',
+ 'ldap_attr_email': ''})
+
+ response.mustcontain("""<span class="error-message">"""
+ """Please enter a number</span><br />""")
+
def test_ldap_error_form(self):
self.log_user()
- if skip_ldap_test:
+ if ldap_lib_installed:
raise SkipTest('skipping due to missing ldap lib')
test_url = url(controller='admin/ldap_settings',
action='ldap_settings')
response = self.app.post(url=test_url,
- params={'ldap_host' : '',
- 'ldap_port' : 'i-should-be-number',
- 'ldap_tls_kind' : 'PLAIN',
- 'ldap_tls_reqcert' : 'NEVER',
- 'ldap_dn_user':'',
- 'ldap_dn_pass':'',
- 'ldap_base_dn':'',
- 'ldap_filter':'',
- 'ldap_search_scope':'BASE',
- 'ldap_attr_login':'', # <----- missing required input
- 'ldap_attr_firstname':'',
- 'ldap_attr_lastname':'',
- 'ldap_attr_email':'' })
+ params={'ldap_host': 'Host',
+ 'ldap_port': '123',
+ 'ldap_tls_kind': 'PLAIN',
+ 'ldap_tls_reqcert': 'NEVER',
+ 'ldap_dn_user': '',
+ 'ldap_dn_pass': '',
+ 'ldap_base_dn': '',
+ 'ldap_filter': '',
+ 'ldap_search_scope': 'BASE',
+ 'ldap_attr_login': '', # <----- missing required input
+ 'ldap_attr_firstname': '',
+ 'ldap_attr_lastname': '',
+ 'ldap_attr_email': ''})
response.mustcontain("""<span class="error-message">The LDAP Login"""
""" attribute of the CN must be specified""")
-
- response.mustcontain("""<span class="error-message">Please """
- """enter a number</span>""")
-
def test_ldap_login(self):
pass
diff --git a/rhodecode/tests/test_validators.py b/rhodecode/tests/test_validators.py
index f53d5c3f..d57df495 100644
--- a/rhodecode/tests/test_validators.py
+++ b/rhodecode/tests/test_validators.py
@@ -220,12 +220,16 @@ class TestReposGroups(unittest.TestCase):
self.assertRaises(formencode.Invalid, validator.to_python, 'err')
def test_LdapLibValidator(self):
- validator = v.LdapLibValidator()
- self.assertRaises(v.LdapImportError, validator.to_python, 'err')
+ 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')
def test_AttrLoginValidator(self):
validator = v.AttrLoginValidator()
- self.assertRaises(formencode.Invalid, validator.to_python, 123)
+ self.assertEqual('DN_attr', validator.to_python('DN_attr'))
def test_NotReviewedRevisions(self):
repo_id = Repository.get_by_repo_name(HG_REPO).repo_id