diff --git a/.travis.yml b/.travis.yml index 433c6c8..7ccc65f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ before_install: - sudo /sbin/ifconfig - sudo apt-get update -qq - sudo rm /etc/dpkg/dpkg.cfg.d/multiarch - - sudo ./tests/cfg/deploy.sh + - sudo ./tests/test_env/deploy.sh language: python python: diff --git a/tests/cfg/roles.yml b/tests/cfg/roles.yml new file mode 100644 index 0000000..a6ca291 --- /dev/null +++ b/tests/cfg/roles.yml @@ -0,0 +1,48 @@ +admin-lv3: + display_name: Administrators Level 3 + LC_admins: True + backends: + - backend_name: ldap + groups: + - cn=dns admins,ou=group,dc=example,dc=com + - cn=nagios admins,ou=group,dc=example,dc=com + - cn=puppet admins,ou=group,dc=example,dc=com + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users + - Administrators + - Domain Controllers + +admin-lv2: + display_name: Administrators Level 2 + backends: + - backend_name: ldap + groups: + - cn=nagios admins,ou=group,dc=example,dc=com + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users + +developpers: + diplay_name: Developpers + backends: + - backend_name: ldap + groups: + - cn=nagios user,ou=group,dc=example,dc=com + - cn=developpers,ou=group,dc=example,dc=com + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users + +users: + diplay_name: Simple Users + backends: + - backend_name: ldap + groups: + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users diff --git a/tests/cfg/roles_content_dump.yml b/tests/cfg/roles_content_dump.yml new file mode 100644 index 0000000..d1a2cf7 --- /dev/null +++ b/tests/cfg/roles_content_dump.yml @@ -0,0 +1,20 @@ +users2: + diplay_name: Simple Users2 + backends: + - backend_name: ldap + groups: + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users + +users: + diplay_name: Simple Users + LC_admins: True + backends: + - backend_name: ldap + groups: + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users diff --git a/tests/cfg/roles_key_dump.yml b/tests/cfg/roles_key_dump.yml new file mode 100644 index 0000000..bab1745 --- /dev/null +++ b/tests/cfg/roles_key_dump.yml @@ -0,0 +1,26 @@ +admin-lv2: + display_name: Administrators Level 3 + LC_admins: True + backends: + - backend_name: ldap + groups: + - cn=dns admins,ou=group,dc=example,dc=com + - cn=nagios admins,ou=group,dc=example,dc=com + - cn=puppet admins,ou=group,dc=example,dc=com + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users + - Administrators + - Domain Controllers + +admin-lv2: + display_name: Administrators Level 2 + backends: + - backend_name: ldap + groups: + - cn=nagios admins,ou=group,dc=example,dc=com + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users diff --git a/tests/cfg/roles_missing_diplay_name.yml b/tests/cfg/roles_missing_diplay_name.yml new file mode 100644 index 0000000..4a97628 --- /dev/null +++ b/tests/cfg/roles_missing_diplay_name.yml @@ -0,0 +1,47 @@ +admin-lv3: + display_name: Administrators Level 3 + LC_admins: True + backends: + - backend_name: ldap + groups: + - cn=dns admins,ou=group,dc=example,dc=com + - cn=nagios admins,ou=group,dc=example,dc=com + - cn=puppet admins,ou=group,dc=example,dc=com + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users + - Administrators + - Domain Controllers + +admin-lv2: + display_name: Administrators Level 2 + backends: + - backend_name: ldap + groups: + - cn=nagios admins,ou=group,dc=example,dc=com + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users + +developpers: + backends: + - backend_name: ldap + groups: + - cn=nagios user,ou=group,dc=example,dc=com + - cn=developpers,ou=group,dc=example,dc=com + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users + +users: + diplay_name: Simple Users + backends: + - backend_name: ldap + groups: + - cn=users,ou=group,dc=example,dc=com + - backend_name: ad + groups: + - Domain Users diff --git a/tests/test_Roles.py b/tests/test_Roles.py new file mode 100644 index 0000000..5df076a --- /dev/null +++ b/tests/test_Roles.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from __future__ import with_statement +from __future__ import unicode_literals + +import pytest +import sys +from ldapcherry.roles import Roles +from ldapcherry.pyyamlwrapper import DumplicatedKey, RelationError + + +class TestError(object): + + def testNominal(self): + inv = Roles('./tests/cfg/roles.yml') + print inv.roles + return True + + def testMissingDisplayName(self): + try: + inv = Roles('./cfg/roles_missing_diplay_name.yml') + except MissingKey: + return + else: + raise AssertionError("expected an exception") + + def testRoleKeyDuplication(self): + try: + inv = Roles('./tests/cfg/roles_key_dup.yml') + except DumplicateRoleKey: + return + else: + raise AssertionError("expected an exception") + + def testRoleContentDuplication(self): + try: + inv = Roles('./tests/cfg/roles_content_dump.yml') + except DumplicateRoleContent: + return + else: + raise AssertionError("expected an exception") + diff --git a/tests/cfg/deploy.sh b/tests/test_env/deploy.sh similarity index 100% rename from tests/cfg/deploy.sh rename to tests/test_env/deploy.sh diff --git a/tests/cfg/etc/default/slapd b/tests/test_env/etc/default/slapd similarity index 100% rename from tests/cfg/etc/default/slapd rename to tests/test_env/etc/default/slapd diff --git a/tests/cfg/etc/ldap/content.ldif b/tests/test_env/etc/ldap/content.ldif similarity index 100% rename from tests/cfg/etc/ldap/content.ldif rename to tests/test_env/etc/ldap/content.ldif diff --git a/tests/cfg/etc/ldap/slapd.d/cn=config.ldif b/tests/test_env/etc/ldap/slapd.d/cn=config.ldif similarity index 100% rename from tests/cfg/etc/ldap/slapd.d/cn=config.ldif rename to tests/test_env/etc/ldap/slapd.d/cn=config.ldif diff --git a/tests/cfg/etc/ldap/slapd.d/cn=config/cn=module{0}.ldif b/tests/test_env/etc/ldap/slapd.d/cn=config/cn=module{0}.ldif similarity index 100% rename from tests/cfg/etc/ldap/slapd.d/cn=config/cn=module{0}.ldif rename to tests/test_env/etc/ldap/slapd.d/cn=config/cn=module{0}.ldif diff --git a/tests/cfg/etc/ldap/slapd.d/cn=config/cn=schema.ldif b/tests/test_env/etc/ldap/slapd.d/cn=config/cn=schema.ldif similarity index 100% rename from tests/cfg/etc/ldap/slapd.d/cn=config/cn=schema.ldif rename to tests/test_env/etc/ldap/slapd.d/cn=config/cn=schema.ldif diff --git a/tests/cfg/etc/ldap/slapd.d/cn=config/cn=schema/cn={0}core.ldif b/tests/test_env/etc/ldap/slapd.d/cn=config/cn=schema/cn={0}core.ldif similarity index 100% rename from tests/cfg/etc/ldap/slapd.d/cn=config/cn=schema/cn={0}core.ldif rename to tests/test_env/etc/ldap/slapd.d/cn=config/cn=schema/cn={0}core.ldif diff --git a/tests/cfg/etc/ldap/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif b/tests/test_env/etc/ldap/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif similarity index 100% rename from tests/cfg/etc/ldap/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif rename to tests/test_env/etc/ldap/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif diff --git a/tests/cfg/etc/ldap/slapd.d/cn=config/cn=schema/cn={2}nis.ldif b/tests/test_env/etc/ldap/slapd.d/cn=config/cn=schema/cn={2}nis.ldif similarity index 100% rename from tests/cfg/etc/ldap/slapd.d/cn=config/cn=schema/cn={2}nis.ldif rename to tests/test_env/etc/ldap/slapd.d/cn=config/cn=schema/cn={2}nis.ldif diff --git a/tests/cfg/etc/ldap/slapd.d/cn=config/cn=schema/cn={3}inetorgperson.ldif b/tests/test_env/etc/ldap/slapd.d/cn=config/cn=schema/cn={3}inetorgperson.ldif similarity index 100% rename from tests/cfg/etc/ldap/slapd.d/cn=config/cn=schema/cn={3}inetorgperson.ldif rename to tests/test_env/etc/ldap/slapd.d/cn=config/cn=schema/cn={3}inetorgperson.ldif diff --git a/tests/cfg/etc/ldap/slapd.d/cn=config/olcBackend={0}hdb.ldif b/tests/test_env/etc/ldap/slapd.d/cn=config/olcBackend={0}hdb.ldif similarity index 100% rename from tests/cfg/etc/ldap/slapd.d/cn=config/olcBackend={0}hdb.ldif rename to tests/test_env/etc/ldap/slapd.d/cn=config/olcBackend={0}hdb.ldif diff --git a/tests/cfg/etc/ldap/slapd.d/cn=config/olcDatabase={-1}frontend.ldif b/tests/test_env/etc/ldap/slapd.d/cn=config/olcDatabase={-1}frontend.ldif similarity index 100% rename from tests/cfg/etc/ldap/slapd.d/cn=config/olcDatabase={-1}frontend.ldif rename to tests/test_env/etc/ldap/slapd.d/cn=config/olcDatabase={-1}frontend.ldif diff --git a/tests/cfg/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif b/tests/test_env/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif similarity index 100% rename from tests/cfg/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif rename to tests/test_env/etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif diff --git a/tests/cfg/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif b/tests/test_env/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif similarity index 100% rename from tests/cfg/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif rename to tests/test_env/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif diff --git a/tests/cfg/etc/ldap/ssl/TEST-cacert.pem b/tests/test_env/etc/ldap/ssl/TEST-cacert.pem similarity index 100% rename from tests/cfg/etc/ldap/ssl/TEST-cacert.pem rename to tests/test_env/etc/ldap/ssl/TEST-cacert.pem diff --git a/tests/cfg/etc/ldap/ssl/ldap@dnscherry.org-cert.pem b/tests/test_env/etc/ldap/ssl/ldap@dnscherry.org-cert.pem similarity index 100% rename from tests/cfg/etc/ldap/ssl/ldap@dnscherry.org-cert.pem rename to tests/test_env/etc/ldap/ssl/ldap@dnscherry.org-cert.pem diff --git a/tests/cfg/etc/ldap/ssl/ldap@dnscherry.org-key.pem b/tests/test_env/etc/ldap/ssl/ldap@dnscherry.org-key.pem similarity index 100% rename from tests/cfg/etc/ldap/ssl/ldap@dnscherry.org-key.pem rename to tests/test_env/etc/ldap/ssl/ldap@dnscherry.org-key.pem diff --git a/tests/cfg/etc/ldapcherry/TEST-cacert.pem b/tests/test_env/etc/ldapcherry/TEST-cacert.pem similarity index 100% rename from tests/cfg/etc/ldapcherry/TEST-cacert.pem rename to tests/test_env/etc/ldapcherry/TEST-cacert.pem diff --git a/tests/cfg/etc/ldapcherry/ldapcherry.ini b/tests/test_env/etc/ldapcherry/ldapcherry.ini similarity index 100% rename from tests/cfg/etc/ldapcherry/ldapcherry.ini rename to tests/test_env/etc/ldapcherry/ldapcherry.ini diff --git a/tests/cfg/etc/ldapcherry/users.db b/tests/test_env/etc/ldapcherry/users.db similarity index 100% rename from tests/cfg/etc/ldapcherry/users.db rename to tests/test_env/etc/ldapcherry/users.db