- moved back the ApertureMacro class to camlib for now and made some import changes in the new ParseGerber and ParseExcellon classes

- some changes to the tests - perhaps I will try adding a few tests in the future
This commit is contained in:
Marius Stanciu
2019-10-06 15:56:41 +03:00
committed by Marius
parent 2c536258ed
commit a6b89dbf3a
22 changed files with 646 additions and 562 deletions

View File

@@ -1,9 +1,9 @@
import sys
import unittest
from PyQt4 import QtGui
from PyQt5 import QtGui, QtWidgets
from FlatCAMApp import App, tclCommands
from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry, FlatCAMCNCjob
from ObjectUI import GerberObjectUI, GeometryObjectUI
from flatcamGUI.ObjectUI import GerberObjectUI, GeometryObjectUI
from time import sleep
import os
import tempfile
@@ -21,7 +21,7 @@ class GerberFlowTestCase(unittest.TestCase):
filename = 'simple1.gbr'
def setUp(self):
self.app = QtGui.QApplication(sys.argv)
self.app = QtWidgets.QApplication(sys.argv)
# Create App, keep app defaults (do not load
# user-defined defaults).
@@ -38,30 +38,30 @@ class GerberFlowTestCase(unittest.TestCase):
names = self.fc.collection.get_names()
print(names)
#--------------------------------------
# --------------------------------------
# Total of 1 objects.
#--------------------------------------
# --------------------------------------
self.assertEqual(len(names), 1,
"Expected 1 object, found %d" % len(names))
#--------------------------------------
# --------------------------------------
# Object's name matches the file name.
#--------------------------------------
# --------------------------------------
self.assertEqual(names[0], self.filename,
"Expected name == %s, got %s" % (self.filename, names[0]))
#---------------------------------------
# ---------------------------------------
# Get object by that name, make sure it's a FlatCAMGerber.
#---------------------------------------
# ---------------------------------------
gerber_name = names[0]
gerber_obj = self.fc.collection.get_by_name(gerber_name)
self.assertTrue(isinstance(gerber_obj, FlatCAMGerber),
"Expected FlatCAMGerber, instead, %s is %s" %
(gerber_name, type(gerber_obj)))
#----------------------------------------
# ----------------------------------------
# Object's GUI matches Object's options
#----------------------------------------
# ----------------------------------------
# TODO: Open GUI with double-click on object.
# Opens the Object's GUI, populates it.
gerber_obj.build_ui()
@@ -79,20 +79,20 @@ class GerberFlowTestCase(unittest.TestCase):
option, value, form_field.get_value()
))
#--------------------------------------------------
# --------------------------------------------------
# Changes in the GUI should be read in when
# running any process. Changing something here.
#--------------------------------------------------
# --------------------------------------------------
form_field = gerber_obj.form_fields['isotooldia']
value = form_field.get_value()
form_field.set_value(value * 1.1) # Increase by 10%
print(("'isotooldia' == {}".format(value)))
#--------------------------------------------------
# --------------------------------------------------
# Create isolation routing using default values
# and by clicking on the button.
#--------------------------------------------------
# --------------------------------------------------
# Get the object's GUI and click on "Generate Geometry" under
# "Isolation Routing"
assert isinstance(gerber_obj, FlatCAMGerber) # Just for the IDE
@@ -102,9 +102,9 @@ class GerberFlowTestCase(unittest.TestCase):
assert isinstance(ui, GerberObjectUI)
ui.generate_iso_button.click() # Click
#---------------------------------------------
# ---------------------------------------------
# Check that GUI has been read in.
#---------------------------------------------
# ---------------------------------------------
value = gerber_obj.options['isotooldia']
form_value = form_field.get_value()
self.assertEqual(value, form_value,
@@ -112,30 +112,30 @@ class GerberFlowTestCase(unittest.TestCase):
"which has {}".format('isotooldia', form_value, value))
print(("'isotooldia' == {}".format(value)))
#---------------------------------------------
# ---------------------------------------------
# Check that only 1 object has been created.
#---------------------------------------------
# ---------------------------------------------
names = self.fc.collection.get_names()
self.assertEqual(len(names), 2,
"Expected 2 objects, found %d" % len(names))
#-------------------------------------------------------
# -------------------------------------------------------
# Make sure the Geometry Object has the correct name
#-------------------------------------------------------
# -------------------------------------------------------
geo_name = gerber_name + "_iso"
self.assertTrue(geo_name in names,
"Object named %s not found." % geo_name)
#-------------------------------------------------------
# -------------------------------------------------------
# Get the object make sure it's a geometry object
#-------------------------------------------------------
# -------------------------------------------------------
geo_obj = self.fc.collection.get_by_name(geo_name)
self.assertTrue(isinstance(geo_obj, FlatCAMGeometry),
"Expected a FlatCAMGeometry, got %s" % type(geo_obj))
#------------------------------------
# ------------------------------------
# Open the UI, make CNCObject
#------------------------------------
# ------------------------------------
geo_obj.build_ui()
ui = geo_obj.ui
assert isinstance(ui, GeometryObjectUI) # Just for the IDE
@@ -152,30 +152,30 @@ class GerberFlowTestCase(unittest.TestCase):
sleep(0.1)
self.app.processEvents()
#---------------------------------------------
# ---------------------------------------------
# Check that only 1 object has been created.
#---------------------------------------------
# ---------------------------------------------
names = self.fc.collection.get_names()
self.assertEqual(len(names), 3,
"Expected 3 objects, found %d" % len(names))
#-------------------------------------------------------
# -------------------------------------------------------
# Make sure the CNC Job Object has the correct name
#-------------------------------------------------------
# -------------------------------------------------------
cnc_name = geo_name + "_cnc"
self.assertTrue(cnc_name in names,
"Object named %s not found." % geo_name)
#-------------------------------------------------------
# -------------------------------------------------------
# Get the object make sure it's a CNC Job object
#-------------------------------------------------------
# -------------------------------------------------------
cnc_obj = self.fc.collection.get_by_name(cnc_name)
self.assertTrue(isinstance(cnc_obj, FlatCAMCNCjob),
"Expected a FlatCAMCNCJob, got %s" % type(geo_obj))
#-----------------------------------------
# -----------------------------------------
# Export G-Code, check output
#-----------------------------------------
# -----------------------------------------
assert isinstance(cnc_obj, FlatCAMCNCjob)
output_filename = ""
# get system temporary file(try create it and delete also)