Fixed LDAPUrlExtensions.__eq__() and test suite
This commit is contained in:
		
							
								
								
									
										154
									
								
								Tests/Lib/test_ldapurl.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								Tests/Lib/test_ldapurl.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,154 @@
 | 
			
		||||
"""
 | 
			
		||||
Performes various tests for module ldapurl
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
import ldapurl
 | 
			
		||||
from ldapurl import *
 | 
			
		||||
 | 
			
		||||
print '\nTesting function isLDAPUrl():'
 | 
			
		||||
is_ldap_url_tests = {
 | 
			
		||||
  # Examples from RFC2255
 | 
			
		||||
  'ldap:///o=University%20of%20Michigan,c=US':1,
 | 
			
		||||
  'ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US':1,
 | 
			
		||||
  'ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,':1,
 | 
			
		||||
  'ldap://host.com:6666/o=University%20of%20Michigan,':1,
 | 
			
		||||
  'ldap://ldap.itd.umich.edu/c=GB?objectClass?one':1,
 | 
			
		||||
  'ldap://ldap.question.com/o=Question%3f,c=US?mail':1,
 | 
			
		||||
  'ldap://ldap.netscape.com/o=Babsco,c=US??(int=%5c00%5c00%5c00%5c04)':1,
 | 
			
		||||
  'ldap:///??sub??bindname=cn=Manager%2co=Foo':1,
 | 
			
		||||
  'ldap:///??sub??!bindname=cn=Manager%2co=Foo':1,
 | 
			
		||||
  # More examples from various sources
 | 
			
		||||
  'ldap://ldap.nameflow.net:1389/c%3dDE':1,
 | 
			
		||||
  'ldap://root.openldap.org/dc=openldap,dc=org':1,
 | 
			
		||||
  'ldap://root.openldap.org/dc=openldap,dc=org':1,
 | 
			
		||||
  'ldap://x500.mh.se/o=Mitthogskolan,c=se????1.2.752.58.10.2=T.61':1,
 | 
			
		||||
  'ldp://root.openldap.org/dc=openldap,dc=org':0,
 | 
			
		||||
  'ldap://localhost:1389/ou%3DUnstructured%20testing%20tree%2Cdc%3Dstroeder%2Cdc%3Dcom??one':1,
 | 
			
		||||
}
 | 
			
		||||
for ldap_url in is_ldap_url_tests.keys():
 | 
			
		||||
  result_is_ldap_url = isLDAPUrl(ldap_url)
 | 
			
		||||
  if result_is_ldap_url !=is_ldap_url_tests[ldap_url]:
 | 
			
		||||
    print 'isLDAPUrl("%s") returns %d instead of %d.' % (
 | 
			
		||||
      repr(ldap_url),result_is_ldap_url,is_ldap_url_tests[ldap_url]
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
print '\nTesting class LDAPUrl:'
 | 
			
		||||
parse_ldap_url_tests = [
 | 
			
		||||
  (
 | 
			
		||||
    'ldap://root.openldap.org/dc=openldap,dc=org',
 | 
			
		||||
    LDAPUrl(
 | 
			
		||||
      hostport='root.openldap.org',
 | 
			
		||||
      dn='dc=openldap,dc=org'
 | 
			
		||||
    )
 | 
			
		||||
  ),
 | 
			
		||||
  (
 | 
			
		||||
    'ldap://root.openldap.org/dc%3dboolean%2cdc%3dnet???%28objectClass%3d%2a%29',
 | 
			
		||||
    LDAPUrl(
 | 
			
		||||
      hostport='root.openldap.org',
 | 
			
		||||
      dn='dc=boolean,dc=net',
 | 
			
		||||
      filterstr='(objectClass=*)'
 | 
			
		||||
    )
 | 
			
		||||
  ),
 | 
			
		||||
  (
 | 
			
		||||
    'ldap://root.openldap.org/dc=openldap,dc=org??sub?',
 | 
			
		||||
    LDAPUrl(
 | 
			
		||||
      hostport='root.openldap.org',
 | 
			
		||||
      dn='dc=openldap,dc=org',
 | 
			
		||||
      scope=ldapurl.LDAP_SCOPE_SUBTREE
 | 
			
		||||
    )
 | 
			
		||||
  ),
 | 
			
		||||
  (
 | 
			
		||||
    'ldap://root.openldap.org/dc=openldap,dc=org??one?',
 | 
			
		||||
    LDAPUrl(
 | 
			
		||||
      hostport='root.openldap.org',
 | 
			
		||||
      dn='dc=openldap,dc=org',
 | 
			
		||||
      scope=ldapurl.LDAP_SCOPE_ONELEVEL
 | 
			
		||||
    )
 | 
			
		||||
  ),
 | 
			
		||||
  (
 | 
			
		||||
    'ldap://root.openldap.org/dc=openldap,dc=org??base?',
 | 
			
		||||
    LDAPUrl(
 | 
			
		||||
      hostport='root.openldap.org',
 | 
			
		||||
      dn='dc=openldap,dc=org',
 | 
			
		||||
      scope=ldapurl.LDAP_SCOPE_BASE
 | 
			
		||||
    )
 | 
			
		||||
  ),
 | 
			
		||||
  (
 | 
			
		||||
    'ldap://x500.mh.se/o=Mitthogskolan,c=se????1.2.752.58.10.2=T.61',
 | 
			
		||||
    LDAPUrl(
 | 
			
		||||
      hostport='x500.mh.se',
 | 
			
		||||
      dn='o=Mitthogskolan,c=se',
 | 
			
		||||
      extensions=LDAPUrlExtensions({
 | 
			
		||||
        '1.2.752.58.10.2':ldapurl.LDAPUrlExtension(
 | 
			
		||||
          critical=0,extype='1.2.752.58.10.2',exvalue='T.61'
 | 
			
		||||
        )
 | 
			
		||||
      })
 | 
			
		||||
    )
 | 
			
		||||
  ),
 | 
			
		||||
  (
 | 
			
		||||
    'ldap://localhost:12345/dc=stroeder,dc=com????!bindname=cn=Michael%2Cdc=stroeder%2Cdc=com,!X-BINDPW=secretpassword',
 | 
			
		||||
    LDAPUrl(
 | 
			
		||||
      hostport='localhost:12345',
 | 
			
		||||
      dn='dc=stroeder,dc=com',
 | 
			
		||||
      extensions=LDAPUrlExtensions({
 | 
			
		||||
        'bindname':LDAPUrlExtension(
 | 
			
		||||
          critical=1,extype='bindname',exvalue='cn=Michael,dc=stroeder,dc=com'
 | 
			
		||||
        ),
 | 
			
		||||
        'X-BINDPW':LDAPUrlExtension(
 | 
			
		||||
          critical=1,extype='X-BINDPW',exvalue='secretpassword'
 | 
			
		||||
        ),
 | 
			
		||||
      }),
 | 
			
		||||
    )
 | 
			
		||||
  ),
 | 
			
		||||
  (
 | 
			
		||||
    'ldap://localhost:54321/dc=stroeder,dc=com????bindname=cn=Michael%2Cdc=stroeder%2Cdc=com,X-BINDPW=secretpassword',
 | 
			
		||||
    LDAPUrl(
 | 
			
		||||
      hostport='localhost:54321',
 | 
			
		||||
      dn='dc=stroeder,dc=com',
 | 
			
		||||
      who='cn=Michael,dc=stroeder,dc=com',
 | 
			
		||||
      cred='secretpassword'
 | 
			
		||||
    )
 | 
			
		||||
  ),
 | 
			
		||||
  (
 | 
			
		||||
    'ldaps://localhost:12345/dc=stroeder,dc=com',
 | 
			
		||||
    LDAPUrl(
 | 
			
		||||
      urlscheme='ldaps',
 | 
			
		||||
      hostport='localhost:12345',
 | 
			
		||||
      dn='dc=stroeder,dc=com',
 | 
			
		||||
    ),
 | 
			
		||||
  ),
 | 
			
		||||
  (
 | 
			
		||||
    'ldapi://%2ftmp%2fopenldap2-1389/dc=stroeder,dc=com',
 | 
			
		||||
    LDAPUrl(
 | 
			
		||||
      urlscheme='ldapi',
 | 
			
		||||
      hostport='/tmp/openldap2-1389',
 | 
			
		||||
      dn='dc=stroeder,dc=com',
 | 
			
		||||
    ),
 | 
			
		||||
  ),
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
for ldap_url_str,test_ldap_url_obj in parse_ldap_url_tests:
 | 
			
		||||
#  print '\nTesting LDAP URL:',repr(ldap_url)
 | 
			
		||||
  ldap_url_obj = LDAPUrl(ldapUrl=ldap_url_str)
 | 
			
		||||
  print '#'*72
 | 
			
		||||
  print test_ldap_url_obj.unparse()
 | 
			
		||||
  if ldap_url_obj.__ne__(test_ldap_url_obj):
 | 
			
		||||
    print '-'*72
 | 
			
		||||
    print 'Parsing error! Attributes of LDAPUrl(%s) are:\n%s\ninstead of:\n%s' % (
 | 
			
		||||
      repr(ldap_url_str),
 | 
			
		||||
      repr(ldap_url_obj),
 | 
			
		||||
      repr(test_ldap_url_obj)
 | 
			
		||||
    )
 | 
			
		||||
  else:
 | 
			
		||||
    print 'Parsing ok'
 | 
			
		||||
    unparsed_ldap_url_str = test_ldap_url_obj.unparse()
 | 
			
		||||
    unparsed_ldap_url_obj = LDAPUrl(ldapUrl=unparsed_ldap_url_str)
 | 
			
		||||
    if unparsed_ldap_url_obj.__ne__(test_ldap_url_obj):
 | 
			
		||||
      print '-'*72
 | 
			
		||||
      print 'Unparsing error! Attributes of LDAPUrl(%s) are:\n%s\ninstead of:\n%s' % (
 | 
			
		||||
        repr(unparsed_ldap_url_str),
 | 
			
		||||
        repr(unparsed_ldap_url_obj),
 | 
			
		||||
        repr(test_ldap_url_obj)
 | 
			
		||||
      )
 | 
			
		||||
    else:
 | 
			
		||||
      print 'Unparsing ok'
 | 
			
		||||
		Reference in New Issue
	
	Block a user