Salome HOME
Fix unit tests for ParametersPlugin
[modules/shaper.git] / src / ParametersPlugin / Test / TestParameterRename.py
index 0605fac1a98587defbfb1e3df780c244d5acd86e..795ce9fe78335f3f41d934600ad2ddd73fc9c665 100644 (file)
@@ -83,13 +83,58 @@ class TestParameterRename(unittest.TestCase):
         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.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.)
+        anOY.selection("External").selectSubShape("EDGE", "OY")
+        refattrB.setObject(modelAPI_ResultConstruction(anOY.firstResult()))
+        valueX = aDistanceConstraint1.real("ConstraintValue")
+        valueX.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.)
+        anOX.selection("External").selectSubShape("EDGE", "OX")
+        refattrB.setObject(modelAPI_ResultConstruction(anOX.firstResult()))
+        valueY = aDistanceConstraint2.real("ConstraintValue")
+        valueY.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.aCircleCenterX = valueX
+        self.aCircleCenterY = valueY
+        sel.aCircleRadius = aRadiusConstraintAttr
+
         self.assertEqual(self.anCircleCentr.x(), 160.)
         self.assertEqual(self.anCircleCentr.y(), 170.)
         self.assertEqual(aRadiusAttr.value(), 150.)
@@ -110,9 +155,13 @@ class TestParameterRename(unittest.TestCase):
         aParam = self.dtParams["x2"]
         self.assertEqual(aParam.string("expression").value(), "a1 + y1 + 100.0")
         # Check rename in the feature
-        self.assertEqual(self.anCircleCentr.textX(), "a1 + 10.0")
-        self.assertEqual(self.anCircleCentr.textY(), "a1 + 20.0")
-        self.assertEqual(self.aRadiusAttr.text(), "a1")
+        self.assertEqual(self.aCircleCenterX.text(), "a1 + 10.0")
+        self.assertEqual(self.aCircleCenterY.text(), "a1 + 20.0")
+        self.assertEqual(self.aCircleRadius.text(), "a1")
+        # Check values
+        self.assertEqual(self.anCircleCentr.x(), 160.)
+        self.assertEqual(self.anCircleCentr.y(), 170.)
+        self.assertEqual(self.aRadiusAttr.value(), 150.)
 
     def test_rename_not_unique(self):
         # Rename to not unique name
@@ -129,9 +178,13 @@ class TestParameterRename(unittest.TestCase):
         aParam = self.dtParams["x2"]
         self.assertEqual(aParam.string("expression").value(), "x1 + y1 + 100.0")
         # Check rename in the feature (Expected: not renamed)
-        self.assertEqual(self.anCircleCentr.textX(), "x1 + 10.0")
-        self.assertEqual(self.anCircleCentr.textY(), "x1 + 20.0")
-        self.assertEqual(self.aRadiusAttr.text(), "x1")
+        self.assertEqual(self.aCircleCenterX.text(), "x1 + 10.0")
+        self.assertEqual(self.aCircleCenterY.text(), "x1 + 20.0")
+        self.assertEqual(self.aCircleRadius.text(), "x1")
+        # Check values
+        self.assertEqual(self.anCircleCentr.x(), 160.)
+        self.assertEqual(self.anCircleCentr.y(), 170.)
+        self.assertEqual(self.aRadiusAttr.value(), 150.)
 
 if __name__ == '__main__':
     unittest.main()