Ver Fonte

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

Juan Pablo Caram há 10 anos atrás
pai
commit
fb98d6306b
2 ficheiros alterados com 18 adições e 7 exclusões
  1. 10 6
      FlatCAMApp.py
  2. 8 1
      tests/test_gerber_import.py

+ 10 - 6
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, 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

+ 8 - 1
tests/test_gerber_import.py

@@ -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]