ofayans's pull request #52: "Removed incorrect check for returncode" was opened

PR body:
"""
The server installation in most cases returns response code 0 no matter what
happens except for really severe errors. In this case when we try to uninstall
the middle replica of a line topology, it fails, notifies us that we should use
'--ignore-topology-disconnect', but returns 0

https://fedorahosted.org/freeipa/ticket/3230
"""

See the full pull-request at https://github.com/freeipa/freeipa/pull/52
... or pull the PR as Git branch:
git remote add ghfreeipa https://github.com/freeipa/freeipa
git fetch ghfreeipa pull/52/head:pr52
git checkout pr52
From c0c274d9873c5be708a2a6e54356f7e611c4b330 Mon Sep 17 00:00:00 2001
From: Oleg Fayans <ofay...@redhat.com>
Date: Fri, 2 Sep 2016 15:24:40 +0200
Subject: [PATCH] Removed incorrect check for returncode

The server installation in most cases returns response code 0 no matter what
happens except for really severe errors. In this case when we try to uninstall
the middle replica of a line topology, it fails, notifies us that we should use
'--ignore-topology-disconnect', but returns 0

https://fedorahosted.org/freeipa/ticket/3230
---
 ipatests/test_integration/tasks.py                  |  2 +-
 ipatests/test_integration/test_replica_promotion.py | 10 ++++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/ipatests/test_integration/tasks.py b/ipatests/test_integration/tasks.py
index c60d436..db99bbb 100644
--- a/ipatests/test_integration/tasks.py
+++ b/ipatests/test_integration/tasks.py
@@ -1190,7 +1190,7 @@ def run_server_del(host, server_to_delete, force=False,
 def assert_error(result, stderr_text, returncode=None):
     "Assert that `result` command failed and its stderr contains `stderr_text`"
     assert stderr_text in result.stderr_text, result.stderr_text
-    if returncode:
+    if returncode is not None:
         assert result.returncode == returncode
     else:
         assert result.returncode > 0
diff --git a/ipatests/test_integration/test_replica_promotion.py b/ipatests/test_integration/test_replica_promotion.py
index 3e62f92..e06cafd 100644
--- a/ipatests/test_integration/test_replica_promotion.py
+++ b/ipatests/test_integration/test_replica_promotion.py
@@ -348,10 +348,12 @@ def test_replica_uninstallation_prohibited(self):
         result = self.replicas[0].run_command(['ipa-server-install',
                                                '--uninstall', '-U'],
                                               raiseonerr=False)
-        assert(result.returncode > 0), ("The replica was removed without "
-                                         "'--ignore-topology-disconnect' option")
-        assert("Uninstallation leads to disconnected topology"
-               in result.stdout_text), ("Expected error message was not found")
+        # Due to ticket 3230 server installation/uninstallation always returns
+        # 0 unless an uncaught exception occurs. Once this issue is properly
+        # addressed, please care to change expected return code in the
+        # following assert from 0 to something else.
+        assert_error(result, "Removal of '%s' leads to disconnected"
+                             " topology" % self.replicas[0].hostname, 0)
         self.replicas[0].run_command(['ipa-server-install', '--uninstall',
                                       '-U', '--ignore-topology-disconnect'])
 
-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to