From 95f51b2870b6fee32be829c5545736f842d1e6f5 Mon Sep 17 00:00:00 2001 From: Juan Pablo Caram Date: Tue, 27 Oct 2015 21:27:27 -0400 Subject: [PATCH] Cleaned out the tests folder. Added simple test gerber. Added simple unit test using the GUI. --- FlatCAMApp.py | 7 ++- tests/gerber_files/simple1.gbr | 54 ++++++++++++++++++++++ tests/{ => other}/destructor_test.py | 0 tests/{ => other}/profile_gerber_parser.py | 0 tests/{ => other}/test_excellon_1.py | 0 tests/{ => other}/test_fcrts.py | 0 tests/{ => other}/test_plotg.py | 1 + tests/{ => other}/test_rt.py | 1 - tests/test_gerber_buffer.py | 23 +++------ tests/test_gerber_import.py | 27 +++++++++++ tests/test_paint.py | 3 +- 11 files changed, 96 insertions(+), 20 deletions(-) create mode 100644 tests/gerber_files/simple1.gbr rename tests/{ => other}/destructor_test.py (100%) rename tests/{ => other}/profile_gerber_parser.py (100%) rename tests/{ => other}/test_excellon_1.py (100%) rename tests/{ => other}/test_fcrts.py (100%) rename tests/{ => other}/test_plotg.py (99%) rename tests/{ => other}/test_rt.py (99%) create mode 100644 tests/test_gerber_import.py diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 9b155aea..0bed61db 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -89,7 +89,7 @@ class App(QtCore.QObject): new_object_available = QtCore.pyqtSignal(object) message = QtCore.pyqtSignal(str, str, str) - def __init__(self): + def __init__(self, post_gui=None): """ Starts the application. Takes no parameters. @@ -512,6 +512,11 @@ class App(QtCore.QObject): print "ERROR: ", ext sys.exit(2) + # Post-GUI initialization: Experimental attempt + # to perform unit tests on the GUI. + if post_gui is not None: + post_gui(self) + App.log.debug("END of constructor. Releasing control.") def defaults_read_form(self): diff --git a/tests/gerber_files/simple1.gbr b/tests/gerber_files/simple1.gbr new file mode 100644 index 00000000..2ca21d77 --- /dev/null +++ b/tests/gerber_files/simple1.gbr @@ -0,0 +1,54 @@ +G04 MADE WITH FRITZING* +G04 WWW.FRITZING.ORG* +G04 DOUBLE SIDED* +G04 HOLES PLATED* +G04 CONTOUR ON CENTER OF CONTOUR VECTOR* +%ASAXBY*% +%FSLAX23Y23*% +%MOIN*% +%OFA0B0*% +%SFA1.0B1.0*% +%ADD10R,0.047244X0.078740*% +%ADD11C,0.024000*% +%LNCOPPER1*% +G90* +G70* +G54D10* +X2940Y1051D03* +X2940Y941D03* +G54D11* +X2438Y839D02* +X2440Y1023D01* +D02* +X2940Y907D02* +X2941Y839D01* +D02* +X2941Y839D02* +X2438Y839D01* +D02* +X2941Y1239D02* +X2940Y1085D01* +D02* +X2438Y1239D02* +X2941Y1239D01* +D02* +X2440Y1126D02* +X2438Y1239D01* +G36* +X2418Y1064D02* +X2461Y1064D01* +X2461Y1017D01* +X2418Y1017D01* +X2418Y1064D01* +G37* +D02* +G36* +X2418Y1131D02* +X2461Y1131D01* +X2461Y1084D01* +X2418Y1084D01* +X2418Y1131D01* +G37* +D02* +G04 End of Copper1* +M02* \ No newline at end of file diff --git a/tests/destructor_test.py b/tests/other/destructor_test.py similarity index 100% rename from tests/destructor_test.py rename to tests/other/destructor_test.py diff --git a/tests/profile_gerber_parser.py b/tests/other/profile_gerber_parser.py similarity index 100% rename from tests/profile_gerber_parser.py rename to tests/other/profile_gerber_parser.py diff --git a/tests/test_excellon_1.py b/tests/other/test_excellon_1.py similarity index 100% rename from tests/test_excellon_1.py rename to tests/other/test_excellon_1.py diff --git a/tests/test_fcrts.py b/tests/other/test_fcrts.py similarity index 100% rename from tests/test_fcrts.py rename to tests/other/test_fcrts.py diff --git a/tests/test_plotg.py b/tests/other/test_plotg.py similarity index 99% rename from tests/test_plotg.py rename to tests/other/test_plotg.py index 364d5622..518517d1 100644 --- a/tests/test_plotg.py +++ b/tests/other/test_plotg.py @@ -3,6 +3,7 @@ from shapely.ops import cascaded_union, unary_union from matplotlib.pyplot import plot, subplot, show from camlib import * + def plotg2(geo, solid_poly=False, color="black", linestyle='solid'): try: diff --git a/tests/test_rt.py b/tests/other/test_rt.py similarity index 99% rename from tests/test_rt.py rename to tests/other/test_rt.py index cb80b3f3..609e5fb4 100644 --- a/tests/test_rt.py +++ b/tests/other/test_rt.py @@ -1,6 +1,5 @@ from rtree import index as rtindex - def pt2rect(pt): return pt[0], pt[1], pt[0], pt[1] diff --git a/tests/test_gerber_buffer.py b/tests/test_gerber_buffer.py index 1342de05..ca55816a 100644 --- a/tests/test_gerber_buffer.py +++ b/tests/test_gerber_buffer.py @@ -1,30 +1,20 @@ import unittest import camlib -from shapely.geometry import Polygon, LineString, Point, LinearRing -from shapely.geometry import MultiPoint, MultiPolygon -from shapely.geometry import box as shply_box -from shapely.ops import cascaded_union -import shapely.affinity as affinity -from shapely.wkt import loads as sloads -from shapely.wkt import dumps as sdumps -from shapely.geometry.base import BaseGeometry class GerberBuffer(unittest.TestCase): def setUp(self): self.gerber1 = camlib.Gerber() self.gerber1.use_buffer_for_union = True - self.gerber1.parse_file ("./gerber_files/STM32F4-spindle.cmp") + self.gerber1.parse_file("./gerber_files/STM32F4-spindle.cmp") geometry1 = self.gerber1.solid_geometry - self.geometry1_area = self.compute_area (geometry1) + self.geometry1_area = self.compute_area(geometry1) self.gerber2 = camlib.Gerber() self.gerber2.use_buffer_for_union = False - self.gerber2.parse_file ("./gerber_files/STM32F4-spindle.cmp") + self.gerber2.parse_file("./gerber_files/STM32F4-spindle.cmp") geometry2 = self.gerber2.solid_geometry self.geometry2_area = self.compute_area (geometry2) - - - def compute_area (self, geometry): + def compute_area(self, geometry): area = 0 try: for geo in geometry: @@ -35,10 +25,9 @@ class GerberBuffer(unittest.TestCase): area = geometry.area return area - def test_buffer(self): - self.assertLessEqual (abs(self.geometry2_area - self.geometry1_area), 0.000001) + self.assertLessEqual(abs(self.geometry2_area - self.geometry1_area), 0.000001) if __name__ == '__main__': - unittest.main() \ No newline at end of file + unittest.main() diff --git a/tests/test_gerber_import.py b/tests/test_gerber_import.py new file mode 100644 index 00000000..03750169 --- /dev/null +++ b/tests/test_gerber_import.py @@ -0,0 +1,27 @@ +import sys +import unittest +from PyQt4 import QtGui +from FlatCAMApp import App + + +class BaseGUITestCase(unittest.TestCase): + + filename = 'simple1.gbr' + + def setUp(self): + self.app = QtGui.QApplication(sys.argv) + self.fc = App() + + self.fc.open_gerber('tests/gerber_files/' + self.filename) + + def tearDown(self): + del self.fc + del self.app + + def test_available(self): + names = self.fc.collection.get_names() + self.assertEquals(len(names), 1, + "Expected 1 object, found %d" % len(names)) + self.assertEquals(names[0], self.filename, + "Expected name == %s, got %s" % (self.filename, names[0])) + print names[0] \ No newline at end of file diff --git a/tests/test_paint.py b/tests/test_paint.py index c302367b..859fa4bc 100644 --- a/tests/test_paint.py +++ b/tests/test_paint.py @@ -6,6 +6,7 @@ from matplotlib.pyplot import plot, subplot, show, cla, clf, xlim, ylim, title from camlib import * from copy import deepcopy + def mkstorage(paths): def get_pts(o): return [o.coords[0], o.coords[-1]] @@ -208,4 +209,4 @@ class PaintConnectTest3(PaintTestCase): if __name__ == '__main__': - unittest.main() \ No newline at end of file + unittest.main()