]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Added test for open/save document of the model session
authormpv <mpv@opencascade.com>
Tue, 11 Dec 2018 12:36:06 +0000 (15:36 +0300)
committermpv <mpv@opencascade.com>
Tue, 11 Dec 2018 12:36:32 +0000 (15:36 +0300)
src/Model/Model_Session.cpp
src/ModelAPI/CMakeLists.txt
src/ModelAPI/Test/TestSaveOpen.py [new file with mode: 0644]
src/Selector/Selector_NExplode.cpp

index ea2521010941de1cdca9d6fa74741592a551e04b..3d372479414ee02be9b4c58df45984a6da05bef5 100644 (file)
@@ -55,7 +55,7 @@
 
 static Model_Session* myImpl = new Model_Session();
 
-// t oredirect all calls to the root document
+// tredirect all calls to the root document
 #define ROOT_DOC std::dynamic_pointer_cast<Model_Document>(moduleDocument())
 
 bool Model_Session::load(const char* theFileName)
@@ -114,7 +114,7 @@ void Model_Session::abortOperation()
     myOperationAttachedToNext = false;
   }
   setCheckTransactions(true);
-  // here the update mechanism may work after abort, so, supress the warnings about
+  // here the update mechanism may work after abort, so, suppress the warnings about
   // modifications outside of the transactions
   bool aWasCheck = myCheckTransactions;
   myCheckTransactions = false;
@@ -294,7 +294,7 @@ void Model_Session::setActiveDocument(
     std::shared_ptr<ModelAPI_Document> aPrevious = myCurrentDoc;
     myCurrentDoc = theDoc;
     if (theDoc.get() && theSendSignal) {
-      // this must be before the synchronisation call because features in PartSet lower than this
+      // this must be before the synchronization call because features in PartSet lower than this
       // part feature must be disabled and don't recomputed anymore (issue 1156,
       // translation feature is failed on activation of Part 2)
       if (isOperation()) { // do it only in transaction, not on opening of document
@@ -306,7 +306,7 @@ void Model_Session::setActiveDocument(
           }
         }
       }
-      // syncronize the document: it may be just opened or opened but removed before
+      // synchronize the document: it may be just opened or opened but removed before
       std::shared_ptr<Model_Document> aDoc = std::dynamic_pointer_cast<Model_Document>(theDoc);
       if (aDoc.get()) {
         bool aWasChecked = myCheckTransactions;
@@ -320,7 +320,7 @@ void Model_Session::setActiveDocument(
           new Events_Message(Events_Loop::eventByName(EVENT_DOCUMENT_CHANGED)));
       Events_Loop::loop()->send(aMsg);
     }
-    // make the current state correct and synchronised in the module and sub-documents
+    // make the current state correct and synchronized in the module and sub-documents
     if (isOperation()) { // do it only in transaction, not on opening of document
       if (myCurrentDoc == moduleDocument()) {
         // make the current feature the latest in root, in previous root current become also last
@@ -619,7 +619,7 @@ void Model_Session::blockAutoUpdate(const bool theBlock)
     }
     if (!isOperation) {
       finishOperation();
-      // append this transaction to the previous one: ne don't need this separated operation in list
+      // append this transaction to the previous one: don't need this separated operation in list
       ROOT_DOC->appendTransactionToPrevious();
     }
   }
index ed4a75d730974897c5dde615042e7069d02ae75f..22b949c54246424129624587d7063bf6f956c6d3 100644 (file)
@@ -232,4 +232,5 @@ ADD_UNIT_TESTS(TestConstants.py
                TestGeomNamingSketchPlane.py
                TestGeomNamingBoxWithFillet.py
                TestContainerSelector.py
+               TestSaveOpen.py
 )
diff --git a/src/ModelAPI/Test/TestSaveOpen.py b/src/ModelAPI/Test/TestSaveOpen.py
new file mode 100644 (file)
index 0000000..5bc57a2
--- /dev/null
@@ -0,0 +1,50 @@
+## Copyright (C) 2014-2017  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<mailto:webmaster.salome@opencascade.com>
+##
+
+# -*- coding: utf-8 -*-
+
+from salome.shaper import model
+from ModelAPI import *
+
+model.begin()
+partSet = model.moduleDocument()
+Point_2 = model.addPoint(partSet, 1, 2, 3)
+Point_name = Point_2.name()
+model.end()
+
+# check save document in a current folder
+aSession = ModelAPI_Session.get()
+aFiles = StringList()
+aSession.save(".", aFiles)
+assert(len(aFiles) == 1)
+
+# check open of the same document
+assert(aSession.load(".") == False) # error because this document is already opened
+
+# close the current document
+aSession.closeAll()
+
+# open again: it must be correct now
+assert(aSession.load("."))
+
+# check the created point is opened
+partSet = model.moduleDocument()
+assert(partSet.size("Features") == 1)
+assert(partSet.object("Features", 0).data().name() == Point_name)
index 98b3dd42e517373f9e52a1778686ea104d917ddc..33552c40dd5c757cf98d4d0342015a07bc885865 100644 (file)
@@ -107,6 +107,8 @@ bool CompareShapes::operator() (const TopoDS_Shape& theShape1,
     else if (Abs(dLength) < tol && theShape1.ShapeType() <= TopAbs_FACE) {
       // equal values possible on shapes such as two halves of a sphere and
       // a membrane inside the sphere
+// LCOV_EXCL_START
+      // this part of code is taken from GEOM module, but can not reproduce in SHAPER
       Bnd_Box box1,box2;
       BRepBndLib::Add(theShape1, box1);
       if (!box1.IsVoid()) {
@@ -126,7 +128,8 @@ bool CompareShapes::operator() (const TopoDS_Shape& theShape1,
           }
         }
       }
-    } else // compare adresses if shapes are geometrically equal
+// LCOV_EXCL_START
+    } else // compare addresses if shapes are geometrically equal
       return theShape1.TShape().get() > theShape2.TShape().get();
   }