| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| """Unit tests for the Draft Workbench, SVG import and export tests.""" |
|
|
| |
| |
| |
|
|
| |
| |
|
|
| import os |
| import unittest |
|
|
| import FreeCAD as App |
| import Draft |
| from drafttests import auxiliary as aux |
| from drafttests import test_base |
| from draftutils.messages import _msg |
|
|
| try: |
| import Arch |
| except ModuleNotFoundError: |
| have_arch = False |
| else: |
| have_arch = True |
|
|
|
|
| class DraftSVG(test_base.DraftTestCaseDoc): |
| """Test reading and writing of SVGs with Draft.""" |
|
|
| def test_read_svg(self): |
| """Read an SVG file and import its elements as Draft objects.""" |
| operation = "importSVG.import" |
| _msg(" Test '{}'".format(operation)) |
| _msg(" This test requires an SVG file to read.") |
|
|
| file = "Mod/Draft/drafttest/test.svg" |
| in_file = os.path.join(App.getResourceDir(), file) |
| _msg(" file={}".format(in_file)) |
| _msg(" exists={}".format(os.path.exists(in_file))) |
|
|
| obj = aux.fake_function(in_file) |
| self.assertTrue(obj, "'{}' failed".format(operation)) |
|
|
| def test_export_svg(self): |
| """Create some figures and export them to an SVG file.""" |
| operation = "importSVG.export" |
| _msg(" Test '{}'".format(operation)) |
|
|
| file = "Mod/Draft/drafttest/out_test.svg" |
| out_file = os.path.join(App.getResourceDir(), file) |
| _msg(" file={}".format(out_file)) |
| _msg(" exists={}".format(os.path.exists(out_file))) |
|
|
| obj = aux.fake_function(out_file) |
| self.assertTrue(obj, "'{}' failed".format(operation)) |
|
|
| @unittest.skipIf(not have_arch, "BIM module is not installed") |
| def test_get_svg_from_arch_space_with_zero_vector(self): |
| """Try to get a svg string from an Arch Space with a zero-vector as direction.""" |
| import Part |
| import Draft |
|
|
| sb = Part.makeBox(1, 1, 1) |
| b = self.doc.addObject("Part::Feature", "Box") |
| b.Shape = sb |
|
|
| s = Arch.makeSpace(b) |
| self.doc.recompute() |
|
|
| try: |
| Draft.get_svg(s, direction=App.Vector(0, 0, 0)) |
| except AttributeError as err: |
| self.fail("Cryptic exception thrown: {}".format(err)) |
| except ValueError as err: |
| App.Console.PrintLog("Exception thrown, OK: {}".format(err)) |
| else: |
| self.fail("no exception thrown") |
|
|
|
|
| |
|
|