X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FParametersPlugin%2FTest%2FTestParameterChangeValue.py;h=f6816c87b5b637d7c65ad62fd887a63dadaae682;hb=4d3315763b20ea13044d3b6bda5297714fba01c0;hp=4e810d765ac3be7cf8b10a32e1b53248e5ceb68e;hpb=a329e6de49c77eb55d2eff09b27ab71d497065c5;p=modules%2Fshaper.git diff --git a/src/ParametersPlugin/Test/TestParameterChangeValue.py b/src/ParametersPlugin/Test/TestParameterChangeValue.py index 4e810d765..f6816c87b 100644 --- a/src/ParametersPlugin/Test/TestParameterChangeValue.py +++ b/src/ParametersPlugin/Test/TestParameterChangeValue.py @@ -1,16 +1,35 @@ +# Copyright (C) 2014-2019 CEA/DEN, EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + """ TestParameterCreation.py - + class ParametersPlugin_Parameter static const std::string MY_PARAMETER_ID("Parameter"); static const std::string MY_VARIABLE_ID("variable"); static const std::string MY_EXPRESSION_ID("expression"); - + data()->addAttribute(ParametersPlugin_Parameter::VARIABLE_ID(), ModelAPI_AttributeString::typeId()); data()->addAttribute(ParametersPlugin_Parameter::EXPRESSION_ID(), ModelAPI_AttributeString::typeId()); - + class ModelAPI_ResultParameter static const std::string MY_VALUE_ID("Value"); static const std::string MY_VALUE_ID("State"); @@ -23,6 +42,7 @@ from GeomDataAPI import * from ModelAPI import * import math import unittest +from salome.shaper import model __updated__ = "2015-04-27" @@ -45,6 +65,7 @@ class TestParameterRename(unittest.TestCase): self.createFeature() def tearDown(self): + assert(model.checkPythonDump()) self.aSession.closeAll() def createParameters(self): @@ -77,15 +98,60 @@ class TestParameterRename(unittest.TestCase): norm = geomDataAPI_Dir(aSketchFeature.attribute("Norm")) norm.setValue(0, 0, 1) aSketchCircle = aSketchFeature.addFeature("SketchCircle") - anCircleCentr = geomDataAPI_Point2D(aSketchCircle.attribute("CircleCenter")) - aRadiusAttr = aSketchCircle.real("CircleRadius") - anCircleCentr.setText("x1 + 10.0", "x1 + 20.0") - aRadiusAttr.setText("x1") + anCircleCentr = geomDataAPI_Point2D(aSketchCircle.attribute("circle_center")) + aRadiusAttr = aSketchCircle.real("circle_radius") + anCircleCentr.setValue(10., 20.) + aRadiusAttr.setValue(10.) self.aSession.finishOperation() self.anCircleCentr = anCircleCentr self.aRadiusAttr = aRadiusAttr + # constraints to fix circle position and radius + self.aSession.startOperation() + # fix X coordinate + aDistanceConstraint1 = aSketchFeature.addFeature("SketchConstraintDistance") + refattrA = aDistanceConstraint1.refattr("ConstraintEntityA") + refattrA.setAttr(anCircleCentr) + refattrB = aDistanceConstraint1.refattr("ConstraintEntityB") + anOY = aSketchFeature.addFeature("SketchLine") + aStartPoint = geomDataAPI_Point2D(anOY.attribute("StartPoint")) + anEndPoint = geomDataAPI_Point2D(anOY.attribute("EndPoint")) + aStartPoint.setValue(0., 0.) + anEndPoint.setValue(0., 100.) + anOYRes = modelAPI_Result(self.aDocument.objectByName("Construction", "OY")) + anOY.selection("External").setValue(anOYRes, anOYRes.shape()) + anOY.execute() + refattrB.setObject(modelAPI_ResultConstruction(anOY.firstResult())) + value = aDistanceConstraint1.real("ConstraintValue") + value.setText("x1 + 10.0") + aDistanceConstraint1.execute(); + # fix Y coordinate + aDistanceConstraint2 = aSketchFeature.addFeature("SketchConstraintDistance") + refattrA = aDistanceConstraint2.refattr("ConstraintEntityA") + refattrA.setAttr(anCircleCentr) + refattrB = aDistanceConstraint2.refattr("ConstraintEntityB") + anOX = aSketchFeature.addFeature("SketchLine") + aStartPoint = geomDataAPI_Point2D(anOX.attribute("StartPoint")) + anEndPoint = geomDataAPI_Point2D(anOX.attribute("EndPoint")) + aStartPoint.setValue(0., 0.) + anEndPoint.setValue(100., 0.) + anOXRes = modelAPI_Result(self.aDocument.objectByName("Construction", "OX")) + anOX.selection("External").setValue(anOXRes, anOXRes.shape()) + anOX.execute() + refattrB.setObject(modelAPI_ResultConstruction(anOX.firstResult())) + value = aDistanceConstraint2.real("ConstraintValue") + value.setText("x1 + 20.0") + aDistanceConstraint2.execute(); + # fix radius + aRadiusConstraint = aSketchFeature.addFeature("SketchConstraintRadius") + refattrA = aRadiusConstraint.refattr("ConstraintEntityA") + refattrA.setObject(modelAPI_ResultConstruction(aSketchCircle.lastResult())) + aRadiusConstrAttr = aRadiusConstraint.real("ConstraintValue") + aRadiusConstrAttr.setText("x1") + aRadiusConstraint.execute() + self.aSession.finishOperation() + self.assertEqual(self.anCircleCentr.x(), 160.) self.assertEqual(self.anCircleCentr.y(), 170.) self.assertEqual(aRadiusAttr.value(), 150.) @@ -97,7 +163,7 @@ class TestParameterRename(unittest.TestCase): aParam.string("expression").setValue("200.0") self.aSession.finishOperation() - # Check value of the parameter + # Check value of the parameter self.assertEqual(aResultAttr.data().real("Value").value(), 200.) # Check value of references aParam = self.dtParams["x2"] @@ -108,8 +174,9 @@ class TestParameterRename(unittest.TestCase): self.assertEqual(self.anCircleCentr.y(), 220.) self.assertEqual(self.aRadiusAttr.value(), 200.) -if __name__ == '__main__': - unittest.main() +if __name__ == "__main__": + test_program = unittest.main(exit=False) + assert test_program.result.wasSuccessful(), "Test failed" #========================================================================= # End of test #=========================================================================