From cf8e3f8edaac81ea323b3109d2756d3b969a1f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Br=C3=A6strup=20Sayoc?= Date: Wed, 27 Jul 2022 15:32:29 +0200 Subject: [PATCH] [TechDraw] Make dimension test a unittest --- src/Mod/TechDraw/CMakeLists.txt | 2 +- src/Mod/TechDraw/TDTest/DVDimensionTest.py | 82 ------------------- .../TechDraw/TDTest/DrawViewDimensionTest.py | 70 ++++++++++++++++ src/Mod/TechDraw/TestTechDrawApp.py | 10 +-- 4 files changed, 72 insertions(+), 92 deletions(-) delete mode 100644 src/Mod/TechDraw/TDTest/DVDimensionTest.py create mode 100644 src/Mod/TechDraw/TDTest/DrawViewDimensionTest.py diff --git a/src/Mod/TechDraw/CMakeLists.txt b/src/Mod/TechDraw/CMakeLists.txt index a04b08de1c..1b740ade4d 100644 --- a/src/Mod/TechDraw/CMakeLists.txt +++ b/src/Mod/TechDraw/CMakeLists.txt @@ -146,7 +146,7 @@ SET(TDTest_SRCS TDTest/DrawViewAnnotationTest.py TDTest/DrawViewImageTest.py TDTest/DrawViewSymbolTest.py - TDTest/DVDimensionTest.py + TDTest/DrawViewDimensionTest.py TDTest/DVPartTest.py TDTest/DVSectionTest.py TDTest/DVBalloonTest.py diff --git a/src/Mod/TechDraw/TDTest/DVDimensionTest.py b/src/Mod/TechDraw/TDTest/DVDimensionTest.py deleted file mode 100644 index 20c706b038..0000000000 --- a/src/Mod/TechDraw/TDTest/DVDimensionTest.py +++ /dev/null @@ -1,82 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# test script for TechDraw module -# creates a page and 2 views -# adds 1 length dimension to view1 -# adds 1 radius dimension to view2 -from __future__ import print_function - -import FreeCAD -import os - - -def DVDimensionTest(): - path = os.path.dirname(os.path.abspath(__file__)) - print("TDDim path: " + path) - templateFileSpec = path + "/TestTemplate.svg" - - FreeCAD.newDocument("TDDim") - FreeCAD.setActiveDocument("TDDim") - FreeCAD.ActiveDocument = FreeCAD.getDocument("TDDim") - - # make source feature - FreeCAD.ActiveDocument.addObject("Part::Box", "Box") - FreeCAD.ActiveDocument.addObject("Part::Sphere", "Sphere") - - # make a page - 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.Scale = 5.0 - # page.ViewObject.show() # unit tests run in console mode - - # make Views - view1 = FreeCAD.ActiveDocument.addObject("TechDraw::DrawViewPart", "View") - FreeCAD.ActiveDocument.View.Source = [FreeCAD.ActiveDocument.Box] - page.addView(view1) - view1.X = 30 - view1.Y = 150 - view2 = FreeCAD.activeDocument().addObject("TechDraw::DrawViewPart", "View001") - FreeCAD.activeDocument().View001.Source = [FreeCAD.activeDocument().Sphere] - page.addView(view2) - view2.X = 220 - view2.Y = 150 - FreeCAD.ActiveDocument.recompute() - - # make length dimension - print("making length dimension") - dim1 = FreeCAD.ActiveDocument.addObject("TechDraw::DrawViewDimension", "Dimension") - dim1.Type = "Distance" - objs = list() - objs.append(view1) - subObjs = list() - subObjs.append("Edge1") - dim1.References2D = [(view1, "Edge1")] - print("adding dim1 to page") - page.addView(dim1) - print("finished length dimension") - - # make radius dimension - print("making radius dimension") - dim2 = FreeCAD.ActiveDocument.addObject( - "TechDraw::DrawViewDimension", "Dimension001" - ) - dim2.Type = "Radius" - dim2.MeasureType = "Projected" - dim2.References2D = [(view2, "Edge0")] - page.addView(dim2) - - FreeCAD.ActiveDocument.recompute() - - rc = False - if ("Up-to-date" in dim1.State) and ("Up-to-date" in dim2.State): - rc = True - - FreeCAD.closeDocument("TDDim") - return rc - - -if __name__ == "__main__": - DVDimensionTest() diff --git a/src/Mod/TechDraw/TDTest/DrawViewDimensionTest.py b/src/Mod/TechDraw/TDTest/DrawViewDimensionTest.py new file mode 100644 index 0000000000..bba244cea4 --- /dev/null +++ b/src/Mod/TechDraw/TDTest/DrawViewDimensionTest.py @@ -0,0 +1,70 @@ +import FreeCAD +import unittest +from .TechDrawTestUtilities import createPageWithSVGTemplate + + +class DrawViewDimensionTest(unittest.TestCase): + def setUp(self): + """Creates a page and 2 views""" + FreeCAD.newDocument("TDDim") + FreeCAD.setActiveDocument("TDDim") + FreeCAD.ActiveDocument = FreeCAD.getDocument("TDDim") + + # make source feature + FreeCAD.ActiveDocument.addObject("Part::Box", "Box") + FreeCAD.ActiveDocument.addObject("Part::Sphere", "Sphere") + + # make a page + self.page = createPageWithSVGTemplate() + 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.page.addView(self.view1) + self.view1.X = 30 + 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() + + def tearDown(self): + FreeCAD.closeDocument("TDDim") + + def testLengthDimension(self): + """Tests if a length dimension can be added to view1""" + # 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") + self.page.addView(dimension) + print("finished length dimension") + FreeCAD.ActiveDocument.recompute() + self.assertTrue("Up-to-date" in dimension.State) + + def testRadiusDimension(self): + """Tests if a radius dimension can be added to view2""" + print("making radius dimension") + dimension = FreeCAD.ActiveDocument.addObject( + "TechDraw::DrawViewDimension", "Dimension001" + ) + dimension.Type = "Radius" + dimension.MeasureType = "Projected" + dimension.References2D = [(self.view2, "Edge0")] + self.page.addView(dimension) + FreeCAD.ActiveDocument.recompute() + self.assertTrue("Up-to-date" in dimension.State) + + +if __name__ == "__main__": + unittest.main() diff --git a/src/Mod/TechDraw/TestTechDrawApp.py b/src/Mod/TechDraw/TestTechDrawApp.py index fa0ef9e401..9b25d14f47 100644 --- a/src/Mod/TechDraw/TestTechDrawApp.py +++ b/src/Mod/TechDraw/TestTechDrawApp.py @@ -24,10 +24,10 @@ import unittest from TDTest.DrawHatchTest import DrawHatchTest # noqa: F401 from TDTest.DrawViewAnnotationTest import DrawViewAnnotationTest # 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.DProjGroupTest import DProjGroupTest -from TDTest.DVDimensionTest import DVDimensionTest from TDTest.DVPartTest import DVPartTest from TDTest.DVSectionTest import DVSectionTest from TDTest.DVBalloonTest import DVBalloonTest @@ -54,14 +54,6 @@ class TechDrawTestCases(unittest.TestCase): else: print("TD DrawProjGroup test failed") - def testDimensionCase(self): - print("starting TD DrawViewDimension test") - rc = DVDimensionTest() - if rc: - print("TD DrawViewDimension test passed") - else: - print("TD DrawViewDimension test failed") - def testSectionCase(self): print("starting TD DrawViewSection test") rc = DVSectionTest()