diff options
author | Marcin Kuzminski <marcin@python-works.com> | 2013-04-04 18:31:15 +0200 |
---|---|---|
committer | Marcin Kuzminski <marcin@python-works.com> | 2013-04-04 18:31:15 +0200 |
commit | 8247b13694283eb3adc0d31ed1f70748bddf3770 (patch) | |
tree | 59a68ed82d736a33500909e46ef55ed6c7e3f1ab /rhodecode/tests | |
parent | c9e08d2a01f3ee674e57374382bca62a6b0ad8e3 (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__.py | 11 | ||||
-rw-r--r-- | rhodecode/tests/functional/test_admin_ldap_settings.py | 95 | ||||
-rw-r--r-- | rhodecode/tests/test_validators.py | 10 |
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 |