summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-09-07 05:41:45 +0000
committerGerrit Code Review <review@openstack.org>2016-09-07 05:41:45 +0000
commitf53a0d5700b51ce154e5f10b741dce1db9fbdb3d (patch)
treebc0f44182658c68f7b7ab73845127eae09acb415
parentd7bb58ae80054b2972b8235db5c6b474447e2659 (diff)
parent25bc26b9149f8c28439238ecfe7d45e394e111e6 (diff)
downloadpyeclib-f53a0d5700b51ce154e5f10b741dce1db9fbdb3d.tar.gz
Merge "Fix arg k, m to be required"
-rw-r--r--pyeclib/ec_iface.py6
-rw-r--r--test/test_pyeclib_api.py28
2 files changed, 34 insertions, 0 deletions
diff --git a/pyeclib/ec_iface.py b/pyeclib/ec_iface.py
index 847e7c9..1b429cf 100644
--- a/pyeclib/ec_iface.py
+++ b/pyeclib/ec_iface.py
@@ -142,6 +142,12 @@ class ECDriver(object):
self.ec_type = None
self.chksum_type = None
self.validate = False
+
+ for required in ('k', 'm'):
+ if required not in kwargs:
+ raise ECDriverError(
+ "Invalid Argument: %s is required" % required)
+
for (key, value) in kwargs.items():
if key == "k":
try:
diff --git a/test/test_pyeclib_api.py b/test/test_pyeclib_api.py
index 415e982..a8ee926 100644
--- a/test/test_pyeclib_api.py
+++ b/test/test_pyeclib_api.py
@@ -113,6 +113,34 @@ class TestPyECLibDriver(unittest.TestCase):
def tearDown(self):
pass
+ def test_invalid_km_args(self):
+ for ec_type in VALID_EC_TYPES:
+ # missing k
+ with self.assertRaises(ECDriverError) as err_context:
+ ECDriver(ec_type=ec_type, m=1)
+
+ self.assertEqual(str(err_context.exception),
+ "Invalid Argument: k is required")
+
+ # missing m
+ with self.assertRaises(ECDriverError) as err_context:
+ ECDriver(ec_type=ec_type, k=1)
+
+ self.assertEqual(str(err_context.exception),
+ "Invalid Argument: m is required")
+
+ with self.assertRaises(ECDriverError) as err_context:
+ # m is smaller than 1
+ ECDriver(ec_type=ec_type, k=-100, m=1)
+ self.assertEqual(str(err_context.exception),
+ "Invalid number of data fragments (k)")
+
+ with self.assertRaises(ECDriverError) as err_context:
+ # m is smaller than 1
+ ECDriver(ec_type=ec_type, k=1, m=-100)
+ self.assertEqual(str(err_context.exception),
+ "Invalid number of data fragments (m)")
+
def test_valid_ec_types(self):
# Build list of available types and compare to VALID_EC_TYPES
available_ec_types = []