Merged in sopak/flatcam/tcl-commands (pull request #41)
Tcl command tests
This commit is contained in:
18
tests/tclCommands/__init__.py
Normal file
18
tests/tclCommands/__init__.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
import pkgutil
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# allowed command tests (please append them alphabetically ordered)
|
||||||
|
from test_TclCommandAddPolygon import *
|
||||||
|
from test_TclCommandAddPolyline import *
|
||||||
|
from test_TclCommandCncjob import *
|
||||||
|
from test_TclCommandDrillcncjob import *
|
||||||
|
from test_TclCommandExportGcode import *
|
||||||
|
from test_TclCommandExteriors import *
|
||||||
|
from test_TclCommandImportSvg import *
|
||||||
|
from test_TclCommandInteriors import *
|
||||||
|
from test_TclCommandIsolate import *
|
||||||
|
from test_TclCommandNew import *
|
||||||
|
from test_TclCommandNewGeometry import *
|
||||||
|
from test_TclCommandOpenExcellon import *
|
||||||
|
from test_TclCommandOpenGerber import *
|
||||||
|
from test_TclCommandPaintPolygon import *
|
||||||
18
tests/tclCommands/test_TclCommandAddPolygon.py
Normal file
18
tests/tclCommands/test_TclCommandAddPolygon.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
from FlatCAMObj import FlatCAMGeometry
|
||||||
|
|
||||||
|
|
||||||
|
def test_add_polygon(self):
|
||||||
|
"""
|
||||||
|
Test add polygon into geometry
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name)
|
||||||
|
geometry_obj = self.fc.collection.get_by_name(self.geometry_name)
|
||||||
|
self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
% (self.geometry_name, type(geometry_obj)))
|
||||||
|
|
||||||
|
points = '0 0 20 0 10 10 0 10'
|
||||||
|
|
||||||
|
self.fc.exec_command_test('add_polygon "%s" %s' % (self.geometry_name, points))
|
||||||
18
tests/tclCommands/test_TclCommandAddPolyline.py
Normal file
18
tests/tclCommands/test_TclCommandAddPolyline.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
from FlatCAMObj import FlatCAMGeometry
|
||||||
|
|
||||||
|
|
||||||
|
def test_add_polyline(self):
|
||||||
|
"""
|
||||||
|
Test add polyline into geometry
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name)
|
||||||
|
geometry_obj = self.fc.collection.get_by_name(self.geometry_name)
|
||||||
|
self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
% (self.geometry_name, type(geometry_obj)))
|
||||||
|
|
||||||
|
points = '0 0 20 0 10 10 0 10 33 33'
|
||||||
|
|
||||||
|
self.fc.exec_command_test('add_polyline "%s" %s' % (self.geometry_name, points))
|
||||||
17
tests/tclCommands/test_TclCommandCncjob.py
Normal file
17
tests/tclCommands/test_TclCommandCncjob.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry, FlatCAMObj
|
||||||
|
from test_TclCommandIsolate import *
|
||||||
|
|
||||||
|
def test_cncjob(self):
|
||||||
|
"""
|
||||||
|
Test cncjob
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
# reuse isolate tests
|
||||||
|
test_isolate(self)
|
||||||
|
|
||||||
|
self.fc.exec_command_test('cncjob %s_iso -tooldia 0.5 -z_cut 0.05 -z_move 3 -feedrate 300' % self.gerber_top_name)
|
||||||
|
cam_top_obj = self.fc.collection.get_by_name(self.gerber_top_name + '_iso_cnc')
|
||||||
|
self.assertTrue(isinstance(cam_top_obj, FlatCAMObj), "Expected FlatCAMObj, instead, %s is %s"
|
||||||
|
% (self.gerber_top_name + '_iso_cnc', type(cam_top_obj)))
|
||||||
18
tests/tclCommands/test_TclCommandDrillcncjob.py
Normal file
18
tests/tclCommands/test_TclCommandDrillcncjob.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
from FlatCAMObj import FlatCAMObj
|
||||||
|
from test_TclCommandOpenExcellon import *
|
||||||
|
|
||||||
|
|
||||||
|
def test_drillcncjob(self):
|
||||||
|
"""
|
||||||
|
Test cncjob
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
# reuse open excellontests
|
||||||
|
test_open_excellon(self)
|
||||||
|
|
||||||
|
self.fc.exec_command_test('drillcncjob %s -tools all -drillz 0.5 -travelz 3 -feedrate 300'
|
||||||
|
% self.excellon_name)
|
||||||
|
cam_top_obj = self.fc.collection.get_by_name(self.excellon_name + '_cnc')
|
||||||
|
self.assertTrue(isinstance(cam_top_obj, FlatCAMObj), "Expected FlatCAMObj, instead, %s is %s"
|
||||||
|
% (self.excellon_name + '_cnc', type(cam_top_obj)))
|
||||||
33
tests/tclCommands/test_TclCommandExportGcode.py
Normal file
33
tests/tclCommands/test_TclCommandExportGcode.py
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
import os
|
||||||
|
import tempfile
|
||||||
|
|
||||||
|
from test_TclCommandCncjob import *
|
||||||
|
from test_TclCommandDrillcncjob import *
|
||||||
|
|
||||||
|
|
||||||
|
def test_export_gcodecncjob(self):
|
||||||
|
"""
|
||||||
|
Test cncjob
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
# reuse tests
|
||||||
|
test_cncjob(self)
|
||||||
|
test_drillcncjob(self)
|
||||||
|
|
||||||
|
with tempfile.NamedTemporaryFile(prefix='unittest.', suffix="." + self.excellon_name + '.gcode', delete=True)\
|
||||||
|
as tmp_file:
|
||||||
|
output_filename = tmp_file.name
|
||||||
|
self.fc.exec_command_test('write_gcode "%s" "%s"' % (self.excellon_name + '_cnc', output_filename))
|
||||||
|
self.assertTrue(os.path.isfile(output_filename))
|
||||||
|
os.remove(output_filename)
|
||||||
|
|
||||||
|
with tempfile.NamedTemporaryFile(prefix='unittest.', suffix="." + self.gerber_top_name + '.gcode', delete=True)\
|
||||||
|
as tmp_file:
|
||||||
|
output_filename = tmp_file.name
|
||||||
|
self.fc.exec_command_test('write_gcode "%s" "%s"' % (self.gerber_top_name + '_iso_cnc', output_filename))
|
||||||
|
self.assertTrue(os.path.isfile(output_filename))
|
||||||
|
os.remove(output_filename)
|
||||||
|
|
||||||
|
# TODO check what is inside files , it should be same every time
|
||||||
24
tests/tclCommands/test_TclCommandExteriors.py
Normal file
24
tests/tclCommands/test_TclCommandExteriors.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry
|
||||||
|
|
||||||
|
|
||||||
|
def test_exteriors(self):
|
||||||
|
"""
|
||||||
|
Test exteriors
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.fc.exec_command_test('open_gerber %s/%s -outname %s'
|
||||||
|
% (self.gerber_files, self.cutout_filename, self.gerber_cutout_name))
|
||||||
|
gerber_cutout_obj = self.fc.collection.get_by_name(self.gerber_cutout_name)
|
||||||
|
self.assertTrue(isinstance(gerber_cutout_obj, FlatCAMGerber), "Expected FlatCAMGerber, instead, %s is %s"
|
||||||
|
% (self.gerber_cutout_name, type(gerber_cutout_obj)))
|
||||||
|
|
||||||
|
# exteriors interiors and delete isolated traces
|
||||||
|
self.fc.exec_command_test('isolate %s -dia %f' % (self.gerber_cutout_name, self.engraver_diameter))
|
||||||
|
self.fc.exec_command_test('exteriors %s -outname %s'
|
||||||
|
% (self.gerber_cutout_name + '_iso', self.gerber_cutout_name + '_iso_exterior'))
|
||||||
|
self.fc.exec_command_test('delete %s' % (self.gerber_cutout_name + '_iso'))
|
||||||
|
obj = self.fc.collection.get_by_name(self.gerber_cutout_name + '_iso_exterior')
|
||||||
|
self.assertTrue(isinstance(obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
% (self.gerber_cutout_name + '_iso_exterior', type(obj)))
|
||||||
60
tests/tclCommands/test_TclCommandImportSvg.py
Normal file
60
tests/tclCommands/test_TclCommandImportSvg.py
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
from os import listdir
|
||||||
|
|
||||||
|
from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry
|
||||||
|
|
||||||
|
|
||||||
|
def test_import_svg(self):
|
||||||
|
"""
|
||||||
|
Test all SVG files inside svg directory.
|
||||||
|
Problematic SVG files shold be put there as test reference.
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
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))
|
||||||
|
|
||||||
|
obj = self.fc.collection.get_by_name(svg_file)
|
||||||
|
self.assertTrue(isinstance(obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
% (svg_file, type(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))
|
||||||
|
|
||||||
|
obj = self.fc.collection.get_by_name(outname)
|
||||||
|
self.assertTrue(isinstance(obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
% (outname, type(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)))
|
||||||
|
|
||||||
|
|
||||||
|
def test_import_svg_as_geometry(self):
|
||||||
|
|
||||||
|
self.fc.exec_command_test('import_svg "%s/%s" -type geometry -outname "%s"'
|
||||||
|
% (self.svg_files, self.svg_filename, self.geometry_name))
|
||||||
|
|
||||||
|
obj = self.fc.collection.get_by_name(self.geometry_name)
|
||||||
|
self.assertTrue(isinstance(obj, FlatCAMGeometry) and not isinstance(obj, FlatCAMGerber),
|
||||||
|
"Expected FlatCAMGeometry, instead, %s is %s" % (self.geometry_name, type(obj)))
|
||||||
|
|
||||||
|
|
||||||
|
def test_import_svg_as_gerber(self):
|
||||||
|
|
||||||
|
self.fc.exec_command_test('import_svg "%s/%s" -type gerber -outname "%s"'
|
||||||
|
% (self.svg_files, self.svg_filename, self.gerber_name))
|
||||||
|
|
||||||
|
obj = self.fc.collection.get_by_name(self.gerber_name)
|
||||||
|
self.assertTrue(isinstance(obj, FlatCAMGerber),
|
||||||
|
"Expected FlatCAMGerber, instead, %s is %s" % (self.gerber_name, type(obj)))
|
||||||
|
|
||||||
|
self.fc.exec_command_test('isolate "%s"' % self.gerber_name)
|
||||||
|
obj = self.fc.collection.get_by_name(self.gerber_name+'_iso')
|
||||||
|
self.assertTrue(isinstance(obj, FlatCAMGeometry),
|
||||||
|
"Expected FlatCAMGeometry, instead, %s is %s" % (self.gerber_name+'_iso', type(obj)))
|
||||||
24
tests/tclCommands/test_TclCommandInteriors.py
Normal file
24
tests/tclCommands/test_TclCommandInteriors.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry
|
||||||
|
|
||||||
|
|
||||||
|
def test_interiors(self):
|
||||||
|
"""
|
||||||
|
Test interiors
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.fc.exec_command_test('open_gerber %s/%s -outname %s'
|
||||||
|
% (self.gerber_files, self.cutout_filename, self.gerber_cutout_name))
|
||||||
|
gerber_cutout_obj = self.fc.collection.get_by_name(self.gerber_cutout_name)
|
||||||
|
self.assertTrue(isinstance(gerber_cutout_obj, FlatCAMGerber), "Expected FlatCAMGerber, instead, %s is %s"
|
||||||
|
% (self.gerber_cutout_name, type(gerber_cutout_obj)))
|
||||||
|
|
||||||
|
# interiors and delete isolated traces
|
||||||
|
self.fc.exec_command_test('isolate %s -dia %f' % (self.gerber_cutout_name, self.engraver_diameter))
|
||||||
|
self.fc.exec_command_test('interiors %s -outname %s'
|
||||||
|
% (self.gerber_cutout_name + '_iso', self.gerber_cutout_name + '_iso_interior'))
|
||||||
|
self.fc.exec_command_test('delete %s' % (self.gerber_cutout_name + '_iso'))
|
||||||
|
obj = self.fc.collection.get_by_name(self.gerber_cutout_name + '_iso_interior')
|
||||||
|
self.assertTrue(isinstance(obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
% (self.gerber_cutout_name + '_iso_interior', type(obj)))
|
||||||
21
tests/tclCommands/test_TclCommandIsolate.py
Normal file
21
tests/tclCommands/test_TclCommandIsolate.py
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry
|
||||||
|
|
||||||
|
|
||||||
|
def test_isolate(self):
|
||||||
|
"""
|
||||||
|
Test isolate gerber
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.fc.exec_command_test('open_gerber %s/%s -outname %s'
|
||||||
|
% (self.gerber_files, self.copper_top_filename, self.gerber_top_name))
|
||||||
|
gerber_top_obj = self.fc.collection.get_by_name(self.gerber_top_name)
|
||||||
|
self.assertTrue(isinstance(gerber_top_obj, FlatCAMGerber), "Expected FlatCAMGerber, instead, %s is %s"
|
||||||
|
% (self.gerber_top_name, type(gerber_top_obj)))
|
||||||
|
|
||||||
|
# isolate traces
|
||||||
|
self.fc.exec_command_test('isolate %s -dia %f' % (self.gerber_top_name, self.engraver_diameter))
|
||||||
|
geometry_top_obj = self.fc.collection.get_by_name(self.gerber_top_name+'_iso')
|
||||||
|
self.assertTrue(isinstance(geometry_top_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
% (self.gerber_top_name+'_iso', type(geometry_top_obj)))
|
||||||
48
tests/tclCommands/test_TclCommandNew.py
Normal file
48
tests/tclCommands/test_TclCommandNew.py
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
from FlatCAMObj import FlatCAMGeometry
|
||||||
|
|
||||||
|
|
||||||
|
def test_new(self):
|
||||||
|
"""
|
||||||
|
Test new project
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name)
|
||||||
|
geometry_obj = self.fc.collection.get_by_name(self.geometry_name)
|
||||||
|
self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
% (self.geometry_name, type(geometry_obj)))
|
||||||
|
|
||||||
|
self.fc.exec_command_test('proc testproc {} { puts "testresult" }')
|
||||||
|
|
||||||
|
result = self.fc.exec_command_test('testproc')
|
||||||
|
|
||||||
|
self.assertEqual(result, "testresult",'testproc should return "testresult"')
|
||||||
|
|
||||||
|
self.fc.exec_command_test('set_sys units MM')
|
||||||
|
self.fc.exec_command_test('new')
|
||||||
|
|
||||||
|
# object should not exists anymore
|
||||||
|
geometry_obj = self.fc.collection.get_by_name(self.geometry_name)
|
||||||
|
self.assertIsNone(geometry_obj, "Expected object to be None, instead, %s is %s"
|
||||||
|
% (self.geometry_name, type(geometry_obj)))
|
||||||
|
|
||||||
|
# TODO after new it should delete all procedures and variables, we need to make sure "testproc" does not exists
|
||||||
|
|
||||||
|
# Test it again with same names
|
||||||
|
|
||||||
|
self.fc.exec_command_test('set_sys units MM')
|
||||||
|
self.fc.exec_command_test('new')
|
||||||
|
|
||||||
|
self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name)
|
||||||
|
geometry_obj = self.fc.collection.get_by_name(self.geometry_name)
|
||||||
|
self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
% (self.geometry_name, type(geometry_obj)))
|
||||||
|
|
||||||
|
self.fc.exec_command_test('set_sys units MM')
|
||||||
|
self.fc.exec_command_test('new')
|
||||||
|
|
||||||
|
# object should not exists anymore
|
||||||
|
geometry_obj = self.fc.collection.get_by_name(self.geometry_name)
|
||||||
|
self.assertIsNone(geometry_obj, "Expected object to be None, instead, %s is %s"
|
||||||
|
% (self.geometry_name, type(geometry_obj)))
|
||||||
14
tests/tclCommands/test_TclCommandNewGeometry.py
Normal file
14
tests/tclCommands/test_TclCommandNewGeometry.py
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
from FlatCAMObj import FlatCAMGeometry
|
||||||
|
|
||||||
|
|
||||||
|
def test_new_geometry(self):
|
||||||
|
"""
|
||||||
|
Test create new geometry
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name)
|
||||||
|
geometry_obj = self.fc.collection.get_by_name(self.geometry_name)
|
||||||
|
self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
% (self.geometry_name, type(geometry_obj)))
|
||||||
15
tests/tclCommands/test_TclCommandOpenExcellon.py
Normal file
15
tests/tclCommands/test_TclCommandOpenExcellon.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
from FlatCAMObj import FlatCAMExcellon
|
||||||
|
|
||||||
|
|
||||||
|
def test_open_excellon(self):
|
||||||
|
"""
|
||||||
|
Test open excellon file
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.fc.exec_command_test('open_excellon %s/%s -outname %s'
|
||||||
|
% (self.gerber_files, self.excellon_filename, self.excellon_name))
|
||||||
|
excellon_obj = self.fc.collection.get_by_name(self.excellon_name)
|
||||||
|
self.assertTrue(isinstance(excellon_obj, FlatCAMExcellon), "Expected FlatCAMExcellon, instead, %s is %s"
|
||||||
|
% (self.excellon_name, type(excellon_obj)))
|
||||||
25
tests/tclCommands/test_TclCommandOpenGerber.py
Normal file
25
tests/tclCommands/test_TclCommandOpenGerber.py
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
from FlatCAMObj import FlatCAMGerber
|
||||||
|
|
||||||
|
|
||||||
|
def test_open_gerber(self):
|
||||||
|
"""
|
||||||
|
Test open gerber file
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.fc.exec_command_test('open_gerber %s/%s -outname %s'
|
||||||
|
% (self.gerber_files, self.copper_top_filename, self.gerber_top_name))
|
||||||
|
gerber_top_obj = self.fc.collection.get_by_name(self.gerber_top_name)
|
||||||
|
self.assertTrue(isinstance(gerber_top_obj, FlatCAMGerber), "Expected FlatCAMGerber, instead, %s is %s"
|
||||||
|
% (self.gerber_top_name, type(gerber_top_obj)))
|
||||||
|
|
||||||
|
self.fc.exec_command_test('open_gerber %s/%s -outname %s'
|
||||||
|
% (self.gerber_files, self.copper_bottom_filename, self.gerber_bottom_name))
|
||||||
|
gerber_bottom_obj = self.fc.collection.get_by_name(self.gerber_bottom_name)
|
||||||
|
self.assertTrue(isinstance(gerber_bottom_obj, FlatCAMGerber), "Expected FlatCAMGerber, instead, %s is %s"
|
||||||
|
% (self.gerber_bottom_name, type(gerber_bottom_obj)))
|
||||||
|
|
||||||
|
#just read with original name
|
||||||
|
self.fc.exec_command_test('open_gerber %s/%s'
|
||||||
|
% (self.gerber_files, self.copper_top_filename))
|
||||||
25
tests/tclCommands/test_TclCommandPaintPolygon.py
Normal file
25
tests/tclCommands/test_TclCommandPaintPolygon.py
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
from FlatCAMObj import FlatCAMGeometry
|
||||||
|
|
||||||
|
|
||||||
|
def test_paint_polygon(self):
|
||||||
|
"""
|
||||||
|
Test create paint polygon geometry
|
||||||
|
:param self:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.fc.exec_command_test('new_geometry "%s"' % self.geometry_name)
|
||||||
|
geometry_obj = self.fc.collection.get_by_name(self.geometry_name)
|
||||||
|
self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
% (self.geometry_name, type(geometry_obj)))
|
||||||
|
|
||||||
|
points = '0 0 20 0 10 10 0 10'
|
||||||
|
|
||||||
|
self.fc.exec_command_test('add_polygon "%s" %s' % (self.geometry_name, points))
|
||||||
|
|
||||||
|
# TODO rename to paint_polygon in future oop command implementation
|
||||||
|
self.fc.exec_command_test('paint_poly "%s" 5 5 2 0.5' % (self.geometry_name))
|
||||||
|
geometry_obj = self.fc.collection.get_by_name(self.geometry_name+'_paint')
|
||||||
|
# TODO uncoment check after oop implementation, because of threading inside paint poly
|
||||||
|
#self.assertTrue(isinstance(geometry_obj, FlatCAMGeometry), "Expected FlatCAMGeometry, instead, %s is %s"
|
||||||
|
# % (self.geometry_name+'_paint', type(geometry_obj)))
|
||||||
@@ -31,6 +31,10 @@ class TclShellTest(unittest.TestCase):
|
|||||||
cutout_diameter = 3
|
cutout_diameter = 3
|
||||||
drill_diameter = 0.8
|
drill_diameter = 0.8
|
||||||
|
|
||||||
|
# load test methods to split huge test file into smaller pieces
|
||||||
|
# reason for this is reuse one test window only,
|
||||||
|
from tests.tclCommands import *
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(self):
|
def setUpClass(self):
|
||||||
|
|
||||||
@@ -41,6 +45,10 @@ class TclShellTest(unittest.TestCase):
|
|||||||
self.fc = App(user_defaults=False)
|
self.fc = App(user_defaults=False)
|
||||||
self.fc.ui.shell_dock.show()
|
self.fc.ui.shell_dock.show()
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.fc.exec_command_test('set_sys units MM')
|
||||||
|
self.fc.exec_command_test('new')
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def tearDownClass(self):
|
def tearDownClass(self):
|
||||||
self.fc.tcl=None
|
self.fc.tcl=None
|
||||||
@@ -69,10 +77,6 @@ class TclShellTest(unittest.TestCase):
|
|||||||
|
|
||||||
# open gerber files top, bottom and cutout
|
# open gerber files top, bottom and cutout
|
||||||
|
|
||||||
|
|
||||||
self.fc.exec_command_test('set_sys units MM')
|
|
||||||
self.fc.exec_command_test('new')
|
|
||||||
|
|
||||||
self.fc.exec_command_test('open_gerber %s/%s -outname %s' % (self.gerber_files, self.copper_top_filename, self.gerber_top_name))
|
self.fc.exec_command_test('open_gerber %s/%s -outname %s' % (self.gerber_files, self.copper_top_filename, self.gerber_top_name))
|
||||||
gerber_top_obj = self.fc.collection.get_by_name(self.gerber_top_name)
|
gerber_top_obj = self.fc.collection.get_by_name(self.gerber_top_name)
|
||||||
self.assertTrue(isinstance(gerber_top_obj, FlatCAMGerber),
|
self.assertTrue(isinstance(gerber_top_obj, FlatCAMGerber),
|
||||||
@@ -161,9 +165,6 @@ class TclShellTest(unittest.TestCase):
|
|||||||
|
|
||||||
def test_open_gerber(self):
|
def test_open_gerber(self):
|
||||||
|
|
||||||
self.fc.exec_command_test('set_sys units MM')
|
|
||||||
self.fc.exec_command_test('new')
|
|
||||||
|
|
||||||
self.fc.exec_command_test('open_gerber %s/%s -outname %s' % (self.gerber_files, self.copper_top_filename, self.gerber_top_name))
|
self.fc.exec_command_test('open_gerber %s/%s -outname %s' % (self.gerber_files, self.copper_top_filename, self.gerber_top_name))
|
||||||
gerber_top_obj = self.fc.collection.get_by_name(self.gerber_top_name)
|
gerber_top_obj = self.fc.collection.get_by_name(self.gerber_top_name)
|
||||||
self.assertTrue(isinstance(gerber_top_obj, FlatCAMGerber),
|
self.assertTrue(isinstance(gerber_top_obj, FlatCAMGerber),
|
||||||
@@ -172,8 +173,6 @@ class TclShellTest(unittest.TestCase):
|
|||||||
|
|
||||||
def test_excellon_flow(self):
|
def test_excellon_flow(self):
|
||||||
|
|
||||||
self.fc.exec_command_test('set_sys units MM')
|
|
||||||
self.fc.exec_command_test('new')
|
|
||||||
self.fc.exec_command_test('open_excellon %s/%s -outname %s' % (self.gerber_files, self.excellon_filename, self.excellon_name))
|
self.fc.exec_command_test('open_excellon %s/%s -outname %s' % (self.gerber_files, self.excellon_filename, self.excellon_name))
|
||||||
excellon_obj = self.fc.collection.get_by_name(self.excellon_name)
|
excellon_obj = self.fc.collection.get_by_name(self.excellon_name)
|
||||||
self.assertTrue(isinstance(excellon_obj, FlatCAMExcellon),
|
self.assertTrue(isinstance(excellon_obj, FlatCAMExcellon),
|
||||||
@@ -184,64 +183,3 @@ class TclShellTest(unittest.TestCase):
|
|||||||
self.fc.exec_command_test('mirror %s -box %s -axis X' % (self.excellon_name, self.gerber_cutout_name))
|
self.fc.exec_command_test('mirror %s -box %s -axis X' % (self.excellon_name, self.gerber_cutout_name))
|
||||||
|
|
||||||
# TODO: tests for tcl
|
# 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))
|
|
||||||
|
|
||||||
obj = self.fc.collection.get_by_name(svg_file)
|
|
||||||
self.assertTrue(isinstance(obj, FlatCAMGeometry),
|
|
||||||
"Expected FlatCAMGeometry, instead, %s is %s" %
|
|
||||||
(svg_file, type(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))
|
|
||||||
|
|
||||||
obj = self.fc.collection.get_by_name(outname)
|
|
||||||
self.assertTrue(isinstance(obj, FlatCAMGeometry),
|
|
||||||
"Expected FlatCAMGeometry, instead, %s is %s" %
|
|
||||||
(outname, type(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)))
|
|
||||||
|
|
||||||
def test_import_svg_as_geometry(self):
|
|
||||||
self.fc.exec_command_test('set_sys units MM')
|
|
||||||
self.fc.exec_command_test('new')
|
|
||||||
self.fc.exec_command_test('import_svg "%s/%s" -type geometry -outname "%s"' % (self.svg_files, self.svg_filename, self.geometry_name))
|
|
||||||
|
|
||||||
obj = self.fc.collection.get_by_name(self.geometry_name)
|
|
||||||
self.assertTrue(isinstance(obj, FlatCAMGeometry) and not isinstance(obj, FlatCAMGerber),
|
|
||||||
"Expected FlatCAMGeometry, instead, %s is %s" %
|
|
||||||
(self.geometry_name, type(obj)))
|
|
||||||
|
|
||||||
def test_import_svg_as_gerber(self):
|
|
||||||
self.fc.exec_command_test('set_sys units MM')
|
|
||||||
self.fc.exec_command_test('new')
|
|
||||||
self.fc.exec_command_test('import_svg "%s/%s" -type gerber -outname "%s"' % (self.svg_files, self.svg_filename, self.gerber_name))
|
|
||||||
|
|
||||||
obj = self.fc.collection.get_by_name(self.gerber_name)
|
|
||||||
self.assertTrue(isinstance(obj, FlatCAMGerber),
|
|
||||||
"Expected FlatCAMGerber, instead, %s is %s" %
|
|
||||||
(self.gerber_name, type(obj)))
|
|
||||||
|
|
||||||
self.fc.exec_command_test('isolate "%s"' % self.gerber_name)
|
|
||||||
obj = self.fc.collection.get_by_name(self.gerber_name+'_iso')
|
|
||||||
self.assertTrue(isinstance(obj, FlatCAMGeometry),
|
|
||||||
"Expected FlatCAMGeometry, instead, %s is %s" %
|
|
||||||
(self.gerber_name+'_iso', type(obj)))
|
|
||||||
|
|||||||
Reference in New Issue
Block a user