diff --git a/src/Mod/PartDesign/CMakeLists.txt b/src/Mod/PartDesign/CMakeLists.txt index 28cd8003f9..58ceaa4c3a 100644 --- a/src/Mod/PartDesign/CMakeLists.txt +++ b/src/Mod/PartDesign/CMakeLists.txt @@ -34,6 +34,7 @@ set(PartDesign_OtherScripts set(PartDesign_TestScripts PartDesignTests/__init__.py + PartDesignTests/TestActiveObject.py PartDesignTests/TestDatum.py PartDesignTests/TestShapeBinder.py PartDesignTests/TestPad.py diff --git a/src/Mod/PartDesign/PartDesignTests/TestActiveObject.py b/src/Mod/PartDesign/PartDesignTests/TestActiveObject.py new file mode 100644 index 0000000000..c4b83e011d --- /dev/null +++ b/src/Mod/PartDesign/PartDesignTests/TestActiveObject.py @@ -0,0 +1,61 @@ +#*************************************************************************** +#* Copyright (c) 2024 Werner Mayer * +#* * +#* This file is part of FreeCAD. * +#* * +#* FreeCAD 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. * +#* * +#* FreeCAD 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 FreeCAD. If not, see * +#* . * +#* * +#*************************************************************************** + +import unittest + +import FreeCAD +import FreeCADGui + +""" Test active object list """ +class TestActiveObject(unittest.TestCase): + def setUp(self): + self.doc = FreeCAD.newDocument("PartDesignTestSketch") + self.doc.UndoMode = True + + def testPartBody(self): + self.doc.openTransaction("Create part") + part = self.doc.addObject("App::Part", "Part") + FreeCADGui.activateView('Gui::View3DInventor', True) + FreeCADGui.activeView().setActiveObject('part', part) + self.doc.commitTransaction() + + self.doc.openTransaction("Create body") + body = self.doc.addObject('PartDesign::Body', 'Body') + part.addObject(body) + FreeCADGui.activateView('Gui::View3DInventor', True) + FreeCADGui.activeView().setActiveObject('pdbody', body) + self.doc.commitTransaction() + + self.doc.undo() # undo body creation + self.doc.undo() # undo part creation + + FreeCADGui.updateGui() + + self.doc.openTransaction("Create body") + body = self.doc.addObject('PartDesign::Body', 'Body') + FreeCADGui.activateView('Gui::View3DInventor', True) + FreeCADGui.activeView().setActiveObject('pdbody', body) + self.doc.commitTransaction() + + FreeCADGui.updateGui() + + def tearDown(self): + FreeCAD.closeDocument("PartDesignTestSketch") diff --git a/src/Mod/PartDesign/TestPartDesignGui.py b/src/Mod/PartDesign/TestPartDesignGui.py index 1e92c08180..e7838e0e98 100644 --- a/src/Mod/PartDesign/TestPartDesignGui.py +++ b/src/Mod/PartDesign/TestPartDesignGui.py @@ -35,6 +35,7 @@ from PySide import QtGui, QtCore from PySide.QtGui import QApplication from PartDesignTests.TestMaterial import TestMaterial +from PartDesignTests.TestActiveObject import TestActiveObject #timer runs this class in order to access modal dialog class CallableCheckWorkflow: