The previous way to call the module is quite complicated and the
usual way in Salome to hide the technical lines is to write a
client file which does the corba job (see for instance geompy.py
or smeshpy.py for the GEOM and SMESH modules).
Indeed, in xdata module, the client classes are the python classes
themselves !!! It's the same code with some flags at some points to
ensure the compatibility pure python / corba. The advantage is that
the same code can be called in the two modes without any modification.
For instance, the test:
# --
# Copyright (C) CEA, EDF
# Author : Erwan ADAM (CEA)
# --
from circle import Circle
c = Circle(r=1.0)
assert c.r == 1.0
bounds = c.bounds
assert bounds == [-1.0, 1.0, -1.0, 1.0]
from material import Material
m = Material()
assert m.name == "m"
from technologyobject import TechnologyObject
to = TechnologyObject(material=m,
shape=c,
)
c = to.shape
assert c.r == 1.0
assert c.bounds == [-1.0, 1.0, -1.0, 1.0]
# --
# Copyright (C) CEA, EDF
# Author : Erwan ADAM (CEA)
# --
import unittest
class XDataTestTestCase(unittest.TestCase):
def test(self):
import TECHOBJusecase
return
pass
if __name__ == '__main__':
unittest.main()
pass
# --
# Copyright (C) CEA, EDF
# Author : Erwan ADAM (CEA)
# --
import unittest
class XDataTestTestCase(unittest.TestCase):
def test(self):
from xsalome import XSalomeSession
salome = XSalomeSession(modules=["TECHOBJ"], logger=1)
#
import TECHOBJusecase
# --
# Testing the hidden corba objects
to = TECHOBJusecase.to
self.failIfEqual(to.__corba__component__, None)
to = to.__corba__object__
shape = to.getShape()
bounds = shape.getBounds()
self.failUnlessEqual(bounds, [-1.0, 1.0, -1.0, 1.0])
## # --
## # Testing if xtype accept corba objects
## # since it is needed from salome gui ...
## from technologyobject import TechnologyObject
## xattrs = TechnologyObject.getAllInitXAttributes()
## shape_xattr = None
## for x in xattrs:
## if x.name == "shape":
## shape_xattr = x
## break
## pass
## xtype = x.xtype
## xtype(shape)
#
return
pass
if __name__ == '__main__':
unittest.main()
pass