summaryrefslogtreecommitdiffstats
path: root/ipatests/test_integration
diff options
context:
space:
mode:
authorOleg Fayans <ofayans@redhat.com>2016-04-06 10:46:58 +0200
committerMartin Basti <mbasti@redhat.com>2016-04-20 17:59:11 +0200
commit1974f20aec8de61d0e8d5a550df6a5fabd4b383a (patch)
tree830da6c8e9ec0b65db3f9747c51cf54590f339ae /ipatests/test_integration
parent5b81435ae2422ae5c8afe26ec40eaf8b36d18359 (diff)
downloadfreeipa-1974f20aec8de61d0e8d5a550df6a5fabd4b383a.tar.gz
freeipa-1974f20aec8de61d0e8d5a550df6a5fabd4b383a.tar.xz
freeipa-1974f20aec8de61d0e8d5a550df6a5fabd4b383a.zip
Improve reporting of failed tests in topology test suite
https://fedorahosted.org/freeipa/ticket/5772 Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
Diffstat (limited to 'ipatests/test_integration')
-rw-r--r--ipatests/test_integration/test_topology.py39
1 files changed, 21 insertions, 18 deletions
diff --git a/ipatests/test_integration/test_topology.py b/ipatests/test_integration/test_topology.py
index 8119aa9d7..c434c6c44 100644
--- a/ipatests/test_integration/test_topology.py
+++ b/ipatests/test_integration/test_topology.py
@@ -11,6 +11,7 @@ from ipatests.test_integration.base import IntegrationTest
from ipatests.test_integration import tasks
from ipatests.test_integration.env_config import get_global_config
from ipalib.constants import DOMAIN_SUFFIX_NAME
+from ipatests.util import assert_deepequal
config = get_global_config()
reasoning = "Topology plugin disabled due to domain level 0"
@@ -61,15 +62,16 @@ class TestTopologyOptions(IntegrationTest):
"""
tasks.kinit_admin(self.master)
result1 = self.master.run_command(['ipa', 'topologysegment-find',
- DOMAIN_SUFFIX_NAME])
+ DOMAIN_SUFFIX_NAME]).stdout_text
first_segment_name = "%s-to-%s" % (self.master.hostname,
self.replicas[0].hostname)
- output1 = result1.stdout_text
- firstsegment = self.tokenize_topologies(output1)[0]
- assert(firstsegment['name'] == first_segment_name)
- assert(self.noentries_re.search(output1).group(1) == "1")
- assert(firstsegment['leftnode'] == self.master.hostname)
- assert(firstsegment['rightnode'] == self.replicas[0].hostname)
+ expected_segment = {
+ 'connectivity': 'both',
+ 'leftnode': self.master.hostname,
+ 'name': first_segment_name,
+ 'rightnode': self.replicas[0].hostname}
+ firstsegment = self.tokenize_topologies(result1)[0]
+ assert_deepequal(expected_segment, firstsegment)
tasks.install_replica(self.master, self.replicas[1], setup_ca=False,
setup_dns=False)
# We need to make sure topology information is consistent across all
@@ -81,16 +83,17 @@ class TestTopologyOptions(IntegrationTest):
result4 = self.replicas[1].run_command(['ipa', 'topologysegment-find',
DOMAIN_SUFFIX_NAME])
segments = self.tokenize_topologies(result2.stdout_text)
- assert(len(segments) == 2)
- assert(result2.stdout_text == result3.stdout_text)
- assert(result3.stdout_text == result4.stdout_text)
+ assert(len(segments) == 2), "Unexpected number of segments found"
+ assert_deepequal(result2.stdout_text, result3.stdout_text)
+ assert_deepequal(result3.stdout_text, result4.stdout_text)
# Now let's check that uninstalling the replica will update the topology
# info on the rest of replicas.
tasks.uninstall_master(self.replicas[1])
tasks.clean_replication_agreement(self.master, self.replicas[1])
result5 = self.master.run_command(['ipa', 'topologysegment-find',
DOMAIN_SUFFIX_NAME])
- assert(self.noentries_re.search(result5.stdout_text).group(1) == "1")
+ num_entries = self.noentries_re.search(result5.stdout_text).group(1)
+ assert(num_entries == "1"), "Incorrect number of entries displayed"
def test_add_remove_segment(self):
"""
@@ -110,8 +113,9 @@ class TestTopologyOptions(IntegrationTest):
assert err == "", err
# Make sure the new segment is shown by `ipa topologysegment-find`
result1 = self.master.run_command(['ipa', 'topologysegment-find',
- DOMAIN_SUFFIX_NAME])
- assert(result1.stdout_text.find(segment['name']) > 0)
+ DOMAIN_SUFFIX_NAME]).stdout_text
+ assert(segment['name'] in result1), (
+ "%s: segment not found" % segment['name'])
# Remove master <-> replica2 segment and make sure that the changes get
# there through replica1
deleteme = "%s-to-%s" % (self.master.hostname,
@@ -120,17 +124,16 @@ class TestTopologyOptions(IntegrationTest):
assert returncode == 0, error
# make sure replica1 does not have segment that was deleted on master
result3 = self.replicas[0].run_command(['ipa', 'topologysegment-find',
- DOMAIN_SUFFIX_NAME])
- assert(result3.stdout_text.find(deleteme) < 0)
+ DOMAIN_SUFFIX_NAME]).stdout_text
+ assert(deleteme not in result3), "%s: segment still exists" % deleteme
# Create test data on master and make sure it gets all the way down to
# replica2 through replica1
self.master.run_command(['ipa', 'user-add', 'someuser',
'--first', 'test',
'--last', 'user'])
time.sleep(60) # replication requires some time
- users_on_replica2 = self.replicas[1].run_command(['ipa',
- 'user-find'])
- assert(users_on_replica2.find('someuser') > 0)
+ result4 = self.replicas[1].run_command(['ipa', 'user-find'])
+ assert('someuser' in result4.stdout_text), 'User not found: someuser'
# We end up having a line topology: master <-> replica1 <-> replica2
def test_remove_the_only_connection(self):