test_admin_ldap_settings.py
87 lines
| 3.1 KiB
| text/x-python
|
PythonLexer
r769 | from rhodecode.tests import * | |||
r1425 | from rhodecode.model.db import RhodeCodeSettings | |||
r1481 | from nose.plugins.skip import SkipTest | |||
r1425 | ||||
r1481 | skip_ldap_test = False | |||
r1425 | try: | |||
import ldap | ||||
except ImportError: | ||||
# means that python-ldap is not installed | ||||
r1481 | skip_ldap_test = True | |||
r1425 | pass | |||
r769 | ||||
class TestLdapSettingsController(TestController): | ||||
def test_index(self): | ||||
r1292 | self.log_user() | |||
response = self.app.get(url(controller='admin/ldap_settings', | ||||
action='index')) | ||||
r1425 | self.assertTrue('LDAP administration' in response.body) | |||
r1292 | ||||
def test_ldap_save_settings(self): | ||||
r1425 | self.log_user() | |||
r1481 | if skip_ldap_test: | |||
raise SkipTest('skipping due to missing ldap lib') | ||||
r1425 | 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 = RhodeCodeSettings.get_ldap_settings() | ||||
self.assertEqual(new_settings['ldap_host'], u'dc.example.com', | ||||
'fail db write compare') | ||||
self.checkSessionFlash(response, | ||||
'Ldap settings updated successfully') | ||||
r1292 | ||||
def test_ldap_error_form(self): | ||||
r1425 | self.log_user() | |||
r1481 | if skip_ldap_test: | |||
raise SkipTest('skipping due to missing ldap lib') | ||||
r1425 | 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':'' }) | ||||
r1481 | ||||
r1425 | self.assertTrue("""<span class="error-message">The LDAP Login""" | |||
""" attribute of the CN must be specified""" in | ||||
response.body) | ||||
r1481 | ||||
r1425 | self.assertTrue("""<span class="error-message">Please """ | |||
"""enter a number</span>""" in response.body) | ||||
r1292 | ||||
def test_ldap_login(self): | ||||
pass | ||||
def test_ldap_login_incorrect(self): | ||||
pass | ||||