separate tcl tests into smaller chunks

implement collection of tcl command tests
This commit is contained in:
Kamil Sopko 2016-04-24 01:24:54 +02:00
parent be76b464ad
commit 05f88af917
8 changed files with 211 additions and 73 deletions

View File

@ -0,0 +1,17 @@
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_TclCommandOpenGerber import *
from test_TclCommandPaintPolygon import *

View 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))

View 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))

View 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)))

View 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)))

View 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)))

View 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)))

View File

@ -31,6 +31,10 @@ class TclShellTest(unittest.TestCase):
cutout_diameter = 3
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
def setUpClass(self):
@ -41,6 +45,10 @@ class TclShellTest(unittest.TestCase):
self.fc = App(user_defaults=False)
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
def tearDownClass(self):
self.fc.tcl=None
@ -65,14 +73,10 @@ class TclShellTest(unittest.TestCase):
self.assertEquals(units, "MM")
def test_gerber_flow(self):
def aatest_gerber_flow(self):
# 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))
gerber_top_obj = self.fc.collection.get_by_name(self.gerber_top_name)
self.assertTrue(isinstance(gerber_top_obj, FlatCAMGerber),
@ -159,10 +163,7 @@ class TclShellTest(unittest.TestCase):
# TODO: tests for tcl
def test_open_gerber(self):
self.fc.exec_command_test('set_sys units MM')
self.fc.exec_command_test('new')
def aatest_open_gerber(self):
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)
@ -170,10 +171,8 @@ class TclShellTest(unittest.TestCase):
"Expected FlatCAMGerber, instead, %s is %s" %
(self.gerber_top_name, type(gerber_top_obj)))
def test_excellon_flow(self):
def aatest_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))
excellon_obj = self.fc.collection.get_by_name(self.excellon_name)
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))
# 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)))