Example #1
0
        def testCreateByClass(self):
            if pmi.isController:
                obj = pmi.create(MockClass)
            else:
                # on the workers, don't use an argument to make sure
                # that it is not used
                obj = pmi.create()
            # test whether the class has been initialized correctly
            # (on all workers)
            self.assert_(isinstance(obj, MockClass))

            # delete object
            del (obj)
            pmi.sync()
            self.assert_(MockClass.delCalled)
Example #2
0
        def testUserSuppliedInit(self):
            if pmi.isController:

                class MockProxy(object):
                    __metaclass__ = pmi.Proxy
                    pmiproxydefs = dict(cls="MockProxyLocal")

                    def __init__(self, arg):
                        self.arg = arg
                        self.pmiinit(arg + 10)

                obj = MockProxy(42)
                pmiobj = obj.pmiobject
                self.assert_(hasattr(obj, "arg"))
                self.assertEqual(obj.arg, 42)
                self.assert_(isinstance(pmiobj, pmi.MockProxyLocal))
                self.assertEqual(pmiobj.arg, 52)
                del (pmiobj)
                del (obj)
                pmi.sync()
            else:
                pmiobj = pmi.create()
                self.assert_(isinstance(pmiobj, pmi.MockProxyLocal))
                self.assertEqual(pmiobj.arg, 52)
                del (pmiobj)
                pmi.sync()
Example #3
0
        def setUp(self):
            global mockFuncArg
            mockFuncArg = None

            if pmi.isController:
                self.obj = MockProxy()
                self.pmiobj = self.obj.pmiobject
            else:
                self.pmiobj = pmi.create()
Example #4
0
        def testCallInherited(self):
            if pmi.isController:
                obj = MockProxyDerived()
                pmiobj = obj.pmiobject
                obj.g(42)
            else:
                pmiobj = pmi.create()
                pmi.call()

            self.assertEqual(pmiobj.gArg, 42)
Example #5
0
 def testCreate(self):
     if pmi.isController:
         obj = MockProxyDerived()
         pmiobj = obj.pmiobject
         self.assert_(hasattr(obj, "f"))
         self.assert_(hasattr(obj, "g"))
         self.assert_(isinstance(pmiobj, pmi.MockProxyLocalDerived))
     else:
         pmiobj = pmi.create()
         self.assert_(isinstance(pmiobj, pmi.MockProxyLocalDerived))
Example #6
0
        def testCreateByString(self):
            obj = pmi.create("MockClass2")
            self.assertEqual(obj.__class__.__name__, "MockClass2")

            # delete object
            del (obj)
            pmi.sync()

            # Test that MockClass2 has not been pulled into the scripts namespace
            self.assertFalse("MockClass2" in globals())
Example #7
0
        def testCallMethod(self):
            # call via instance
            obj = pmi.create(MockClass)
            self.assertEqual(pmi.call(obj.f), 42)
            self.assert_(obj.fCalled)

            # call via class
            obj2 = pmi.create(MockClass)
            self.assertFalse(obj2.fCalled)
            self.assertEqual(pmi.call(MockClass.f, obj2), 42)
            self.assert_(obj2.fCalled)

            # call via string
            obj3 = pmi.create("MockClass2")
            self.assertEqual(pmi.call("MockClass2.f", obj3), 52)

            # call via instance and method name
            obj4 = pmi.create(MockClass)
            self.assertEqual(pmi.call(obj4, "f"), 42)
            self.assert_(obj4.fCalled)
Example #8
0
        def testCallOverridden(self):
            if pmi.isController:
                obj = MockProxyDerived()
                pmiobj = obj.pmiobject
                obj.f(52)
            else:
                pmiobj = pmi.create()
                pmi.call()

            self.assert_(hasattr(pmiobj, "fDerivedCalled"))
            self.assert_(hasattr(pmiobj, "fCalled"))
            self.assertEqual(pmiobj.arg, 42)
            self.assertEqual(pmiobj.arg2, 52)
Example #9
0
        def testCreateandDelete(self):
            self.assert_(not pmi.MockProxyLocal.delCalled)
            if pmi.isController:
                obj = MockProxy()
                self.assert_(hasattr(obj, "pmiobject"))
                self.assert_(isinstance(obj.pmiobject, pmi.MockProxyLocal))
                self.assert_(hasattr(obj, "pmiinit"))
                del (obj)
            else:
                pmiobj = pmi.create()
                self.assert_(isinstance(pmiobj, pmi.MockProxyLocal))
                del (pmiobj)

            pmi.sync()
            self.assert_(pmi.MockProxyLocal.delCalled)
Example #10
0
        def testPMIClassArgument(self):
            global mockFuncArg, mockFuncArgs
            obj = pmi.create(MockClass)
            self.assert_(isinstance(obj, MockClass))

            # pass the PMI class as argument and its id
            pmi.call(mockFunc, obj, id(obj))

            # on all workers, obj should now be in the object
            self.assertEqual(mockFuncArg, obj)
            # but it should not have the same id on all workers!
            if pmi.isController:
                self.assertEqual(mockFuncArgs[0], id(obj))
            else:
                self.assertNotEqual(mockFuncArgs[0], id(obj))
Example #11
0
        def testCallRedefined(self):
            if pmi.isController:

                class MockProxyDerived(MockProxyAbstractBase):
                    __metaclass__ = pmi.Proxy
                    pmiproxydefs = dict(cls="MockProxyLocalDerived", localcall=["f"])

                obj = MockProxyDerived()
                pmiobj = obj.pmiobject
                obj.f(52)
                self.assert_(hasattr(pmiobj, "fDerivedCalled"))
                self.assert_(hasattr(pmiobj, "fCalled"))
                self.assertEqual(pmiobj.arg, 42)
                self.assertEqual(pmiobj.arg2, 52)
            else:
                pmiobj = pmi.create()
                self.assertFalse(hasattr(pmiobj, "fDerivedCalled"))
                self.assertFalse(hasattr(pmiobj, "fCalled"))
Example #12
0
        def testUserSuppliedFunction(self):
            if pmi.isController:

                class MockProxy(object):
                    __metaclass__ = pmi.Proxy
                    pmiproxydefs = dict(cls="MockProxyLocal")

                    def f4(self):
                        self.pmiobject.called = "f4"
                        return 72

                obj = MockProxy()
                pmiobj = obj.pmiobject
                self.assertEqual(obj.f4(), 72)
                pmi.sync()
                self.assertEqual(pmiobj.called, "f4")
                del (obj)
                pmi.sync()
            else:
                pmiobj = pmi.create()
                pmi.sync()
                self.assertFalse(hasattr(pmiobj, "called"))
                pmi.sync()
Example #13
0
 def __init__(self, name):
     self.pmiobj = pmi.create('HelloLocal', name)