[TechDraw] Make projection group test a unittest
This commit is contained in:
committed by
WandererFan
parent
7cd860f28c
commit
ea06981ccc
94
src/Mod/TechDraw/TDTest/DrawProjectionGroupTest.py
Normal file
94
src/Mod/TechDraw/TDTest/DrawProjectionGroupTest.py
Normal file
@@ -0,0 +1,94 @@
|
||||
import FreeCAD
|
||||
import unittest
|
||||
from .TechDrawTestUtilities import createPageWithSVGTemplate
|
||||
|
||||
|
||||
class DrawProjectionGroupTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
"""Creates a box and sphere to make a fusions from them.
|
||||
Then creates a page and projection group"""
|
||||
FreeCAD.newDocument("TDGroup")
|
||||
FreeCAD.setActiveDocument("TDGroup")
|
||||
FreeCAD.ActiveDocument = FreeCAD.getDocument("TDGroup")
|
||||
self.document = FreeCAD.ActiveDocument
|
||||
print("document created")
|
||||
|
||||
# make Fusion feature
|
||||
box = FreeCAD.ActiveDocument.addObject("Part::Box", "Box")
|
||||
box.recompute()
|
||||
print("box created")
|
||||
sphere = FreeCAD.ActiveDocument.addObject("Part::Sphere", "Sphere")
|
||||
sphere.recompute()
|
||||
print("sphere created")
|
||||
self.fusion = FreeCAD.ActiveDocument.addObject("Part::MultiFuse", "Fusion")
|
||||
FreeCAD.ActiveDocument.Fusion.Shapes = [box, sphere]
|
||||
self.fusion.recompute()
|
||||
print("Fusion created")
|
||||
|
||||
# make a page
|
||||
print("making a page")
|
||||
self.page = createPageWithSVGTemplate()
|
||||
print("Page created")
|
||||
|
||||
def tearDown(self):
|
||||
FreeCAD.closeDocument("TDGroup")
|
||||
|
||||
def testMakeProjectionGroup(self):
|
||||
"""Tests if a projection group can be added to view1"""
|
||||
# make projection group
|
||||
print("making a projection group")
|
||||
self.document.openTransaction("Create Proj Group")
|
||||
groupName = "ProjGroup"
|
||||
group = FreeCAD.ActiveDocument.addObject("TechDraw::DrawProjGroup", groupName)
|
||||
self.page.addView(group)
|
||||
print("Group created")
|
||||
group.Source = [self.fusion]
|
||||
|
||||
print("adding views")
|
||||
group.addProjection("Front") # need an Anchor
|
||||
print("added Front")
|
||||
|
||||
# update group
|
||||
anchorDir = FreeCAD.Vector(0.0, 0.0, 1.0)
|
||||
anchorRot = FreeCAD.Vector(1.0, 0.0, 0.0)
|
||||
group.Anchor.Direction = anchorDir
|
||||
group.Anchor.RotationVector = anchorRot
|
||||
print("Anchor values set")
|
||||
group.Anchor.recompute()
|
||||
self.document.commitTransaction()
|
||||
print("Front/Anchor recomputed")
|
||||
group.addProjection("Left")
|
||||
print("added Left")
|
||||
group.addProjection("Top")
|
||||
print("added Top")
|
||||
group.addProjection("Right")
|
||||
print("added Right")
|
||||
group.addProjection("Rear")
|
||||
print("added Rear")
|
||||
group.addProjection("Bottom")
|
||||
print("added Bottom")
|
||||
|
||||
# remove a view from projection group
|
||||
group.removeProjection("Left")
|
||||
print("removed Left")
|
||||
|
||||
# test getItemByLabel method
|
||||
print("testing getItemByLabel")
|
||||
label = "Top"
|
||||
item = group.getItemByLabel(label)
|
||||
print("Item Label: " + label + " Item Name: " + item.Name)
|
||||
|
||||
print("recomputing document")
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
|
||||
for v in group.Views:
|
||||
print("View: " + v.Label + " " + v.TypeId)
|
||||
v.autoPosition()
|
||||
|
||||
group.recompute()
|
||||
|
||||
self.assertTrue("Up-to-date" in group.State)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user