ソースを参照

Cleaned out the tests folder. Added simple test gerber. Added simple unit test using the GUI.

Juan Pablo Caram 10 年 前
コミット
95f51b2870

+ 6 - 1
FlatCAMApp.py

@@ -89,7 +89,7 @@ class App(QtCore.QObject):
     new_object_available = QtCore.pyqtSignal(object)
     new_object_available = QtCore.pyqtSignal(object)
     message = QtCore.pyqtSignal(str, str, str)
     message = QtCore.pyqtSignal(str, str, str)
 
 
-    def __init__(self):
+    def __init__(self, post_gui=None):
         """
         """
         Starts the application. Takes no parameters.
         Starts the application. Takes no parameters.
 
 
@@ -512,6 +512,11 @@ class App(QtCore.QObject):
                 print "ERROR: ", ext
                 print "ERROR: ", ext
                 sys.exit(2)
                 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.")
         App.log.debug("END of constructor. Releasing control.")
 
 
     def defaults_read_form(self):
     def defaults_read_form(self):

+ 54 - 0
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*

+ 0 - 0
tests/destructor_test.py → tests/other/destructor_test.py


+ 0 - 0
tests/profile_gerber_parser.py → tests/other/profile_gerber_parser.py


+ 0 - 0
tests/test_excellon_1.py → tests/other/test_excellon_1.py


+ 0 - 0
tests/test_fcrts.py → tests/other/test_fcrts.py


+ 1 - 0
tests/test_plotg.py → 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 matplotlib.pyplot import plot, subplot, show
 from camlib import *
 from camlib import *
 
 
+
 def plotg2(geo, solid_poly=False, color="black", linestyle='solid'):
 def plotg2(geo, solid_poly=False, color="black", linestyle='solid'):
 
 
     try:
     try:

+ 0 - 1
tests/test_rt.py → tests/other/test_rt.py

@@ -1,6 +1,5 @@
 from rtree import index as rtindex
 from rtree import index as rtindex
 
 
-
 def pt2rect(pt):
 def pt2rect(pt):
     return pt[0], pt[1], pt[0], pt[1]
     return pt[0], pt[1], pt[0], pt[1]
 
 

+ 6 - 17
tests/test_gerber_buffer.py

@@ -1,30 +1,20 @@
 import unittest
 import unittest
 import camlib
 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):
 class GerberBuffer(unittest.TestCase):
     def setUp(self):
     def setUp(self):
         self.gerber1 = camlib.Gerber()
         self.gerber1 = camlib.Gerber()
         self.gerber1.use_buffer_for_union = True
         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
         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 = camlib.Gerber()
         self.gerber2.use_buffer_for_union = False
         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
         geometry2 = self.gerber2.solid_geometry
         self.geometry2_area = self.compute_area (geometry2)
         self.geometry2_area = self.compute_area (geometry2)
 
 
-
-
-    def compute_area (self, geometry):
+    def compute_area(self, geometry):
         area = 0
         area = 0
         try:
         try:
             for geo in geometry:
             for geo in geometry:
@@ -35,10 +25,9 @@ class GerberBuffer(unittest.TestCase):
             area = geometry.area
             area = geometry.area
         return area
         return area
 
 
-
     def test_buffer(self):
     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__':
 if __name__ == '__main__':
-    unittest.main()
+    unittest.main()

+ 27 - 0
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]

+ 2 - 1
tests/test_paint.py

@@ -6,6 +6,7 @@ from matplotlib.pyplot import plot, subplot, show, cla, clf, xlim, ylim, title
 from camlib import *
 from camlib import *
 from copy import deepcopy
 from copy import deepcopy
 
 
+
 def mkstorage(paths):
 def mkstorage(paths):
     def get_pts(o):
     def get_pts(o):
         return [o.coords[0], o.coords[-1]]
         return [o.coords[0], o.coords[-1]]
@@ -208,4 +209,4 @@ class PaintConnectTest3(PaintTestCase):
 
 
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
-    unittest.main()
+    unittest.main()