From 2059c13bf1adbec16875cf81230ea4f78561136b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Wed, 30 Jan 2019 13:47:34 +0000 Subject: [PATCH] Lib/ldap/controls/sss: use str instead of basestring on Python 3 * Python 3 has no basestring, use str instead * Add a very minimal test to create a SSSRequestControl Fixes: https://github.com/python-ldap/python-ldap/issues/255 --- Lib/ldap/controls/sss.py | 6 ++++++ Tests/t_ldap_controls_sss.py | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 Tests/t_ldap_controls_sss.py diff --git a/Lib/ldap/controls/sss.py b/Lib/ldap/controls/sss.py index a5312d2..5cdfbda 100644 --- a/Lib/ldap/controls/sss.py +++ b/Lib/ldap/controls/sss.py @@ -12,6 +12,8 @@ ] +import sys + import ldap from ldap.ldapobject import LDAPObject from ldap.controls import (RequestControl, ResponseControl, @@ -20,6 +22,10 @@ from pyasn1.type import univ, namedtype, tag, namedval, constraint from pyasn1.codec.ber import encoder, decoder +PY2 = sys.version_info[0] <= 2 +if not PY2: + basestring = str + # SortKeyList ::= SEQUENCE OF SEQUENCE { # attributeType AttributeDescription, diff --git a/Tests/t_ldap_controls_sss.py b/Tests/t_ldap_controls_sss.py new file mode 100644 index 0000000..b510fcb --- /dev/null +++ b/Tests/t_ldap_controls_sss.py @@ -0,0 +1,17 @@ +import os +import unittest + +# Switch off processing .ldaprc or ldap.conf before importing _ldap +os.environ['LDAPNOINIT'] = '1' + +from ldap.controls import sss + + +class TestControlsPPolicy(unittest.TestCase): + def test_create_sss_request_control(self): + control = sss.SSSRequestControl(ordering_rules=['-uidNumber']) + self.assertEqual(control.ordering_rules, ['-uidNumber']) + + +if __name__ == '__main__': + unittest.main()