from rhodecode.tests import * from rhodecode.model.db import RhodeCodeSetting class TestLdapSettingsController(TestController): def test_index(self): self.log_user() response = self.app.get(url(controller='admin/ldap_settings', action='index')) response.mustcontain('LDAP administration') def test_ldap_save_settings(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': 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', 'fail db write compare') 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("""""" """Please enter a number
""") def test_ldap_error_form(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': '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("""The LDAP Login""" """ attribute of the CN must be specified""") def test_ldap_login(self): pass def test_ldap_login_incorrect(self): pass