Files @ b19b1723ff10
Branch filter:

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

Mads Kiilerich
pullrequest: pullrequest from changelog view

It seems like it didn't work ... perhaps because I broke it. But now we clean
it up and make it work:

Use rev_end as the revision to merge. We don't know where to merge ... but
start_rev cannot be used for that.

This might to some extent have been working before ... but we prefer to clean
it up and start over again when the normal merge workflow is fully working.
from rhodecode.tests import *
from rhodecode.model.db import RhodeCodeSetting
from nose.plugins.skip import SkipTest

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):
        self.log_user()
        response = self.app.get(url(controller='admin/ldap_settings',
                                    action='index'))
        self.assertTrue('LDAP administration' in response.body)

    def test_ldap_save_settings(self):
        self.log_user()
        if skip_ldap_test:
            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(self):
        self.log_user()
        if skip_ldap_test:
            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':'' })

        self.assertTrue("""<span class="error-message">The LDAP Login"""
                        """ attribute of the CN must be specified""" in
                        response.body)



        self.assertTrue("""<span class="error-message">Please """
                        """enter a number</span>""" in response.body)

    def test_ldap_login(self):
        pass

    def test_ldap_login_incorrect(self):
        pass