diff options
author | nigoyal <nigoyal@redhat.com> | 2018-12-10 17:22:22 +0530 |
---|---|---|
committer | nigoyal <nigoyal@redhat.com> | 2018-12-12 14:59:08 +0530 |
commit | b3d51bb248f43d8607cd8a506de8182b0b3c72f3 (patch) | |
tree | 2d3d6e4d436bd548ef2b6cf7ceda770712410062 /tests | |
parent | 024f0f0bc9f8c969c8f5a3ec494cee0c019f1868 (diff) |
Fix error message substituions in 'test_arbiter' module
Several existing arbiter test cases have common bug,
where we substitute incorrect value in error messages
and do it in duplicated code.
So, move that code to separate method,
reusing it in test cases and fix substitution error.
Change-Id: I7787515a4e0cd50c688034dbb41649d96605b2ae
Diffstat (limited to 'tests')
-rw-r--r-- | tests/functional/common/arbiter/test_arbiter.py | 117 |
1 files changed, 52 insertions, 65 deletions
diff --git a/tests/functional/common/arbiter/test_arbiter.py b/tests/functional/common/arbiter/test_arbiter.py index 2aab199b..39c3ec78 100644 --- a/tests/functional/common/arbiter/test_arbiter.py +++ b/tests/functional/common/arbiter/test_arbiter.py @@ -74,6 +74,47 @@ class TestArbiterVolumeCreateExpandDelete(cns_baseclass.CnsBaseClass): self.addCleanup(heketi_ops.rm_arbiter_tag, node, server_url, source, source_id) + def verify_amount_and_proportion_of_arbiter_and_data_bricks( + self, vol_info, arbiter_bricks=1, data_bricks=2): + # Verify amount and proportion of arbiter and data bricks + bricks_list = vol_info['bricks']['brick'] + bricks = { + 'arbiter_list': [], + 'data_list': [], + 'arbiter_amount': 0, + 'data_amount': 0 + } + + for brick in bricks_list: + if int(brick['isArbiter']) == 1: + bricks['arbiter_list'].append(brick) + else: + bricks['data_list'].append(brick) + + bricks['arbiter_amount'] = len(bricks['arbiter_list']) + bricks['data_amount'] = len(bricks['data_list']) + + self.assertGreaterEqual( + bricks['arbiter_amount'], arbiter_bricks, + "Arbiter brick amount is expected to be Greater or Equal to %s. " + "Actual amount is '%s'." % ( + arbiter_bricks, bricks['arbiter_amount'])) + + self.assertGreaterEqual( + bricks['data_amount'], data_bricks, + "Data brick amount is expected to be Greater or Equal to %s. " + "Actual amount is '%s'." % (data_bricks, bricks['data_amount'])) + + self.assertEqual( + bricks['data_amount'], + (bricks['arbiter_amount'] * 2), + "Expected 1 arbiter brick per 2 data bricks. " + "Arbiter brick amount is '%s', Data brick amount is '%s'." % ( + bricks['arbiter_amount'], bricks['data_amount']) + ) + + return bricks + def test_arbiter_pvc_create(self): """Test case CNS-944""" @@ -86,25 +127,7 @@ class TestArbiterVolumeCreateExpandDelete(cns_baseclass.CnsBaseClass): # Get vol info vol_info = get_gluster_vol_info_by_pvc_name(self.node, self.pvc_name) - # Verify amount proportion of data and arbiter bricks - bricks = vol_info['bricks']['brick'] - arbiter_brick_amount = sum([int(b['isArbiter']) for b in bricks]) - data_brick_amount = len(bricks) - arbiter_brick_amount - self.assertGreater( - data_brick_amount, 0, - "Data brick amount is expected to be bigger than 0. " - "Actual amount is '%s'." % arbiter_brick_amount) - self.assertGreater( - arbiter_brick_amount, 0, - "Arbiter brick amount is expected to be bigger than 0. " - "Actual amount is '%s'." % arbiter_brick_amount) - self.assertEqual( - data_brick_amount, - (arbiter_brick_amount * 2), - "Expected 1 arbiter brick per 2 data bricks. " - "Arbiter brick amount is '%s', Data brick amount is '%s'." % ( - arbiter_brick_amount, data_brick_amount) - ) + self.verify_amount_and_proportion_of_arbiter_and_data_bricks(vol_info) def test_arbiter_pvc_mount_on_pod(self): """Test case CNS-945""" @@ -282,24 +305,8 @@ class TestArbiterVolumeCreateExpandDelete(cns_baseclass.CnsBaseClass): # Get gluster volume info vol_info = get_gluster_vol_info_by_pvc_name(self.node, self.pvc_name) - # Check amount of bricks - bricks = vol_info['bricks']['brick'] - arbiter_brick_amount = sum([int(b['isArbiter']) for b in bricks]) - data_brick_amount = len(bricks) - arbiter_brick_amount - self.assertEqual( - data_brick_amount, - (arbiter_brick_amount * 2), - "Expected 1 arbiter brick per 2 data bricks. " - "Arbiter brick amount is '%s', Data brick amount is '%s'." % ( - arbiter_brick_amount, data_brick_amount)) - self.assertGreater( - data_brick_amount, 3, - "Data brick amount is expected to be bigger than 3. " - "Actual amount is '%s'." % data_brick_amount) - self.assertGreater( - arbiter_brick_amount, 1, - "Arbiter brick amount is expected to be bigger than 1. " - "Actual amount is '%s'." % arbiter_brick_amount) + self.verify_amount_and_proportion_of_arbiter_and_data_bricks( + vol_info, arbiter_bricks=2, data_bricks=4) # NOTE(vponomar): do not create big volumes setting value less than 64 # for 'avg_file_size'. It will cause creation of very huge amount of files @@ -329,41 +336,21 @@ class TestArbiterVolumeCreateExpandDelete(cns_baseclass.CnsBaseClass): # Get volume info vol_info = get_gluster_vol_info_by_pvc_name(self.node, self.pvc_name) - bricks = vol_info['bricks']['brick'] - arbiter_bricks = [] - data_bricks = [] - for brick in bricks: - if int(brick['isArbiter']) == 1: - arbiter_bricks.append(brick) - else: - data_bricks.append(brick) # Verify proportion of data and arbiter bricks - arbiter_brick_amount = len(arbiter_bricks) - data_brick_amount = len(data_bricks) + bricks_info = ( + self.verify_amount_and_proportion_of_arbiter_and_data_bricks( + vol_info)) + expected_file_amount = pvc_size_gb * 1024**2 / (avg_file_size or 64) - expected_file_amount = expected_file_amount / arbiter_brick_amount - self.assertGreater( - data_brick_amount, 0, - "Data brick amount is expected to be bigger than 0. " - "Actual amount is '%s'." % arbiter_brick_amount) - self.assertGreater( - arbiter_brick_amount, 0, - "Arbiter brick amount is expected to be bigger than 0. " - "Actual amount is '%s'." % arbiter_brick_amount) - self.assertEqual( - data_brick_amount, - (arbiter_brick_amount * 2), - "Expected 1 arbiter brick per 2 data bricks. " - "Arbiter brick amount is '%s', Data brick amount is '%s'." % ( - arbiter_brick_amount, data_brick_amount) - ) + expected_file_amount = (expected_file_amount / + bricks_info['arbiter_amount']) # Try to create expected amount of files on arbiter brick mount passed_arbiter_bricks = [] not_found = "Mount Not Found" gluster_pods = get_ocp_gluster_pod_names(self.node) - for brick in arbiter_bricks: + for brick in bricks_info['arbiter_list']: for gluster_pod in gluster_pods: # "brick path" looks like following: # ip_addr:/path/to/vg/brick_unique_name/brick @@ -384,7 +371,7 @@ class TestArbiterVolumeCreateExpandDelete(cns_baseclass.CnsBaseClass): break # Make sure all the arbiter bricks were checked - for brick in arbiter_bricks: + for brick in bricks_info['arbiter_list']: self.assertIn( brick["name"].split(":")[-1], passed_arbiter_bricks, "Arbiter brick '%s' was not verified. Looks like it was " |