summaryrefslogtreecommitdiffstats
path: root/ipatests
diff options
context:
space:
mode:
authorGabe <redhatrises@gmail.com>2015-02-26 09:56:22 -0700
committerTomas Babej <tbabej@redhat.com>2015-02-26 20:57:49 +0100
commitae4ee6b53376bb7f3d1b4707c4e105c91b5cd8ab (patch)
tree21d0700088a4ffc1692bdf920d7d47186cf89726 /ipatests
parentc75025df8cd9b634ffe464e07ba23a2ee99b3e2d (diff)
downloadfreeipa-ae4ee6b53376bb7f3d1b4707c4e105c91b5cd8ab.tar.gz
freeipa-ae4ee6b53376bb7f3d1b4707c4e105c91b5cd8ab.tar.xz
freeipa-ae4ee6b53376bb7f3d1b4707c4e105c91b5cd8ab.zip
ipatests: Add tests for valid and invalid ipa-advise
- Add test for invalid run of the ipa-advise command - Add tests for valid runs of the ipa-advise command https://fedorahosted.org/freeipa/ticket/4029 Reviewed-By: Tomas Babej <tbabej@redhat.com>
Diffstat (limited to 'ipatests')
-rw-r--r--ipatests/test_integration/test_advise.py134
1 files changed, 134 insertions, 0 deletions
diff --git a/ipatests/test_integration/test_advise.py b/ipatests/test_integration/test_advise.py
new file mode 100644
index 000000000..b5abe30a5
--- /dev/null
+++ b/ipatests/test_integration/test_advise.py
@@ -0,0 +1,134 @@
+# Authors:
+# Gabe Alford <redhatrises@gmail.com>
+#
+# Copyright (C) 2013 Red Hat
+# see file 'COPYING' for use and warranty information
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# FIXME: Pylint errors
+# pylint: disable=no-member
+
+import re
+from ipatests.test_integration import tasks
+from ipatests.test_integration.base import IntegrationTest
+
+
+def run_advice(master, advice_id, advice_regex, raiseerr):
+ # Obtain the advice from the server
+ tasks.kinit_admin(master)
+ result = master.run_command(['ipa-advise', advice_id],
+ raiseonerr=raiseerr)
+
+ if not result.stdout_text:
+ advice = result.stderr_text
+ else:
+ advice = result.stdout_text
+
+ assert re.search(advice_regex, advice, re.S)
+
+
+class TestAdvice(IntegrationTest):
+ """
+ Tests ipa-advise output.
+ """
+ advice_id = None
+ raiseerr = None
+ advice_regex = ''
+ topology = 'line'
+
+ def test_invalid_advice(self):
+ advice_id = 'invalid-advise-param'
+ advice_regex = "invalid[\s]+\'advice\'.*"
+ raiseerr = False
+
+ run_advice(self.master, advice_id, advice_regex, raiseerr)
+
+
+ def test_advice_FedoraAuthconfig(self):
+ advice_id = 'config-fedora-authconfig'
+ advice_regex = "\#\!\/bin\/sh.*" \
+ "authconfig[\s]+\-\-enableldap[\s]+" \
+ "\-\-ldapserver\=.*[\s]+\-\-enablerfc2307bis[\s]+" \
+ "\-\-enablekrb5"
+ raiseerr = True
+
+ run_advice(self.master, advice_id, advice_regex, raiseerr)
+
+
+ def test_advice_FreeBSDNSSPAM(self):
+ advice_id = 'config-freebsd-nss-pam-ldapd'
+ advice_regex = "\#\!\/bin\/sh.*" \
+ "pkg_add[\s]+\-r[\s]+nss\-pam\-ldapd[\s]+curl.*" \
+ "\/usr\/local\/etc\/rc\.d\/nslcd[\s]+restart"
+ raiseerr = True
+
+ run_advice(self.master, advice_id, advice_regex, raiseerr)
+
+
+ def test_advice_GenericNSSPAM(self):
+ advice_id = 'config-generic-linux-nss-pam-ldapd'
+ advice_regex = "\#\!\/bin\/sh.*" \
+ "apt\-get[\s]+\-y[\s]+install[\s]+wget[\s]+openssl[\s]+" \
+ "libnss\-ldapd[\s]+libpam\-ldapd[\s]+nslcd.*" \
+ "service[\s]+nscd[\s]+stop[\s]+\&\&[\s]+service[\s]+" \
+ "nslcd[\s]+restart"
+ raiseerr = True
+
+ run_advice(self.master, advice_id, advice_regex, raiseerr)
+
+
+ def test_advice_GenericSSSDBefore19(self):
+ advice_id = 'config-generic-linux-sssd-before-1-9'
+ advice_regex = "\#\!\/bin\/sh.*" \
+ "apt\-get[\s]+\-y[\s]+install sssd wget openssl.*" \
+ "service[\s]+sssd[\s]+start"
+ raiseerr = True
+
+ run_advice(self.master, advice_id, advice_regex, raiseerr)
+
+
+ def test_advice_RedHatNSS(self):
+ advice_id = 'config-redhat-nss-ldap'
+ advice_regex = "\#\!\/bin\/sh.*" \
+ "yum[\s]+install[\s]+\-y[\s]+wget[\s]+openssl[\s]+nss_ldap" \
+ "[\s]+authconfig.*authconfig[\s]+\-\-updateall" \
+ "[\s]+\-\-enableldap[\s]+\-\-enableldapauth[\s]+" \
+ "\-\-ldapserver=.*[\s]+\-\-ldapbasedn=.*"
+ raiseerr = True
+
+ run_advice(self.master, advice_id, advice_regex, raiseerr)
+
+
+ def test_advice_RedHatNSSPAM(self):
+ advice_id = 'config-redhat-nss-pam-ldapd'
+ advice_regex = "\#\!\/bin\/sh.*" \
+ "yum[\s]+install[\s]+\-y[\s]+wget[\s]+openssl[\s]+" \
+ "nss\-pam\-ldapd[\s]+pam_ldap[\s]+authconfig.*" \
+ "authconfig[\s]+\-\-updateall[\s]+" \
+ "\-\-enableldap[\s]+\-\-enableldapauth[\s]+" \
+ "\-\-ldapserver=.*[\s]+\-\-ldapbasedn=.*"
+ raiseerr = True
+
+ run_advice(self.master, advice_id, advice_regex, raiseerr)
+
+
+ def test_advice_RedHatSSSDBefore19(self):
+ advice_id = 'config-redhat-sssd-before-1-9'
+ advice_regex = "\#\!\/bin\/sh.*" \
+ "yum[\s]+install[\s]+\-y[\s]+sssd[\s]+authconfig[\s]+" \
+ "wget[\s]+openssl.*service[\s]+sssd[\s]+start"
+ raiseerr = True
+
+ run_advice(self.master, advice_id, advice_regex, raiseerr)