Option to override user's defaults. Needed for unit testing.

This commit is contained in:
Juan Pablo Caram 2015-10-28 11:21:27 -04:00
parent 95f51b2870
commit fb98d6306b
2 changed files with 18 additions and 7 deletions

View File

@ -89,7 +89,7 @@ class App(QtCore.QObject):
new_object_available = QtCore.pyqtSignal(object)
message = QtCore.pyqtSignal(str, str, str)
def __init__(self, post_gui=None):
def __init__(self, user_defaults=True, post_gui=None):
"""
Starts the application. Takes no parameters.
@ -286,7 +286,8 @@ class App(QtCore.QObject):
###############################
### Load defaults from file ###
self.load_defaults()
if user_defaults:
self.load_defaults()
chars = 'abcdefghijklmnopqrstuvwxyz0123456789'
if self.defaults['serial'] == 0 or len(str(self.defaults['serial'])) < 10:
@ -302,7 +303,8 @@ class App(QtCore.QObject):
finally:
QtCore.QTimer.singleShot(self.defaults["defaults_save_period_ms"], auto_save_defaults)
QtCore.QTimer.singleShot(self.defaults["defaults_save_period_ms"], auto_save_defaults)
if user_defaults:
QtCore.QTimer.singleShot(self.defaults["defaults_save_period_ms"], auto_save_defaults)
self.options_form = GlobalOptionsUI()
self.options_form_fields = {
@ -1617,23 +1619,25 @@ class App(QtCore.QObject):
# How the object should be initialized
def obj_init(gerber_obj, app_obj):
assert isinstance(gerber_obj, FlatCAMGerber)
#log.debug("sys.getrefcount(proc) == %d" % sys.getrefcount(proc))
assert isinstance(gerber_obj, FlatCAMGerber), \
"Expected to initialize a FlatCAMGerber but got %s" % type(gerber_obj)
# Opening the file happens here
self.progress.emit(30)
try:
gerber_obj.parse_file(filename, follow=follow)
except IOError:
app_obj.inform.emit("[error] Failed to open file: " + filename)
app_obj.progress.emit(0)
raise IOError('Failed to open file: ' + filename)
except ParseError, e:
app_obj.inform.emit("[error] Failed to parse file: " + filename)
app_obj.progress.emit(0)
self.log.error(str(e))
raise
#return
# Further parsing
self.progress.emit(70) # TODO: Note the mixture of self and app_obj used here

View File

@ -10,7 +10,10 @@ class BaseGUITestCase(unittest.TestCase):
def setUp(self):
self.app = QtGui.QApplication(sys.argv)
self.fc = App()
# Create App, keep app defaults (do not load
# user-defined defaults).
self.fc = App(user_defaults=False)
self.fc.open_gerber('tests/gerber_files/' + self.filename)
@ -20,8 +23,12 @@ class BaseGUITestCase(unittest.TestCase):
def test_available(self):
names = self.fc.collection.get_names()
# Total of 1 objects
self.assertEquals(len(names), 1,
"Expected 1 object, found %d" % len(names))
# Object's name matches the file name.
self.assertEquals(names[0], self.filename,
"Expected name == %s, got %s" % (self.filename, names[0]))
print names[0]