From 5247b91a63d5dc98f2a82740b28a4496b85f7601 Mon Sep 17 00:00:00 2001 From: wandererfan Date: Wed, 15 Mar 2023 14:11:02 -0400 Subject: [PATCH] [TD]add wait for threads to Dimension test script --- .../TechDraw/TDTest/DrawViewDimensionTest.py | 78 ++++++++++--------- .../TechDraw/TDTest/TechDrawTestUtilities.py | 13 ++-- src/Mod/TechDraw/TestTechDrawApp.py | 1 - src/Mod/TechDraw/TestTechDrawGui.py | 2 + 4 files changed, 53 insertions(+), 41 deletions(-) diff --git a/src/Mod/TechDraw/TDTest/DrawViewDimensionTest.py b/src/Mod/TechDraw/TDTest/DrawViewDimensionTest.py index bba244cea4..4dab44f35b 100644 --- a/src/Mod/TechDraw/TDTest/DrawViewDimensionTest.py +++ b/src/Mod/TechDraw/TDTest/DrawViewDimensionTest.py @@ -1,68 +1,76 @@ import FreeCAD import unittest from .TechDrawTestUtilities import createPageWithSVGTemplate - +from PySide import QtCore class DrawViewDimensionTest(unittest.TestCase): def setUp(self): """Creates a page and 2 views""" - FreeCAD.newDocument("TDDim") - FreeCAD.setActiveDocument("TDDim") - FreeCAD.ActiveDocument = FreeCAD.getDocument("TDDim") + print("DVDTest.setUp()") + FreeCAD.newDocument("TDDimTest") + FreeCAD.setActiveDocument("TDDimTest") + FreeCAD.ActiveDocument = FreeCAD.getDocument("TDDimTest") + self.document = FreeCAD.ActiveDocument # make source feature - FreeCAD.ActiveDocument.addObject("Part::Box", "Box") - FreeCAD.ActiveDocument.addObject("Part::Sphere", "Sphere") + self.document.addObject("Part::Box", "Box") + self.document.addObject("Part::Sphere", "Sphere") # make a page - self.page = createPageWithSVGTemplate() + self.page = createPageWithSVGTemplate(self.document) self.page.Scale = 5.0 - # page.ViewObject.show() # unit tests run in console mode # make Views - self.view1 = FreeCAD.ActiveDocument.addObject("TechDraw::DrawViewPart", "View") - FreeCAD.ActiveDocument.View.Source = [FreeCAD.ActiveDocument.Box] + self.view = self.document.addObject("TechDraw::DrawViewPart", "View") + self.page.addView(self.view) + self.view.Source = [self.document.Box] + self.view.X = 30 + self.view.Y = 150 + + self.view1 = self.document.addObject("TechDraw::DrawViewPart", "View001") self.page.addView(self.view1) - self.view1.X = 30 + self.view1.Source = [self.document.Sphere] + self.view1.X = 220 self.view1.Y = 150 - self.view2 = FreeCAD.activeDocument().addObject( - "TechDraw::DrawViewPart", "View001" - ) - FreeCAD.activeDocument().View001.Source = [FreeCAD.activeDocument().Sphere] - self.page.addView(self.view2) - self.view2.X = 220 - self.view2.Y = 150 - FreeCAD.ActiveDocument.recompute() + + self.document.recompute() + + #wait for threads to complete before checking result + loop = QtCore.QEventLoop() + + timer = QtCore.QTimer() + timer.setSingleShot(True) + timer.timeout.connect(loop.quit) + + timer.start(5000) #5 second delay + loop.exec_() def tearDown(self): - FreeCAD.closeDocument("TDDim") + print("DVDTest.tearDown()") + FreeCAD.closeDocument("TDDimTest") def testLengthDimension(self): - """Tests if a length dimension can be added to view1""" + """Tests if a length dimension can be added to view""" # make length dimension print("making length dimension") - dimension = FreeCAD.ActiveDocument.addObject( - "TechDraw::DrawViewDimension", "Dimension" - ) - dimension.Type = "Distance" - dimension.References2D = [(self.view1, "Edge1")] - print("adding dim1 to page") + + dimension = self.document.addObject("TechDraw::DrawViewDimension", "Dimension") self.page.addView(dimension) + dimension.Type = "Distance" + dimension.References2D = [(self.view, "Edge1")] print("finished length dimension") - FreeCAD.ActiveDocument.recompute() + self.document.recompute() self.assertTrue("Up-to-date" in dimension.State) def testRadiusDimension(self): - """Tests if a radius dimension can be added to view2""" + """Tests if a radius dimension can be added to view1""" print("making radius dimension") - dimension = FreeCAD.ActiveDocument.addObject( - "TechDraw::DrawViewDimension", "Dimension001" - ) + dimension = self.document.addObject("TechDraw::DrawViewDimension", "Dimension001") + self.page.addView(dimension) dimension.Type = "Radius" dimension.MeasureType = "Projected" - dimension.References2D = [(self.view2, "Edge0")] - self.page.addView(dimension) - FreeCAD.ActiveDocument.recompute() + dimension.References2D = [(self.view1, "Edge0")] + self.document.recompute() self.assertTrue("Up-to-date" in dimension.State) diff --git a/src/Mod/TechDraw/TDTest/TechDrawTestUtilities.py b/src/Mod/TechDraw/TDTest/TechDrawTestUtilities.py index ec9ba48f26..b65a634645 100644 --- a/src/Mod/TechDraw/TDTest/TechDrawTestUtilities.py +++ b/src/Mod/TechDraw/TDTest/TechDrawTestUtilities.py @@ -2,13 +2,16 @@ import FreeCAD import os -def createPageWithSVGTemplate(): +def createPageWithSVGTemplate(doc=None): """Returns a page with an SVGTemplate added on the ActiveDocument""" path = os.path.dirname(os.path.abspath(__file__)) templateFileSpec = path + "/TestTemplate.svg" + + if not doc: + doc = FreeCAD.ActiveDocument - page = FreeCAD.ActiveDocument.addObject("TechDraw::DrawPage", "Page") - FreeCAD.ActiveDocument.addObject("TechDraw::DrawSVGTemplate", "Template") - FreeCAD.ActiveDocument.Template.Template = templateFileSpec - FreeCAD.ActiveDocument.Page.Template = FreeCAD.ActiveDocument.Template + page = doc.addObject("TechDraw::DrawPage", "Page") + doc.addObject("TechDraw::DrawSVGTemplate", "Template") + doc.Template.Template = templateFileSpec + doc.Page.Template = doc.Template return page diff --git a/src/Mod/TechDraw/TestTechDrawApp.py b/src/Mod/TechDraw/TestTechDrawApp.py index da99918af1..c547488327 100644 --- a/src/Mod/TechDraw/TestTechDrawApp.py +++ b/src/Mod/TechDraw/TestTechDrawApp.py @@ -24,7 +24,6 @@ from TDTest.DrawHatchTest import DrawHatchTest # noqa: F401 from TDTest.DrawViewAnnotationTest import DrawViewAnnotationTest # noqa: F401 from TDTest.DrawViewBalloonTest import DrawViewBalloonTest # noqa: F401 -from TDTest.DrawViewDimensionTest import DrawViewDimensionTest # noqa: F401 from TDTest.DrawViewImageTest import DrawViewImageTest # noqa: F401 from TDTest.DrawViewSymbolTest import DrawViewSymbolTest # noqa: F401 from TDTest.DrawProjectionGroupTest import DrawProjectionGroupTest # noqa: F401 diff --git a/src/Mod/TechDraw/TestTechDrawGui.py b/src/Mod/TechDraw/TestTechDrawGui.py index 46e729f91d..3c9d18d041 100644 --- a/src/Mod/TechDraw/TestTechDrawGui.py +++ b/src/Mod/TechDraw/TestTechDrawGui.py @@ -25,3 +25,5 @@ from TDTest.DrawViewSectionTest import DrawViewSectionTest # noqa: F401 from TDTest.DrawViewPartTest import DrawViewPartTest # noqa: F401 from TDTest.DrawViewDetailTest import DrawViewDetailTest # noqa: F401 +from TDTest.DrawViewDimensionTest import DrawViewDimensionTest # noqa: F401 +