diff --git a/roles/ldap_server/molecule/default/tests/test_optional.py b/roles/ldap_server/molecule/default/tests/test_optional.py index a2d7b8b2e281a0d4e6197010e62ca3277408d476..4133ff49f715c1e765ed07f35cbe72e5429fc0bd 100644 --- a/roles/ldap_server/molecule/default/tests/test_optional.py +++ b/roles/ldap_server/molecule/default/tests/test_optional.py @@ -2,6 +2,8 @@ import os import testinfra.utils.ansible_runner +from helpers import parse_ldif + testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('parameters-optional') @@ -149,10 +151,8 @@ def test_services_login_entries(host): with host.sudo(): - entries = host.run("ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -s one -b ou=services,dc=local '(objectClass=simpleSecurityObject)'") - - assert entries.rc == 0 - assert entries.stdout == """dn: cn=consumer1,ou=services,dc=local + expected_entries = parse_ldif(""" +dn: cn=consumer1,ou=services,dc=local objectClass: applicationProcess objectClass: simpleSecurityObject userPassword:: Y29uc3VtZXIxcGFzc3dvcmQ= @@ -163,8 +163,12 @@ objectClass: applicationProcess objectClass: simpleSecurityObject userPassword:: Y29uc3VtZXIycGFzc3dvcmQ= cn: consumer2 +""") -""" + entries = host.run("ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -s one -b ou=services,dc=local '(objectClass=simpleSecurityObject)'") + + assert entries.rc == 0 + assert parse_ldif(entries.stdout) == expected_entries def test_group_entries(host): @@ -174,10 +178,8 @@ def test_group_entries(host): with host.sudo(): - entries = host.run("ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -s one -b ou=groups,dc=local '(objectClass=groupOfUniqueNames)'") - - assert entries.rc == 0 - assert entries.stdout == """dn: cn=group1,ou=groups,dc=local + expected_entries = parse_ldif(""" +dn: cn=group1,ou=groups,dc=local objectClass: groupOfUniqueNames uniqueMember: cn=NONE cn: group1 @@ -186,8 +188,12 @@ dn: cn=group2,ou=groups,dc=local objectClass: groupOfUniqueNames uniqueMember: cn=NONE cn: group2 +""") + + entries = host.run("ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -s one -b ou=groups,dc=local '(objectClass=groupOfUniqueNames)'") -""" + assert entries.rc == 0 + assert parse_ldif(entries.stdout) == expected_entries def test_user_supplied_entries(host): @@ -197,22 +203,24 @@ def test_user_supplied_entries(host): with host.sudo(): - john_doe = host.run("ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -s base -b uid=john,dc=local") - assert john_doe.rc == 0 - assert sorted(john_doe.stdout.strip().split("\n")) == sorted("""dn: uid=john,dc=local + expected_entries = parse_ldif(""" +dn: uid=john,dc=local objectClass: inetOrgPerson objectClass: simpleSecurityObject userPassword:: am9obnBhc3N3b3Jk cn: John Doe sn: Doe -uid: john""".split("\n")) +uid: john - jane_doe = host.run("ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -s base -b uid=jane,dc=local") - assert jane_doe.rc == 0 - assert sorted(jane_doe.stdout.strip().split("\n")) == sorted("""dn: uid=jane,dc=local +dn: uid=jane,dc=local objectClass: inetOrgPerson objectClass: simpleSecurityObject userPassword:: amFuZXBhc3N3b3Jk cn: Jane Doe sn: Doe -uid: jane""".split("\n")) +uid: jane""") + + entries = host.run("ldapsearch -H ldapi:/// -Q -LLL -Y EXTERNAL -b dc=local '(|(entrydn=uid=john,dc=local)(entrydn=uid=jane,dc=local))'") + + assert entries.rc == 0 + assert parse_ldif(entries.stdout) == expected_entries