diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-09-07 05:41:45 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-09-07 05:41:45 +0000 |
commit | f53a0d5700b51ce154e5f10b741dce1db9fbdb3d (patch) | |
tree | bc0f44182658c68f7b7ab73845127eae09acb415 | |
parent | d7bb58ae80054b2972b8235db5c6b474447e2659 (diff) | |
parent | 25bc26b9149f8c28439238ecfe7d45e394e111e6 (diff) | |
download | pyeclib-f53a0d5700b51ce154e5f10b741dce1db9fbdb3d.tar.gz |
Merge "Fix arg k, m to be required"
-rw-r--r-- | pyeclib/ec_iface.py | 6 | ||||
-rw-r--r-- | test/test_pyeclib_api.py | 28 |
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 = [] |