##// END OF EJS Templates
add len(view)...
MinRK -
Show More
@@ -128,13 +128,20 b' class View(HasTraits):'
128 128
129 129 assert not self.__class__ is View, "Don't use base View objects, use subclasses"
130 130
131
132 131 def __repr__(self):
133 132 strtargets = str(self.targets)
134 133 if len(strtargets) > 16:
135 134 strtargets = strtargets[:12]+'...]'
136 135 return "<%s %s>"%(self.__class__.__name__, strtargets)
137
136
137 def __len__(self):
138 if isinstance(self.targets, list):
139 return len(self.targets)
140 elif isinstance(self.targets, int):
141 return 1
142 else:
143 return len(self.client)
144
138 145 def set_flags(self, **kwargs):
139 146 """set my attribute flags by keyword.
140 147
@@ -25,6 +25,7 b' import zmq'
25 25 from nose import SkipTest
26 26
27 27 from IPython.testing import decorators as dec
28 from IPython.testing.ipunittest import ParametricTestCase
28 29
29 30 from IPython import parallel as pmod
30 31 from IPython.parallel import error
@@ -39,7 +40,7 b' from .clienttest import ClusterTestCase, crash, wait, skip_without'
39 40 def setup():
40 41 add_engines(3, total=True)
41 42
42 class TestView(ClusterTestCase):
43 class TestView(ClusterTestCase, ParametricTestCase):
43 44
44 45 def test_z_crash_mux(self):
45 46 """test graceful handling of engine death (direct)"""
@@ -550,4 +551,21 b' class TestView(ClusterTestCase):'
550 551 check = [ -1*i for i in r ]
551 552 result = e0.map_sync(lambda x: -1*x, r)
552 553 self.assertEquals(result, check)
554
555 def test_len(self):
556 """len(view) makes sense"""
557 e0 = self.client[self.client.ids[0]]
558 yield self.assertEquals(len(e0), 1)
559 v = self.client[:]
560 yield self.assertEquals(len(v), len(self.client.ids))
561 v = self.client.direct_view('all')
562 yield self.assertEquals(len(v), len(self.client.ids))
563 v = self.client[:2]
564 yield self.assertEquals(len(v), 2)
565 v = self.client[:1]
566 yield self.assertEquals(len(v), 1)
567 v = self.client.load_balanced_view()
568 yield self.assertEquals(len(v), len(self.client.ids))
569 # parametric tests seem to require manual closing?
570 self.client.close()
553 571
General Comments 0
You need to be logged in to leave comments. Login now