From eba04f700b9d6b0cfcf376b9661788107f0aee88 Mon Sep 17 00:00:00 2001 From: azv Date: Mon, 10 Dec 2018 18:10:43 +0300 Subject: [PATCH] [Code coverage GeomValidators]: Improve coverage of FiniteValidator and ZeroOffsetValidator --- src/ConstructionPlugin/CMakeLists.txt | 1 + .../Test/TestPoint_FiniteValidator.py | 31 ++++++++++++ src/ExchangePlugin/CMakeLists.txt | 4 +- .../Test/TestExport_FiniteValidator.py | 41 +++++++++++++++ src/FeaturesPlugin/CMakeLists.txt | 1 + .../Test/TestExtrusion_ZeroOffsetError.py | 50 +++++++++++++++++++ .../Test/TestPlacement_ErrorMsg.py | 7 +++ 7 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 src/ConstructionPlugin/Test/TestPoint_FiniteValidator.py create mode 100644 src/ExchangePlugin/Test/TestExport_FiniteValidator.py create mode 100644 src/FeaturesPlugin/Test/TestExtrusion_ZeroOffsetError.py diff --git a/src/ConstructionPlugin/CMakeLists.txt b/src/ConstructionPlugin/CMakeLists.txt index 300cd7b46..f9d11bee9 100644 --- a/src/ConstructionPlugin/CMakeLists.txt +++ b/src/ConstructionPlugin/CMakeLists.txt @@ -92,6 +92,7 @@ ADD_UNIT_TESTS(TestAxisCreation.py TestPoint_VertexSelection.py TestPointName.py TestPoint_ErrorMsg.py + TestPoint_FiniteValidator.py TestPlane.py TestPlane_ErrorMsg.py ) diff --git a/src/ConstructionPlugin/Test/TestPoint_FiniteValidator.py b/src/ConstructionPlugin/Test/TestPoint_FiniteValidator.py new file mode 100644 index 000000000..485b888f6 --- /dev/null +++ b/src/ConstructionPlugin/Test/TestPoint_FiniteValidator.py @@ -0,0 +1,31 @@ +## Copyright (C) 2018-20xx 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 +## + +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() + +Point_2 = model.addPoint(Part_1_doc, model.selection("EDGE", "PartSet/OZ"), 10, False, False) +assert(Point_2.feature().error() != "") + +model.end() diff --git a/src/ExchangePlugin/CMakeLists.txt b/src/ExchangePlugin/CMakeLists.txt index 91dcb6690..345b44fed 100644 --- a/src/ExchangePlugin/CMakeLists.txt +++ b/src/ExchangePlugin/CMakeLists.txt @@ -83,4 +83,6 @@ ADD_UNIT_TESTS(TestImport.py TestExport.py Test2290.py Test2459.py - TestExportToXAOWithGroupNotUpdated.py) + TestExportToXAOWithGroupNotUpdated.py + TestExport_FiniteValidator.py +) diff --git a/src/ExchangePlugin/Test/TestExport_FiniteValidator.py b/src/ExchangePlugin/Test/TestExport_FiniteValidator.py new file mode 100644 index 000000000..d42015ec7 --- /dev/null +++ b/src/ExchangePlugin/Test/TestExport_FiniteValidator.py @@ -0,0 +1,41 @@ +## Copyright (C) 2018-20xx 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 +## + +from ModelAPI import * + +aSession = ModelAPI_Session.get() + +# Import a reference part +aSession.startOperation("Add part") +aPartFeature = aSession.moduleDocument().addFeature("Part") +aSession.finishOperation() +aPart = aSession.activeDocument() + +# Export a part +aSession.startOperation("Export part") +anExportFeature = aPart.addFeature("Export") +anExportFeature.string("file_format").setValue("BREP") +anExportFeature.string("file_path").setValue("file.brep") +anExportFeature.string("ExportType").setValue("Regular") +aSelectionListAttr = anExportFeature.selectionList("selection_list") +aSelectionListAttr.setSelectionType("solids") +aSelectionListAttr.append("PartSet/OX", "EDGE") +aSession.finishOperation() +assert(anExportFeature.error() != "") diff --git a/src/FeaturesPlugin/CMakeLists.txt b/src/FeaturesPlugin/CMakeLists.txt index 538b466a6..3ea424612 100644 --- a/src/FeaturesPlugin/CMakeLists.txt +++ b/src/FeaturesPlugin/CMakeLists.txt @@ -172,6 +172,7 @@ ADD_UNIT_TESTS(TestExtrusion.py TestExtrusionCut.py TestExtrusionFuse.py TestExtrusion_ErrorMsg.py + TestExtrusion_ZeroOffsetError.py TestRevolution.py TestRevolutionCut.py TestRevolutionFuse.py diff --git a/src/FeaturesPlugin/Test/TestExtrusion_ZeroOffsetError.py b/src/FeaturesPlugin/Test/TestExtrusion_ZeroOffsetError.py new file mode 100644 index 000000000..98dac8863 --- /dev/null +++ b/src/FeaturesPlugin/Test/TestExtrusion_ZeroOffsetError.py @@ -0,0 +1,50 @@ +## Copyright (C) 2018-20xx 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 +## + +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Sketch_1 = model.addSketch(Part_1_doc, model.defaultPlane("XOY")) +SketchCircle_1 = Sketch_1.addCircle(9.631110499908317, -35.9437937189679, 36.19447160731126) +model.do() + +Extrusion_1 = model.addExtrusion(Part_1_doc, [model.selection("FACE", "Sketch_1/Face-SketchCircle_1_2r")], model.selection(), 10, -10) +assert(Extrusion_1.feature().error() != "") + +Sketch_2 = model.addSketch(Part_1_doc, model.defaultPlane("XOY")) +SketchCircle_2 = Sketch_2.addCircle(114.4867836253828, -21.50233830122853, 11.10986684682035) +SketchCircle_3 = Sketch_2.addCircle(113.4180342136906, 1.426992627069481, 10.29495051811322) +model.do() +Compound_1 = model.addCompound(Part_1_doc, [model.selection("FACE", "Sketch_2/Face-SketchCircle_2_2r"), model.selection("FACE", "Sketch_2/Face-SketchCircle_3_2f")]) + +Plane_1 = model.addPlane(Part_1_doc, model.selection("FACE", "PartSet/XOY"), 10, False) +Sketch_3 = model.addSketch(Part_1_doc, model.selection("FACE", "Plane_1")) +SketchCircle_4 = Sketch_3.addCircle(91.42492988686666, -20.30106607931821, 6.749165188215104) +SketchCircle_5 = Sketch_3.addCircle(88.32466240656791, 2.196618803039243, 8.273170230715275) +model.do() +Compound_2 = model.addCompound(Part_1_doc, [model.selection("FACE", "Sketch_3/Face-SketchCircle_4_2r"), model.selection("FACE", "Sketch_3/Face-SketchCircle_5_2f")]) + +Extrusion_2 = model.addExtrusion(Part_1_doc, [model.selection("FACE", "Sketch_1/Face-SketchCircle_1_2r")], model.selection(), model.selection("COMPOUND", "Compound_1_1"), 0, model.selection("COMPOUND", "Compound_2_1"), 0) +assert(Extrusion_2.feature().error() != "") + +model.end() diff --git a/src/FeaturesPlugin/Test/TestPlacement_ErrorMsg.py b/src/FeaturesPlugin/Test/TestPlacement_ErrorMsg.py index fe0b6cabc..4a3707741 100644 --- a/src/FeaturesPlugin/Test/TestPlacement_ErrorMsg.py +++ b/src/FeaturesPlugin/Test/TestPlacement_ErrorMsg.py @@ -79,3 +79,10 @@ aPlacementFt.boolean("placement_centering").setValue(True) aPlacementFt.execute() aSession.finishOperation() assert(aPlacementFt.error() == "") + + +model.begin() +Placement_2 = model.addPlacement(Part_1_doc, [model.selection("SOLID", "Placement_1_1")], model.selection("COMPOUND", "Sketch_1"), model.selection("FACE", "Extrusion_1_1/To_Face"), False, False) +assert(Placement_2.feature().error() != "") +Part_1_doc.removeFeature(Placement_2.feature()) +model.end() -- 2.30.2