Browse Source

Issue: 48055 - CI test-(Plugin configuration should throw proper error messages if not configured properly)

CI test-(Plugin configuration should throw proper error messages if not configured properly)

Relates: https://pagure.io/389-ds-base/issue/48055

Author: aborah

Reviewed by: Simon Pichugin
Anuj Borah 6 years ago
parent
commit
723b88a27b
1 changed files with 58 additions and 0 deletions
  1. 58 0
      dirsrvtests/tests/suites/automember_plugin/configuration_test.py

+ 58 - 0
dirsrvtests/tests/suites/automember_plugin/configuration_test.py

@@ -0,0 +1,58 @@
+# --- BEGIN COPYRIGHT BLOCK ---
+# Copyright (C) 2019 Red Hat, Inc.
+# All rights reserved.
+#
+# License: GPL (version 3 or any later version).
+# See LICENSE for details.
+# --- END COPYRIGHT BLOCK ---
+
+import os
+import pytest
+
+from lib389.topologies import topology_st as topo
+from lib389.plugins import AutoMembershipPlugin, AutoMembershipDefinitions, MemberOfPlugin
+import ldap
+
+pytestmark = pytest.mark.tier1
+
+
[email protected]
+def test_configuration(topo):
+    """
+    Automembership plugin and mixed in the plugin configuration
+    :id: 45a5a8f8-e800-11e8-ab16-8c16451d917b
+    :setup: Single Instance
+    :steps:
+        1. Automembership plugin fails in a MMR setup, if data and config
+        area mixed in the plugin configuration
+        2. Plugin configuration should throw proper error messages if not configured properly
+    :expected results:
+        1. Should success
+        2. Should success
+    """
+    # Configure pluginConfigArea for PLUGIN_AUTO
+    AutoMembershipPlugin(topo.standalone).set("nsslapd-pluginConfigArea", 'cn=config')
+    # Enable MemberOf plugin
+    MemberOfPlugin(topo.standalone).enable()
+    topo.standalone.restart()
+    # Add invalid configuration, which mixes data and config area: All will fail
+    automembers = AutoMembershipDefinitions(topo.standalone)
+    with pytest.raises(ldap.UNWILLING_TO_PERFORM):
+        automembers.create(properties={
+            'cn': 'autouserGroups',
+            'autoMemberScope': f'ou=Employees,cn=config',
+            'autoMemberFilter': "objectclass=posixAccount",
+            'autoMemberDefaultGroup': [f'cn=SuffDef1,ou=autouserGroups,cn=config',
+                                       f'cn=SuffDef2,ou=autouserGroups,cn=config'],
+            'autoMemberGroupingAttr': 'member:dn'
+        })
+    # Search in error logs
+    assert topo.standalone.ds_error_log.match('.*ERR - auto-membership-plugin - '
+                                              'automember_parse_config_entry - The default group '
+                                              '"cn=SuffDef1,ou=autouserGroups,cn=config" '
+                                              'can not be a child of the plugin config area "cn=config"')
+
+
+if __name__ == "__main__":
+    CURRENT_FILE = os.path.realpath(__file__)
+    pytest.main("-s -v %s" % CURRENT_FILE)