From 906618c0b60ea57dce90a46668b4c9c61f77ee66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Br=C3=A6strup=20Sayoc?= Date: Mon, 25 Jul 2022 01:52:56 +0200 Subject: [PATCH] [TechDraw] Make annotation test a unittest --- src/Mod/TechDraw/CMakeLists.txt | 2 + src/Mod/TechDraw/TDTest/DVAnnoSymImageTest.py | 14 +------ .../TechDraw/TDTest/DrawViewAnnotationTest.py | 38 +++++++++++++++++++ .../TechDraw/TDTest/TechDrawTestUtilities.py | 19 ++++++++++ src/Mod/TechDraw/TestTechDrawApp.py | 1 + 5 files changed, 61 insertions(+), 13 deletions(-) create mode 100644 src/Mod/TechDraw/TDTest/DrawViewAnnotationTest.py create mode 100644 src/Mod/TechDraw/TDTest/TechDrawTestUtilities.py diff --git a/src/Mod/TechDraw/CMakeLists.txt b/src/Mod/TechDraw/CMakeLists.txt index cea612d665..dda88d9836 100644 --- a/src/Mod/TechDraw/CMakeLists.txt +++ b/src/Mod/TechDraw/CMakeLists.txt @@ -144,10 +144,12 @@ SET(TDTest_SRCS TDTest/DrawHatchTest.py TDTest/DProjGroupTest.py TDTest/DVAnnoSymImageTest.py + TDTest/DrawViewAnnotationTest.py TDTest/DVDimensionTest.py TDTest/DVPartTest.py TDTest/DVSectionTest.py TDTest/DVBalloonTest.py + TDTest/TechDrawTestUtilities.py ) SET(TDTestFile_SRCS diff --git a/src/Mod/TechDraw/TDTest/DVAnnoSymImageTest.py b/src/Mod/TechDraw/TDTest/DVAnnoSymImageTest.py index 66de7a6132..01bd1b9813 100644 --- a/src/Mod/TechDraw/TDTest/DVAnnoSymImageTest.py +++ b/src/Mod/TechDraw/TDTest/DVAnnoSymImageTest.py @@ -26,17 +26,6 @@ def DVAnnoSymImageTest(): FreeCAD.ActiveDocument.Page.Template = FreeCAD.ActiveDocument.Template # page.ViewObject.show() # unit tests run in console mode - # annotation - anno = FreeCAD.ActiveDocument.addObject("TechDraw::DrawViewAnnotation", "TestAnno") - s = "Different Text" - sl = list() - sl.append(s) - anno.Text = sl - anno.TextStyle = "Bold" - page.addView(anno) - anno.X = 30.0 - anno.Y = 150.0 - # symbol sym = FreeCAD.ActiveDocument.addObject("TechDraw::DrawViewSymbol", "TestSymbol") f = open(symbolFileSpec, "r") @@ -55,8 +44,7 @@ def DVAnnoSymImageTest(): FreeCAD.ActiveDocument.recompute() rc = False if ( - ("Up-to-date" in anno.State) - and ("Up-to-date" in sym.State) + ("Up-to-date" in sym.State) and ("Up-to-date" in img.State) ): rc = True diff --git a/src/Mod/TechDraw/TDTest/DrawViewAnnotationTest.py b/src/Mod/TechDraw/TDTest/DrawViewAnnotationTest.py new file mode 100644 index 0000000000..7c3d1df957 --- /dev/null +++ b/src/Mod/TechDraw/TDTest/DrawViewAnnotationTest.py @@ -0,0 +1,38 @@ +from __future__ import print_function + +import FreeCAD +import unittest +from .TechDrawTestUtilities import createPageWithSVGTemplate + + +class DrawViewAnnotationTest(unittest.TestCase): + def setUp(self): + """Creates a page""" + FreeCAD.newDocument("TDAnno") + FreeCAD.setActiveDocument("TDAnno") + FreeCAD.ActiveDocument = FreeCAD.getDocument("TDAnno") + self.page = createPageWithSVGTemplate() + + def tearDown(self): + FreeCAD.closeDocument("TDAnno") + + def testMakeAnnotation(self): + """Tests if an annotation can be added to page""" + anno = FreeCAD.ActiveDocument.addObject( + "TechDraw::DrawViewAnnotation", "TestAnno" + ) + s = "Different Text" + sl = list() + sl.append(s) + anno.Text = sl + anno.TextStyle = "Bold" + self.page.addView(anno) + anno.X = 30.0 + anno.Y = 150.0 + FreeCAD.ActiveDocument.recompute() + + self.assertTrue("Up-to-date" in anno.State) + + +if __name__ == "__main__": + unittest.main() diff --git a/src/Mod/TechDraw/TDTest/TechDrawTestUtilities.py b/src/Mod/TechDraw/TDTest/TechDrawTestUtilities.py new file mode 100644 index 0000000000..930ed39764 --- /dev/null +++ b/src/Mod/TechDraw/TDTest/TechDrawTestUtilities.py @@ -0,0 +1,19 @@ +from __future__ import print_function +import FreeCAD +import os + + +def createPageWithSVGTemplate( + templateName: str = "TestTemplate.svg", +): + """Returns a page with an SVGTemplate added on the ActiveDocument""" + print("2") + path = os.path.dirname(os.path.abspath(__file__)) + print("TDTestAnno path: " + path) + templateFileSpec = path + templateName + + 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 + return page diff --git a/src/Mod/TechDraw/TestTechDrawApp.py b/src/Mod/TechDraw/TestTechDrawApp.py index f2585d459d..9403299f0f 100644 --- a/src/Mod/TechDraw/TestTechDrawApp.py +++ b/src/Mod/TechDraw/TestTechDrawApp.py @@ -23,6 +23,7 @@ import unittest from TDTest.DrawHatchTest import DrawHatchTest # noqa: F401 +from TDTest.DrawViewAnnotationTest import DrawViewAnnotationTest # noqa: F401 from TDTest.DProjGroupTest import DProjGroupTest from TDTest.DVAnnoSymImageTest import DVAnnoSymImageTest from TDTest.DVDimensionTest import DVDimensionTest