Draft: add unit test for issue #9912
This commit is contained in:
@@ -53,6 +53,7 @@ SET(Draft_tests
|
||||
drafttests/test_import_gui.py
|
||||
drafttests/test_import_tools.py
|
||||
drafttests/test_pivy.py
|
||||
drafttests/test_array.py
|
||||
drafttests/test_creation.py
|
||||
drafttests/test_modification.py
|
||||
drafttests/test_svg.py
|
||||
|
||||
@@ -110,6 +110,7 @@ from drafttests.test_dxf import DraftDXF as DraftTest06
|
||||
from drafttests.test_dwg import DraftDWG as DraftTest07
|
||||
# from drafttests.test_oca import DraftOCA as DraftTest08
|
||||
# from drafttests.test_airfoildat import DraftAirfoilDAT as DraftTest09
|
||||
from drafttests.test_array import DraftArray as DraftTest10
|
||||
|
||||
# Use the modules so that code checkers don't complain (flake8)
|
||||
True if DraftTest01 else False
|
||||
@@ -121,3 +122,4 @@ True if DraftTest06 else False
|
||||
True if DraftTest07 else False
|
||||
# True if DraftTest08 else False
|
||||
# True if DraftTest09 else False
|
||||
True if DraftTest10 else False
|
||||
|
||||
91
src/Mod/Draft/drafttests/test_array.py
Normal file
91
src/Mod/Draft/drafttests/test_array.py
Normal file
@@ -0,0 +1,91 @@
|
||||
# ***************************************************************************
|
||||
# * Copyright (c) 2023 Werner Mayer <wmayer[at]users.sourceforge.net> *
|
||||
# * *
|
||||
# * 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 *
|
||||
# * <https://www.gnu.org/licenses/>. *
|
||||
# * *
|
||||
# ***************************************************************************
|
||||
"""Unit tests for the Draft Workbench, array tests."""
|
||||
## @package test_array
|
||||
# \ingroup drafttests
|
||||
# \brief Unit tests for the Draft Workbench, array tests.
|
||||
|
||||
## \addtogroup drafttests
|
||||
# @{
|
||||
import unittest
|
||||
import math
|
||||
|
||||
import FreeCAD as App
|
||||
import Draft
|
||||
|
||||
from FreeCAD import Vector
|
||||
from draftutils.messages import _msg
|
||||
|
||||
|
||||
class DraftArray(unittest.TestCase):
|
||||
"""Test Draft array functions."""
|
||||
|
||||
def setUp(self):
|
||||
"""Set up a new document to hold the tests.
|
||||
|
||||
This is executed before every test, so we create a document
|
||||
to hold the objects.
|
||||
"""
|
||||
doc_name = self.__class__.__name__
|
||||
if App.ActiveDocument:
|
||||
if App.ActiveDocument.Name != doc_name:
|
||||
App.newDocument(doc_name)
|
||||
else:
|
||||
App.newDocument(doc_name)
|
||||
App.setActiveDocument(doc_name)
|
||||
self.doc = App.ActiveDocument
|
||||
_msg(" Temporary document '{}'".format(self.doc.Name))
|
||||
|
||||
def test_link_array(self):
|
||||
"""Create a link array."""
|
||||
box = self.doc.addObject("Part::Box","Box")
|
||||
box.Label = "Box"
|
||||
self.doc.recompute()
|
||||
|
||||
array = Draft.make_ortho_array(box, v_x=App.Vector(100.0, 0.0, 0.0),
|
||||
v_y=App.Vector(0.0, 100.0, 0.0),
|
||||
v_z=App.Vector(0.0, 0.0, 100.0),
|
||||
n_x=12, n_y=1, n_z=1, use_link=True)
|
||||
|
||||
Draft.autogroup(array)
|
||||
array.ExpandArray = True
|
||||
array.Fuse = False
|
||||
self.doc.recompute(None,True,True)
|
||||
|
||||
array.NumberX = 6
|
||||
self.doc.recompute(None,True,True)
|
||||
self.assertEqual(array.Count, array.NumberX)
|
||||
|
||||
array.NumberX = 24
|
||||
self.doc.recompute(None,True,True)
|
||||
self.assertEqual(array.Count, array.NumberX)
|
||||
|
||||
self.doc.recompute(None,True,True)
|
||||
self.assertEqual(array.Count, array.NumberX)
|
||||
|
||||
def tearDown(self):
|
||||
"""Finish the test.
|
||||
|
||||
This is executed after each test, so we close the document.
|
||||
"""
|
||||
App.closeDocument(self.doc.Name)
|
||||
|
||||
## @}
|
||||
Reference in New Issue
Block a user