diff options
| author | Lukas Slebodnik <lslebodn@redhat.com> | 2017-01-12 14:01:52 +0100 |
|---|---|---|
| committer | Lukas Slebodnik <lslebodn@redhat.com> | 2017-01-16 19:11:47 +0100 |
| commit | 1097a61a8d4a892e126d14631c1b80fc1a5ce976 (patch) | |
| tree | 8306eba8fafa02da35ef778c38f734f417bc24b3 /src/tests/intg | |
| parent | 73c9e3d710434857b5e13d5ccfc1f1245b1d2997 (diff) | |
| download | sssd-1097a61a8d4a892e126d14631c1b80fc1a5ce976.tar.gz sssd-1097a61a8d4a892e126d14631c1b80fc1a5ce976.tar.xz sssd-1097a61a8d4a892e126d14631c1b80fc1a5ce976.zip | |
intg: Use bytes for value of attributes in ldif
Python3 version of ldap module require string for name of attribute
but bytes for value of attribute. It was not a problem in python2
due to unicode changes in python3
Reviewed-by: Martin Basti <mbasti@redhat.com>
Diffstat (limited to 'src/tests/intg')
| -rw-r--r-- | src/tests/intg/ds_openldap.py | 24 | ||||
| -rw-r--r-- | src/tests/intg/ldap_ent.py | 46 | ||||
| -rw-r--r-- | src/tests/intg/test_enumeration.py | 8 | ||||
| -rw-r--r-- | src/tests/intg/test_ldap.py | 24 | ||||
| -rw-r--r-- | src/tests/intg/test_netgroup.py | 6 | ||||
| -rw-r--r-- | src/tests/intg/test_ts_cache.py | 14 |
6 files changed, 64 insertions, 58 deletions
diff --git a/src/tests/intg/ds_openldap.py b/src/tests/intg/ds_openldap.py index 0f58e5108..6a074c947 100644 --- a/src/tests/intg/ds_openldap.py +++ b/src/tests/intg/ds_openldap.py @@ -233,15 +233,15 @@ class DSOpenLDAP(DS): # modlist = [ (ldap.MOD_DELETE, "olcObjectClasses", - "{7}( 2.5.6.9 NAME 'groupOfNames' " - "DESC 'RFC2256: a group of names (DNs)' SUP top " - "STRUCTURAL MUST ( member $ cn ) MAY ( businessCategory $ " - "seeAlso $ owner $ ou $ o $ description ) )"), + b"{7}( 2.5.6.9 NAME 'groupOfNames' " + b"DESC 'RFC2256: a group of names (DNs)' SUP top " + b"STRUCTURAL MUST ( member $ cn ) MAY ( businessCategory $ " + b"seeAlso $ owner $ ou $ o $ description ) )"), (ldap.MOD_ADD, "olcObjectClasses", - "{7}( 2.5.6.9 NAME 'groupOfNames' " - "DESC 'RFC2256: a group of names (DNs)' SUP top " - "STRUCTURAL MUST ( cn ) MAY ( member $ businessCategory $ " - "seeAlso $ owner $ ou $ o $ description ) )"), + b"{7}( 2.5.6.9 NAME 'groupOfNames' " + b"DESC 'RFC2256: a group of names (DNs)' SUP top " + b"STRUCTURAL MUST ( cn ) MAY ( member $ businessCategory $ " + b"seeAlso $ owner $ ou $ o $ description ) )"), ] ldap_conn = ldap.initialize(ldapi_url) ldap_conn.simple_bind_s(self.admin_rdn + ",cn=config", self.admin_pw) @@ -254,15 +254,15 @@ class DSOpenLDAP(DS): ldap_conn = ldap.initialize(self.ldap_url) ldap_conn.simple_bind_s(self.admin_dn, self.admin_pw) ldap_conn.add_s(self.base_dn, [ - ("objectClass", ["dcObject", "organization"]), - ("o", "Example Company"), + ("objectClass", [b"dcObject", b"organization"]), + ("o", b"Example Company"), ]) ldap_conn.add_s("cn=Manager," + self.base_dn, [ - ("objectClass", "organizationalRole"), + ("objectClass", b"organizationalRole"), ]) for ou in ("Users", "Groups", "Netgroups", "Services", "Policies"): ldap_conn.add_s("ou=" + ou + "," + self.base_dn, [ - ("objectClass", ["top", "organizationalUnit"]), + ("objectClass", [b"top", b"organizationalUnit"]), ]) ldap_conn.unbind_s() diff --git a/src/tests/intg/ldap_ent.py b/src/tests/intg/ldap_ent.py index c912844b0..6b6d8f903 100644 --- a/src/tests/intg/ldap_ent.py +++ b/src/tests/intg/ldap_ent.py @@ -28,53 +28,54 @@ def user(base_dn, uid, uidNumber, gidNumber, """ Generate an RFC2307(bis) user add-modlist for passing to ldap.add* """ - uidNumber = str(uidNumber) - gidNumber = str(gidNumber) + uidNumber = str(uidNumber).encode('utf-8') + gidNumber = str(gidNumber).encode('utf-8') user = ( "uid=" + uid + ",ou=Users," + base_dn, [ - ('objectClass', ['top', 'inetOrgPerson', 'posixAccount']), - ('cn', [uidNumber if cn is None else cn]), - ('sn', ['User' if sn is None else sn]), + ('objectClass', [b'top', b'inetOrgPerson', b'posixAccount']), + ('cn', [uidNumber if cn is None else cn.encode('utf-8')]), + ('sn', [b'User' if sn is None else sn.encode('utf-8')]), ('uidNumber', [uidNumber]), ('gidNumber', [gidNumber]), - ('userPassword', ['Password' + uidNumber + ('userPassword', [b'Password' + uidNumber if userPassword is None - else userPassword]), - ('homeDirectory', ['/home/' + uid + else userPassword.encode('utf-8')]), + ('homeDirectory', [b'/home/' + uid.encode('utf-8') if homeDirectory is None - else homeDirectory]), - ('loginShell', ['/bin/bash' + else homeDirectory.encode('utf-8')]), + ('loginShell', [b'/bin/bash' if loginShell is None - else loginShell]), + else loginShell.encode('utf-8')]), ] ) if gecos is not None: - user[1].append(('gecos', [gecos])) + user[1].append(('gecos', [gecos.encode('utf-8')])) return user -def group(base_dn, cn, gidNumber, member_uids=[]): +def group(base_dn, cn, gidNumber, member_uids=()): """ Generate an RFC2307 group add-modlist for passing to ldap.add*. """ - gidNumber = str(gidNumber) + gidNumber = str(gidNumber).encode('utf-8') attr_list = [ - ('objectClass', ['top', 'posixGroup']), + ('objectClass', [b'top', b'posixGroup']), ('gidNumber', [gidNumber]) ] if len(member_uids) > 0: - attr_list.append(('memberUid', member_uids)) + mem_uids = [member.encode('utf-8') for member in member_uids] + attr_list.append(('memberUid', mem_uids)) return ("cn=" + cn + ",ou=Groups," + base_dn, attr_list) -def group_bis(base_dn, cn, gidNumber, member_uids=[], member_gids=[]): +def group_bis(base_dn, cn, gidNumber, member_uids=(), member_gids=()): """ Generate an RFC2307bis group add-modlist for passing to ldap.add*. """ - gidNumber = str(gidNumber) + gidNumber = str(gidNumber).encode('utf-8') attr_list = [ - ('objectClass', ['top', 'extensibleObject', 'groupOfNames']), + ('objectClass', [b'top', b'extensibleObject', b'groupOfNames']), ('gidNumber', [gidNumber]) ] member_list = [] @@ -83,7 +84,8 @@ def group_bis(base_dn, cn, gidNumber, member_uids=[], member_gids=[]): for gid in member_gids: member_list.append("cn=" + gid + ",ou=Groups," + base_dn) if len(member_list) > 0: - attr_list.append(('member', member_list)) + mem_list = [member.encode('utf-8') for member in member_list] + attr_list.append(('member', mem_list)) return ("cn=" + cn + ",ou=Groups," + base_dn, attr_list) @@ -92,11 +94,13 @@ def netgroup(base_dn, cn, triples=(), members=()): Generate an RFC2307bis netgroup add-modlist for passing to ldap.add*. """ attr_list = [ - ('objectClass', ['top', 'nisNetgroup']) + ('objectClass', [b'top', b'nisNetgroup']) ] if triples: + triples = [triple.encode('utf-8') for triple in triples] attr_list.append(('nisNetgroupTriple', triples)) if members: + members = [member.encode('utf-8') for member in members] attr_list.append(('memberNisNetgroup', members)) return ("cn=" + cn + ",ou=Netgroups," + base_dn, attr_list) diff --git a/src/tests/intg/test_enumeration.py b/src/tests/intg/test_enumeration.py index ece09f76c..5cb6c3e07 100644 --- a/src/tests/intg/test_enumeration.py +++ b/src/tests/intg/test_enumeration.py @@ -446,7 +446,7 @@ def test_add_remove_membership_rfc2307(ldap_conn, user_and_group_rfc2307): # Add user to group ent.assert_group_by_name("group", dict(mem=ent.contains_only())) ldap_conn.modify_s("cn=group,ou=Groups," + ldap_conn.ds_inst.base_dn, - [(ldap.MOD_REPLACE, "memberUid", "user")]) + [(ldap.MOD_REPLACE, "memberUid", b"user")]) time.sleep(INTERACTIVE_TIMEOUT) ent.assert_group_by_name("group", dict(mem=ent.contains_only("user"))) # Remove user from group @@ -462,19 +462,21 @@ def test_add_remove_membership_rfc2307_bis(ldap_conn, Test user and group membership addition and removal are reflected by SSSD, with RFC2307bis schema """ + base_dn_bytes = ldap_conn.ds_inst.base_dn.encode('utf-8') + time.sleep(INTERACTIVE_TIMEOUT/2) # Add user to group1 ent.assert_group_by_name("group1", dict(mem=ent.contains_only())) ldap_conn.modify_s("cn=group1,ou=Groups," + ldap_conn.ds_inst.base_dn, [(ldap.MOD_REPLACE, "member", - "uid=user,ou=Users," + ldap_conn.ds_inst.base_dn)]) + b"uid=user,ou=Users," + base_dn_bytes)]) time.sleep(INTERACTIVE_TIMEOUT) ent.assert_group_by_name("group1", dict(mem=ent.contains_only("user"))) # Add group1 to group2 ldap_conn.modify_s("cn=group2,ou=Groups," + ldap_conn.ds_inst.base_dn, [(ldap.MOD_REPLACE, "member", - "cn=group1,ou=Groups," + ldap_conn.ds_inst.base_dn)]) + b"cn=group1,ou=Groups," + base_dn_bytes)]) time.sleep(INTERACTIVE_TIMEOUT) ent.assert_group_by_name("group2", dict(mem=ent.contains_only("user"))) diff --git a/src/tests/intg/test_ldap.py b/src/tests/intg/test_ldap.py index bf25d9509..848cb4181 100644 --- a/src/tests/intg/test_ldap.py +++ b/src/tests/intg/test_ldap.py @@ -770,13 +770,13 @@ def test_extra_attribute_already_exists(ldap_conn, extra_attributes): user = 'user' extra_attribute = 'givenName' - given_name = 'unix_user' + given_name = b'unix_user' user_dn = "uid=" + user + ",ou=Users," + ldap_conn.ds_inst.base_dn - old = {'objectClass': ['top', 'inetOrgPerson', 'posixAccount']} - new = {'objectClass': ['top', 'inetOrgPerson', 'posixAccount', - 'extensibleObject']} + old = {'objectClass': [b'top', b'inetOrgPerson', b'posixAccount']} + new = {'objectClass': [b'top', b'inetOrgPerson', b'posixAccount', + b'extensibleObject']} ldif = ldap.modlist.modifyModlist(old, new) ldap_conn.modify_s(user_dn, ldif) @@ -848,9 +848,9 @@ def test_remove_user_from_group(ldap_conn, remove_user_from_group): dict(mem=ent.contains_only("user1", "user2"))) # removing of user2 from group1 - old = {'member': ["uid=user1,ou=Users,dc=example,dc=com", - "uid=user2,ou=Users,dc=example,dc=com"]} - new = {'member': ["uid=user1,ou=Users,dc=example,dc=com"]} + old = {'member': [b"uid=user1,ou=Users,dc=example,dc=com", + b"uid=user2,ou=Users,dc=example,dc=com"]} + new = {'member': [b"uid=user1,ou=Users,dc=example,dc=com"]} ldif = ldap.modlist.modifyModlist(old, new) ldap_conn.modify_s(group1_dn, ldif) @@ -863,7 +863,7 @@ def test_remove_user_from_group(ldap_conn, remove_user_from_group): ent.assert_group_by_name("group1", dict(mem=ent.contains_only("user1"))) # removing of user1 from group1 - old = {'member': ["uid=user1,ou=Users,dc=example,dc=com"]} + old = {'member': [b"uid=user1,ou=Users,dc=example,dc=com"]} new = {'member': []} ldif = ldap.modlist.modifyModlist(old, new) @@ -912,9 +912,9 @@ def test_remove_user_from_nested_group(ldap_conn, "user2"))) # removing of group2 from group3 - old = {'member': ["cn=group1,ou=Groups,dc=example,dc=com", - "cn=group2,ou=Groups,dc=example,dc=com"]} - new = {'member': ["cn=group1,ou=Groups,dc=example,dc=com"]} + old = {'member': [b"cn=group1,ou=Groups,dc=example,dc=com", + b"cn=group2,ou=Groups,dc=example,dc=com"]} + new = {'member': [b"cn=group1,ou=Groups,dc=example,dc=com"]} ldif = ldap.modlist.modifyModlist(old, new) ldap_conn.modify_s(group3_dn, ldif) @@ -933,7 +933,7 @@ def test_remove_user_from_nested_group(ldap_conn, dict(mem=ent.contains_only("user1"))) # removing of group1 from group3 - old = {'member': ["cn=group1,ou=Groups,dc=example,dc=com"]} + old = {'member': [b"cn=group1,ou=Groups,dc=example,dc=com"]} new = {'member': []} ldif = ldap.modlist.modifyModlist(old, new) diff --git a/src/tests/intg/test_netgroup.py b/src/tests/intg/test_netgroup.py index f1d801f48..3cf5dac2e 100644 --- a/src/tests/intg/test_netgroup.py +++ b/src/tests/intg/test_netgroup.py @@ -426,8 +426,8 @@ def test_removing_nested_netgroups(removing_nested_netgroups, ldap_conn): ('host2', 'user2', 'domain2')]) # removing of t2841_netgroup1 from t2841_netgroup3 - old = {'memberNisNetgroup': ["t2841_netgroup1", "t2841_netgroup2"]} - new = {'memberNisNetgroup': ["t2841_netgroup2"]} + old = {'memberNisNetgroup': [b"t2841_netgroup1", b"t2841_netgroup2"]} + new = {'memberNisNetgroup': [b"t2841_netgroup2"]} ldif = ldap.modlist.modifyModlist(old, new) ldap_conn.modify_s(netgrp_dn, ldif) @@ -448,7 +448,7 @@ def test_removing_nested_netgroups(removing_nested_netgroups, ldap_conn): assert netgroups == [('host2', 'user2', 'domain2')] # removing of t2841_netgroup2 from t2841_netgroup3 - old = {'memberNisNetgroup': ["t2841_netgroup2"]} + old = {'memberNisNetgroup': [b"t2841_netgroup2"]} new = {'memberNisNetgroup': []} ldif = ldap.modlist.modifyModlist(old, new) diff --git a/src/tests/intg/test_ts_cache.py b/src/tests/intg/test_ts_cache.py index c49a5c9c4..ce0a7c78d 100644 --- a/src/tests/intg/test_ts_cache.py +++ b/src/tests/intg/test_ts_cache.py @@ -319,7 +319,7 @@ def test_group_2307bis_update_same_attrs(ldap_conn, # modifyTimestamp attribute, but the attributes themselves will be the same # from sssd's point of view ldap_conn.modify_s("cn=group1,ou=Groups," + ldap_conn.ds_inst.base_dn, - [(ldap.MOD_ADD, "description", "group one")]) + [(ldap.MOD_ADD, "description", b"group one")]) # wait for slapd to change its database time.sleep(1) @@ -348,9 +348,9 @@ def test_group_2307bis_update_diff_attrs(ldap_conn, ldb_conn, "group1", ("user1", "user11", "user21")) + user_dn = "uid=user1,ou=Users," + ldap_conn.ds_inst.base_dn ldap_conn.modify_s("cn=group1,ou=Groups," + ldap_conn.ds_inst.base_dn, - [(ldap.MOD_DELETE, "member", - "uid=user1,ou=Users," + ldap_conn.ds_inst.base_dn)]) + [(ldap.MOD_DELETE, "member", user_dn.encode('utf-8'))]) # wait for slapd to change its database time.sleep(1) @@ -437,7 +437,7 @@ def test_group_2307_update_same_attrs(ldap_conn, # modifyTimestamp attribute, but the attributes themselves will be the same # from sssd's point of view ldap_conn.modify_s("cn=group1,ou=Groups," + ldap_conn.ds_inst.base_dn, - [(ldap.MOD_ADD, "description", "group one")]) + [(ldap.MOD_ADD, "description", b"group one")]) # wait for slapd to change its database time.sleep(1) @@ -467,7 +467,7 @@ def test_group_2307_update_diff_attrs(ldap_conn, ("user1", "user11", "user21")) ldap_conn.modify_s("cn=group1,ou=Groups," + ldap_conn.ds_inst.base_dn, - [(ldap.MOD_DELETE, "memberUid", "user1")]) + [(ldap.MOD_DELETE, "memberUid", b"user1")]) # wait for slapd to change its database time.sleep(1) @@ -548,7 +548,7 @@ def test_user_update_same_attrs(ldap_conn, # modifyTimestamp attribute, but the attributes themselves will be the same # from sssd's point of view ldap_conn.modify_s("uid=user1,ou=Users," + ldap_conn.ds_inst.base_dn, - [(ldap.MOD_ADD, "description", "user one")]) + [(ldap.MOD_ADD, "description", b"user one")]) # wait for slapd to change its database time.sleep(1) @@ -578,7 +578,7 @@ def test_user_update_diff_attrs(ldap_conn, # modifyTimestamp attribute, but the attributes themselves will be the same # from sssd's point of view ldap_conn.modify_s("uid=user1,ou=Users," + ldap_conn.ds_inst.base_dn, - [(ldap.MOD_REPLACE, "loginShell", "/bin/zsh")]) + [(ldap.MOD_REPLACE, "loginShell", b"/bin/zsh")]) # wait for slapd to change its database time.sleep(1) |
