diff options
author | Johnathan Corgan <johnathan@corganlabs.com> | 2015-07-29 10:22:02 -0700 |
---|---|---|
committer | Johnathan Corgan <johnathan@corganlabs.com> | 2015-07-29 10:22:02 -0700 |
commit | 8a1c45c8c98272a4e0df7e123cb22c89f2f0084b (patch) | |
tree | 98f6b64c4010b407903ade9db6e1aaab1ecfa6ac /gnuradio-runtime/python/gnuradio | |
parent | a4ee10e7501304f24fa6bac1ba722f15d22fd351 (diff) | |
parent | 77ef7840a5219d444dd64ccf115f0c8be3d97ba2 (diff) |
Merge branch 'master' into next
Diffstat (limited to 'gnuradio-runtime/python/gnuradio')
-rw-r--r-- | gnuradio-runtime/python/gnuradio/gr/hier_block2.py | 25 | ||||
-rw-r--r-- | gnuradio-runtime/python/gnuradio/gr/qa_hier_block2.py | 12 |
2 files changed, 19 insertions, 18 deletions
diff --git a/gnuradio-runtime/python/gnuradio/gr/hier_block2.py b/gnuradio-runtime/python/gnuradio/gr/hier_block2.py index 3bc1e2e111..3f4c6aa9c7 100644 --- a/gnuradio-runtime/python/gnuradio/gr/hier_block2.py +++ b/gnuradio-runtime/python/gnuradio/gr/hier_block2.py @@ -19,15 +19,14 @@ # Boston, MA 02110-1301, USA. # -from functools import wraps -from itertools import imap +import functools from runtime_swig import hier_block2_swig, dot_graph import pmt def _multiple_endpoints(func): - @wraps(func) + @functools.wraps(func) def wrapped(self, *points): if not points: raise ValueError("At least one block required for " + func.__name__) @@ -39,24 +38,24 @@ def _multiple_endpoints(func): func(self, block) else: try: - endp = [(p, 0) if hasattr(p, 'to_basic_block') else p for p in points] - endp_pairs = imap(lambda i: endp[i:i+2], range(len(endp)-1)) - for (src, src_port), (dst, dst_port) in endp_pairs: - func(self, src.to_basic_block(), src_port, - dst.to_basic_block(), dst_port) - except (ValueError, TypeError): - raise ValueError("Unable to coerce endpoint") + endp = [(p.to_basic_block(), 0) if hasattr(p, 'to_basic_block') + else (p[0].to_basic_block(), p[1]) for p in points] + except (ValueError, TypeError, AttributeError) as err: + raise ValueError("Unable to coerce endpoints: " + str(err)) + + for (src, src_port), (dst, dst_port) in zip(endp, endp[1:]): + func(self, src, src_port, dst, dst_port) return wrapped def _optional_endpoints(func): - @wraps(func) + @functools.wraps(func) def wrapped(self, src, srcport, dst=None, dstport=None): if dst is None and dstport is None: try: (src, srcport), (dst, dstport) = src, srcport - except (ValueError, TypeError): - raise ValueError("Unable to coerce endpoint") + except (ValueError, TypeError) as err: + raise ValueError("Unable to coerce endpoints: " + str(err)) func(self, src.to_basic_block(), srcport, dst.to_basic_block(), dstport) return wrapped diff --git a/gnuradio-runtime/python/gnuradio/gr/qa_hier_block2.py b/gnuradio-runtime/python/gnuradio/gr/qa_hier_block2.py index 50b1562f3a..a079f8de70 100644 --- a/gnuradio-runtime/python/gnuradio/gr/qa_hier_block2.py +++ b/gnuradio-runtime/python/gnuradio/gr/qa_hier_block2.py @@ -66,14 +66,12 @@ class test_hier_block2(gr_unittest.TestCase): self.assertEqual(expected, self.call_log) def test_005(self): - with self.assertRaises(ValueError) as c: + with self.assertRaises(ValueError): self.multi((self.Block(), 5)) - self.assertIsInstance(c.exception, ValueError) def test_006(self): - with self.assertRaises(ValueError) as c: - self.multi(self.Block(), (self.Block(), 5, 5)) - self.assertIsInstance(c.exception, ValueError) + with self.assertRaises(ValueError): + self.multi(self.Block(), (5, 5)) def test_007(self): b1, b2 = self.Block(), self.Block() @@ -85,6 +83,10 @@ class test_hier_block2(gr_unittest.TestCase): self.opt((b1, "in"), (b2, "out")) self.assertEqual([(b1, "in", b2, "out")], self.call_log) + def test_009(self): + with self.assertRaises(ValueError): + self.multi(self.Block(), 5) + if __name__ == '__main__': gr_unittest.run(test_hier_block2, "test_hier_block2.xml") |