class BasicControllerServiceTest(DeferredTestCase, IControllerCoreTestCase):
    def setUp(self):
        self.controller = ControllerService()
        self.controller.startService()

    def tearDown(self):
        self.controller.stopService()
class BasicControllerServiceTest(DeferredTestCase,
    IControllerCoreTestCase):

    def setUp(self):
        self.controller  = ControllerService()
        self.controller.startService()

    def tearDown(self):
        self.controller.stopService()
Exemple #3
0
class BasicMultiEngineTestCase(DeferredTestCase, IMultiEngineTestCase):
    def setUp(self):
        self.controller = ControllerService()
        self.controller.startService()
        self.multiengine = me.IMultiEngine(self.controller)
        self.engines = []

    def tearDown(self):
        self.controller.stopService()
        for e in self.engines:
            e.stopService()
class SynchronousMultiEngineTestCase(DeferredTestCase, ISynchronousMultiEngineTestCase):

    def setUp(self):
        self.controller = ControllerService()
        self.controller.startService()
        self.multiengine = me.ISynchronousMultiEngine(me.IMultiEngine(self.controller))
        self.engines = []
    
    def tearDown(self):
        self.controller.stopService()
        for e in self.engines:
            e.stopService()
    def setUp(self):

        self.engines = []

        self.controller = ControllerService()
        self.controller.startService()
        self.imultiengine = IMultiEngine(self.controller)
        self.mec_referenceable = IFCSynchronousMultiEngine(self.imultiengine)

        self.controller_tub = Tub()
        self.controller_tub.listenOn('tcp:10105:interface=127.0.0.1')
        self.controller_tub.setLocation('127.0.0.1:10105')

        furl = self.controller_tub.registerReference(self.mec_referenceable)
        self.controller_tub.startService()

        self.client_tub = ClientConnector()
        d = self.client_tub.get_multiengine_client(furl)
        d.addCallback(self.handle_got_client)
        return d
    def setUp(self):

        self.engines = []

        self.controller = ControllerService()
        self.controller.startService()
        self.imultiengine = IMultiEngine(self.controller)
        self.mec_referenceable = IFCSynchronousMultiEngine(self.imultiengine)

        self.controller_tub = Tub()
        self.controller_tub.listenOn('tcp:10111:interface=127.0.0.1')
        self.controller_tub.setLocation('127.0.0.1:10111')

        furl = self.controller_tub.registerReference(self.mec_referenceable)
        self.controller_tub.startService()

        self.client_tub = AsyncClientConnector()
        d = self.client_tub.get_multiengine_client(furl_or_file=furl)
        d.addCallback(self.handle_got_client)
        return d
 def setUp(self):
     self.controller = ControllerService()
     self.controller.startService()
     self.multiengine = me.ISynchronousMultiEngine(me.IMultiEngine(self.controller))
     self.engines = []
 def setUp(self):
     self.controller  = ControllerService()
     self.controller.startService()
class FullSynchronousMultiEngineTestCase(DeferredTestCase,
                                         IFullSynchronousMultiEngineTestCase):
    def setUp(self):

        self.engines = []

        self.controller = ControllerService()
        self.controller.startService()
        self.imultiengine = IMultiEngine(self.controller)
        self.mec_referenceable = IFCSynchronousMultiEngine(self.imultiengine)

        self.controller_tub = Tub()
        self.controller_tub.listenOn('tcp:10105:interface=127.0.0.1')
        self.controller_tub.setLocation('127.0.0.1:10105')

        furl = self.controller_tub.registerReference(self.mec_referenceable)
        self.controller_tub.startService()

        self.client_tub = ClientConnector()
        d = self.client_tub.get_multiengine_client(furl)
        d.addCallback(self.handle_got_client)
        return d

    def handle_got_client(self, client):
        self.multiengine = client

    def tearDown(self):
        dlist = []
        # Shut down the multiengine client
        d = self.client_tub.tub.stopService()
        dlist.append(d)
        # Shut down the engines
        for e in self.engines:
            e.stopService()
        # Shut down the controller
        d = self.controller_tub.stopService()
        d.addBoth(lambda _: self.controller.stopService())
        dlist.append(d)
        return defer.DeferredList(dlist)

    def test_mapper(self):
        self.addEngine(4)
        m = self.multiengine.mapper()
        self.assertEquals(m.multiengine, self.multiengine)
        self.assertEquals(m.dist, 'b')
        self.assertEquals(m.targets, 'all')
        self.assertEquals(m.block, True)

    def test_map_default(self):
        self.addEngine(4)
        m = self.multiengine.mapper()
        d = m.map(lambda x: 2 * x, range(10))
        d.addCallback(
            lambda r: self.assertEquals(r, [2 * x for x in range(10)]))
        d.addCallback(
            lambda _: self.multiengine.map(lambda x: 2 * x, range(10)))
        d.addCallback(
            lambda r: self.assertEquals(r, [2 * x for x in range(10)]))
        return d

    def test_map_noblock(self):
        self.addEngine(4)
        m = self.multiengine.mapper(block=False)
        d = m.map(lambda x: 2 * x, range(10))
        d.addCallback(
            lambda did: self.multiengine.get_pending_deferred(did, True))
        d.addCallback(
            lambda r: self.assertEquals(r, [2 * x for x in range(10)]))
        return d

    def test_mapper_fail(self):
        self.addEngine(4)
        m = self.multiengine.mapper()
        d = m.map(lambda x: 1 / 0, range(10))
        d.addBoth(lambda f: self.assertRaises(ZeroDivisionError, _raise_it, f))
        return d

    def test_parallel(self):
        self.addEngine(4)
        p = self.multiengine.parallel()
        self.assert_(isinstance(p, ParallelFunction))

        @p
        def f(x):
            return 2 * x

        d = f(range(10))
        d.addCallback(
            lambda r: self.assertEquals(r, [2 * x for x in range(10)]))
        return d

    def test_parallel_noblock(self):
        self.addEngine(1)
        p = self.multiengine.parallel(block=False)
        self.assert_(isinstance(p, ParallelFunction))

        @p
        def f(x):
            return 2 * x

        d = f(range(10))
        d.addCallback(
            lambda did: self.multiengine.get_pending_deferred(did, True))
        d.addCallback(
            lambda r: self.assertEquals(r, [2 * x for x in range(10)]))
        return d

    def test_parallel_fail(self):
        self.addEngine(4)
        p = self.multiengine.parallel()
        self.assert_(isinstance(p, ParallelFunction))

        @p
        def f(x):
            return 1 / 0

        d = f(range(10))
        d.addBoth(lambda f: self.assertRaises(ZeroDivisionError, _raise_it, f))
        return d
Exemple #10
0
 def setUp(self):
     self.controller = ControllerService()
     self.controller.startService()
     self.multiengine = me.ISynchronousMultiEngine(
         me.IMultiEngine(self.controller))
     self.engines = []
 def setUp(self):
     self.controller = ControllerService()
     self.controller.startService()
class FullSynchronousMultiEngineTestCase(
    DeferredTestCase, IFullSynchronousMultiEngineTestCase):

    def setUp(self):

        self.engines = []

        self.controller = ControllerService()
        self.controller.startService()
        self.imultiengine = IMultiEngine(self.controller)
        self.mec_referenceable = IFCSynchronousMultiEngine(self.imultiengine)

        self.controller_tub = Tub()
        self.controller_tub.listenOn('tcp:10111:interface=127.0.0.1')
        self.controller_tub.setLocation('127.0.0.1:10111')

        furl = self.controller_tub.registerReference(self.mec_referenceable)
        self.controller_tub.startService()

        self.client_tub = AsyncClientConnector()
        d = self.client_tub.get_multiengine_client(furl_or_file=furl)
        d.addCallback(self.handle_got_client)
        return d

    def handle_got_client(self, client):
        self.multiengine = client

    def tearDown(self):
        dlist = []
        # Shut down the multiengine client
        d = self.client_tub.tub.stopService()
        dlist.append(d)
        # Shut down the engines
        for e in self.engines:
            e.stopService()
        # Shut down the controller
        d = self.controller_tub.stopService()
        d.addBoth(lambda _: self.controller.stopService())
        dlist.append(d)
        return defer.DeferredList(dlist)

    def test_mapper(self):
        self.addEngine(4)
        m = self.multiengine.mapper()
        self.assertEquals(m.multiengine,self.multiengine)
        self.assertEquals(m.dist,'b')
        self.assertEquals(m.targets,'all')
        self.assertEquals(m.block,True)

    def test_map_default(self):
        self.addEngine(4)
        m = self.multiengine.mapper()
        d = m.map(lambda x: 2*x, list(range(10)))
        d.addCallback(lambda r: self.assertEquals(r,[2*x for x in range(10)]))
        d.addCallback(lambda _: self.multiengine.map(lambda x: 2*x, list(range(10))))
        d.addCallback(lambda r: self.assertEquals(r,[2*x for x in range(10)]))
        return d

    def test_map_noblock(self):
        self.addEngine(4)
        m = self.multiengine.mapper(block=False)
        d = m.map(lambda x: 2*x, list(range(10)))
        d.addCallback(lambda did: self.multiengine.get_pending_deferred(did, True))
        d.addCallback(lambda r: self.assertEquals(r,[2*x for x in range(10)]))
        return d

    def test_mapper_fail(self):
        self.addEngine(4)
        m = self.multiengine.mapper()
        d = m.map(lambda x: 1/0, list(range(10)))
        d.addBoth(lambda f: self.assertRaises(ZeroDivisionError, _raise_it, f))
        return d

    def test_parallel(self):
        self.addEngine(4)
        p = self.multiengine.parallel()
        self.assert_(isinstance(p, ParallelFunction))
        @p
        def f(x): return 2*x
        d = f(list(range(10)))
        d.addCallback(lambda r: self.assertEquals(r,[2*x for x in range(10)]))
        return d

    def test_parallel_noblock(self):
        self.addEngine(1)
        p = self.multiengine.parallel(block=False)
        self.assert_(isinstance(p, ParallelFunction))
        @p
        def f(x): return 2*x
        d = f(list(range(10)))
        d.addCallback(lambda did: self.multiengine.get_pending_deferred(did, True))
        d.addCallback(lambda r: self.assertEquals(r,[2*x for x in range(10)]))
        return d

    def test_parallel_fail(self):
        self.addEngine(4)
        p = self.multiengine.parallel()
        self.assert_(isinstance(p, ParallelFunction))
        @p
        def f(x): return 1/0
        d = f(list(range(10)))
        d.addBoth(lambda f: self.assertRaises(ZeroDivisionError, _raise_it, f))
        return d