summaryrefslogtreecommitdiff
path: root/test/test_pyeclib_api.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_pyeclib_api.py')
-rw-r--r--test/test_pyeclib_api.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/test_pyeclib_api.py b/test/test_pyeclib_api.py
index 9585035..62520d1 100644
--- a/test/test_pyeclib_api.py
+++ b/test/test_pyeclib_api.py
@@ -31,11 +31,13 @@ import unittest
from distutils.version import StrictVersion
from itertools import combinations
+import pyeclib.ec_iface
from pyeclib.ec_iface import ECBackendNotSupported
from pyeclib.ec_iface import ECDriver
from pyeclib.ec_iface import ECDriverError
from pyeclib.ec_iface import ECInsufficientFragments
from pyeclib.ec_iface import ECInvalidFragmentMetadata
+from pyeclib.ec_iface import ECInvalidParameter
from pyeclib.ec_iface import PyECLib_EC_Types
from pyeclib.ec_iface import ALL_EC_TYPES
from pyeclib.ec_iface import VALID_EC_TYPES
@@ -269,6 +271,45 @@ class TestPyECLibDriver(unittest.TestCase):
self.assertTrue(decoded_str == encode_str)
+ def test_encode_invalid_params(self):
+ pyeclib_drivers = self.get_pyeclib_testspec()
+ encode_args = [u'\U0001F0A1', 3, object(), None, {}, []]
+
+ for pyeclib_driver in pyeclib_drivers:
+ for encode_str in encode_args:
+ with self.assertRaises(ECInvalidParameter):
+ pyeclib_driver.encode(encode_str)
+
+ def test_attribute_error_in_the_error_handling(self):
+ pyeclib_drivers = self.get_pyeclib_testspec()
+ self.assertGreater(len(pyeclib_drivers), 0)
+ pyeclib_driver = pyeclib_drivers[0]
+
+ del pyeclib.ec_iface.ECInvalidParameter
+ try:
+ with self.assertRaises(AttributeError): # !!
+ pyeclib_driver.encode(3)
+ finally:
+ pyeclib.ec_iface.ECInvalidParameter = ECInvalidParameter
+
+ def test_import_error_in_the_error_handling(self):
+ pyeclib_drivers = self.get_pyeclib_testspec()
+ self.assertGreater(len(pyeclib_drivers), 0)
+ pyeclib_driver = pyeclib_drivers[0]
+
+ from six.moves import builtins
+ real_import = builtins.__import__
+
+ def fake_import(*a, **kw):
+ raise ImportError
+
+ builtins.__import__ = fake_import
+ try:
+ with self.assertRaises(ImportError): # !!
+ pyeclib_driver.encode(3)
+ finally:
+ builtins.__import__ = real_import
+
def test_decode_reconstruct_with_fragment_iterator(self):
pyeclib_drivers = self.get_pyeclib_testspec()
encode_strs = [b"a", b"hello", b"hellohyhi", b"yo"]