diff --git a/tests/svg/7segment_9,9.svg b/tests/svg/7segment_9,9.svg new file mode 100644 index 00000000..ffe7c653 --- /dev/null +++ b/tests/svg/7segment_9,9.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/svg/Arduino Nano3_pcb.svg b/tests/svg/Arduino Nano3_pcb.svg new file mode 100644 index 00000000..f1f3b0c2 --- /dev/null +++ b/tests/svg/Arduino Nano3_pcb.svg @@ -0,0 +1,468 @@ + + + + +Fritzing footprint generated by brd2svg + + + + element:J1 + + package:HEAD15-NOSS + + + + element:J2 + + package:HEAD15-NOSS-1 + + + + element:U2 + + package:SSOP28 + + + + element:U3 + + package:SOT223 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + layer 21 + + text:TX1 + + + TX1 + + + + + text:RX0 + + + RX0 + + + + + text:RST + + + RST + + + + + text:GND + + + GND + + + + + text:D2 + + + D2 + + + + + text:D3 + + + D3 + + + + + text:D4 + + + D4 + + + + + text:D5 + + + D5 + + + + + text:D6 + + + D6 + + + + + text:D7 + + + D7 + + + + + text:D8 + + + D8 + + + + + text:D9 + + + D9 + + + + + text:D10 + + + D10 + + + + + text:D11 + + + D11 + + + + + text:D12 + + + D12 + + + + + text:D13 + + + D13 + + + + + text:3V3 + + + 3V3 + + + + + text:REF + + + REF + + + + + text:A0 + + + A0 + + + + + text:A1 + + + A1 + + + + + text:A2 + + + A2 + + + + + text:A3 + + + A3 + + + + + text:A4 + + + A4 + + + + + text:A5 + + + A5 + + + + + text:A6 + + + A6 + + + + + text:A7 + + + A7 + + + + + text:5V + + + 5V + + + + + text:RST + + + RST + + + + + text:GND + + + GND + + + + + text:VIN + + + VIN + + + + + text:* + + + * + + + + + text:* + + + * + + + + + text:* + + + * + + + + + text:* + + + * + + + + + text:* + + + * + + + + + text:* + + + * + + + + + element:C1 + + package:CAP0805-NP + + + + element:C2 + + package:TAN-A + + + + element:C3 + + package:CAP0805-NP + + + + element:C4 + + package:CAP0805-NP + + + + element:C7 + + package:CAP0805-NP + + + + element:C8 + + package:TAN-A + + + + element:C9 + + package:CAP0805-NP + + + + element:D1 + + package:SOD-123 + + + + element:J1 + + package:HEAD15-NOSS + + + + element:J2 + + package:HEAD15-NOSS-1 + + + + element:RP1 + + package:RES4NT + + + + element:RP2 + + package:RES4NT + + + + element:U$4 + + package:FIDUCIAL-1X2 + + + + element:U$37 + + package:FIDUCIAL-1X2 + + + + element:U$53 + + package:FIDUCIAL-1X2 + + + + element:U$54 + + package:FIDUCIAL-1X2 + + + + element:U2 + + package:SSOP28 + + + + element:U3 + + package:SOT223 + + + + diff --git a/tests/svg/usb_connector.svg b/tests/svg/usb_connector.svg new file mode 100644 index 00000000..25db7071 --- /dev/null +++ b/tests/svg/usb_connector.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_tcl_shell.py b/tests/test_tcl_shell.py index d36f30ed..18b15f71 100644 --- a/tests/test_tcl_shell.py +++ b/tests/test_tcl_shell.py @@ -4,6 +4,8 @@ from PyQt4 import QtGui from PyQt4.QtCore import QThread from FlatCAMApp import App +from os import listdir +from os.path import isfile from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry, FlatCAMCNCjob, FlatCAMExcellon from ObjectUI import GerberObjectUI, GeometryObjectUI from time import sleep @@ -12,11 +14,13 @@ import tempfile class TclShellTest(unittest.TestCase): + svg_files = 'tests/svg' gerber_files = 'tests/gerber_files' copper_bottom_filename = 'detector_copper_bottom.gbr' copper_top_filename = 'detector_copper_top.gbr' cutout_filename = 'detector_contour.gbr' excellon_filename = 'detector_drill.txt' + geometry_name = "geometry" excellon_name = "excellon" gerber_top_name = "top" gerber_bottom_name = "bottom" @@ -177,4 +181,39 @@ class TclShellTest(unittest.TestCase): # mirror bottom excellon self.fc.exec_command_test('mirror %s -box %s -axis X' % (self.excellon_name, self.gerber_cutout_name)) - # TODO: tests for tcl \ No newline at end of file + # TODO: tests for tcl + + def test_import_svg(self): + """ + Test all SVG files inside svg directory. + Problematic SVG files shold be put there as test reference. + :return: + """ + + self.fc.exec_command_test('set_sys units MM') + self.fc.exec_command_test('new') + + file_list = listdir(self.svg_files) + + for svg_file in file_list: + + # import without outname + self.fc.exec_command_test('import_svg "%s/%s"' % (self.svg_files, svg_file)) + + excellon_obj = self.fc.collection.get_by_name(svg_file) + self.assertTrue(isinstance(excellon_obj, FlatCAMGeometry), + "Expected FlatCAMGeometry, instead, %s is %s" % + (self.excellon_name, type(excellon_obj))) + + # import with outname + outname='%s-%s' % (self.geometry_name, svg_file) + self.fc.exec_command_test('import_svg "%s/%s" -outname "%s"' % (self.svg_files, svg_file, outname)) + + excellon_obj = self.fc.collection.get_by_name(outname) + self.assertTrue(isinstance(excellon_obj, FlatCAMGeometry), + "Expected FlatCAMGeometry, instead, %s is %s" % + (self.excellon_name, type(excellon_obj))) + + names = self.fc.collection.get_names() + self.assertEqual(len(names), len(file_list)*2, + "Expected %d objects, found %d" % (len(file_list)*2, len(file_list)))