Files @ d46d9d93305a
Branch filter:

Location: kallithea/rhodecode/tests/functional/test_admin_ldap_settings.py - annotation

Mads Kiilerich
diff: drop "confirm to show potentially huge diff" click-through

It is obvious from the context that the diff was cut off to use resources efficiently.
The user clicked "Show full diff" because he wanted the diff anyway. Asking
twice is just annoying and serves no purpose.
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("""<span class="error-message">"""
                             """Please enter a number</span><br />""")

    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("""<span class="error-message">The LDAP Login"""
                             """ attribute of the CN must be specified""")

    def test_ldap_login(self):
        pass

    def test_ldap_login_incorrect(self):
        pass