Merge "Revert "Clean up exception handling in TestON core""
diff --git a/TestON/bin/cli.py b/TestON/bin/cli.py
index 54d9781..ffe9d67 100755
--- a/TestON/bin/cli.py
+++ b/TestON/bin/cli.py
@@ -93,23 +93,15 @@
         mail <mail-id or list of mail-ids seperated by comma>
         example 1, to execute the examples specified in the ~/examples diretory.
         '''
-        try:
-            args = args.split()
-            options = {}
-            options = self.parseArgs(args,options)
-            options = dictToObj(options)
-            if not testthread:
-                test = TestThread(options)
-                test.start()
-                while test.isAlive:
-                    test.join(1)
-            else :
-                print main.TEST+ " test execution paused, please resume that before executing to another test"
-        except KeyboardInterrupt, SystemExit:
-            print "Interrupt called, Exiting."
-            test._Thread__stop()
-            main.cleanup()
-            main.exit()
+        args = args.split()
+        options = {}
+        options = self.parseArgs(args,options)
+        options = dictToObj(options)
+        if not testthread:
+            test = TestThread(options)
+            test.start()
+        else :
+            print main.TEST+ " test execution paused, please resume that before executing to another test"
 
     def do_resume(self, line):
         '''
@@ -165,7 +157,7 @@
             else :
                 try :
                     dump.pprint(vars(main)[line])
-                except KeyError as e:
+                except KeyError,e:
                     print e
         else :
             print "There is no paused test "
@@ -269,7 +261,7 @@
                         options = self.testcasesInRange(index,option,args,options)
                 else :
                     options['testname'] = option
-        except IndexError as e:
+        except IndexError,e:
             print e
 
         return options
@@ -318,11 +310,7 @@
                 super(CLI, self).cmdloop(intro="")
                 self.postloop()
             except KeyboardInterrupt:
-                if testthread:
-                    testthread.pause()
-                else:
-                    print "KeyboardInterrupt, Exiting."
-                    sys.exit()
+                testthread.pause()
 
     def do_echo( self, line ):
         '''
@@ -349,7 +337,7 @@
         '''
         try:
             exec( line )
-        except Exception as e:
+        except Exception, e:
             output( str( e ) + '\n' )
 
     def do_interpret(self,line):
@@ -365,7 +353,7 @@
         try :
             translated_code = ospk.interpret(text=line)
             print translated_code
-        except AttributeError as e:
+        except AttributeError, e:
             print 'Dynamic params are not allowed in single statement translations'
 
     def do_do (self,line):
@@ -379,9 +367,8 @@
             try :
                 translated_code = ospk.interpret(text=line)
                 eval(translated_code)
-            except ( AttributeError, SyntaxError ) as e:
-                print 'Dynamic params are not allowed in single statement translations:'
-                print e
+            except (AttributeError,SyntaxError), e:
+                print 'Dynamic params are not allowed in single statement translations'
         else :
             print "Do will translate and execute the openspeak statement for the paused test.\nPlease use interpret to translate the OpenSpeak statement."
 
@@ -544,8 +531,8 @@
                         if not self.is_stop :
                             result = self.test_on.cleanup()
                         self.is_stop = True
-                except KeyboardInterrupt:
-                    print "Recevied Interrupt, cleaning-up the logs and drivers before exiting"
+                except(KeyboardInterrupt):
+                    print "Recevied Interrupt,cleaning-up the logs and drivers before exiting"
                     result = self.test_on.cleanup()
                     self.is_stop = True
 
@@ -555,17 +542,9 @@
         '''
         Will pause the test.
         '''
-        if not cli.pause:
-            print "Will pause the test's execution, after completion of this step.....\n\n\n\n"
-            cli.pause = True
-            self._stopevent.set()
-        elif cli.pause and self.is_stop:
-            print "KeyboardInterrupt, Exiting."
-            self.test_on.exit()
-        else:
-            print "Recevied Interrupt, cleaning-up the logs and drivers before exiting"
-            result = self.test_on.cleanup()
-            self.is_stop = True
+        print "Will pause the test's execution, after completion of this step.....\n\n\n\n"
+        cli.pause = True
+        self._stopevent.set()
 
     def play(self):
         '''
diff --git a/TestON/core/teston.py b/TestON/core/teston.py
index 17893a1..4e53ee2 100644
--- a/TestON/core/teston.py
+++ b/TestON/core/teston.py
@@ -146,10 +146,8 @@
             try :
                 self.configDict = xmldict.xml_to_dict(xml)
                 return self.configDict
-            except IOError:
+            except Exception:
                 print "There is no such file to parse " + self.configFile
-        else:
-            print "There is no such file to parse " + self.configFile
 
     def componentInit(self,component):
         '''
@@ -402,13 +400,7 @@
                             print "Disconnecting from " + str(tempObject.name) + ": " + \
                                   str(tempObject)
                             tempObject.disconnect()
-                        except KeyboardInterrupt:
-                            pass
-                        except KeyError:
-                            # Component not created yet
-                            self.log.warn( "Could not find the component " +
-                                           str( component ) )
-                        except StandardError:
+                        except Exception:
                             self.log.exception( "Exception while disconnecting from " +
                                                  str( component ) )
                             result = self.FALSE
@@ -416,14 +408,7 @@
                     for driver in self.componentDictionary.keys():
                         try:
                             vars(self)[driver].close_log_handles()
-                        except KeyboardInterrupt:
-                            pass
-                        except KeyError:
-                            # Component not created yet
-                            self.log.warn( "Could not find the component " +
-                                           str( driver ) + " while trying to" +
-                                           " close log file" )
-                        except StandardError:
+                        except Exception:
                             self.log.exception( "Exception while closing log files for " +
                                                  str( driver ) )
                             result = self.FALSE
@@ -455,7 +440,7 @@
                 for component in self.componentDictionary.keys():
                     tempObject  = vars(self)[component]
                     result = tempObject.onfail()
-            except StandardError as e:
+            except(Exception),e:
                 print str(e)
                 result = self.FALSE
         else:
@@ -463,7 +448,7 @@
                 for component in components:
                     tempObject  = vars(self)[component]
                     result = tempObject.onfail()
-            except StandardError as e:
+            except(Exception),e:
                 print str(e)
                 result = self.FALSE
 
@@ -573,7 +558,7 @@
             try :
                 import json
                 response_dict = json.loads(response)
-            except StandardError:
+            except Exception:
                 self.log.exception( "Json Parser is unable to parse the string" )
             return response_dict
         elif ini_match :
@@ -588,8 +573,8 @@
             self.log.info(" Response is in 'XML' format and Converting to '"+return_format+"' format")
             try :
                 response_dict = xmldict.xml_to_dict("<response> "+str(response)+" </response>")
-            except StandardError:
-                self.log.exception()
+            except Exception, e:
+                self.log.exception( e )
             return response_dict
 
     def dict_to_return_format(self,response,return_format,response_dict):
@@ -650,10 +635,7 @@
                 try:
                     thread._Thread__stop()
                 except:
-                    # NOTE: We should catch any exceptions while trying to
-                    # close the thread so that we can try to close the other
-                    # threads as well
-                    print( str( thread.getName() ) + ' could not be terminated' )
+                    print(str(thread.getName()) + ' could not be terminated' )
         sys.exit()
 
 def verifyOptions(options):
@@ -778,7 +760,7 @@
         main.exit()
     try :
         testModule = __import__(main.classPath, globals(), locals(), [main.TEST], -1)
-    except ImportError:
+    except(ImportError):
         print "There was an import error, it might mean that there is no test named "+main.TEST
         main.exit()
 
@@ -791,12 +773,12 @@
 def verifyParams():
     try :
         main.params = main.params['PARAMS']
-    except KeyError:
+    except(KeyError):
         print "Error with the params file: Either the file not specified or the format is not correct"
         main.exit()
     try :
         main.topology = main.topology['TOPOLOGY']
-    except KeyError:
+    except(KeyError):
         print "Error with the Topology file: Either the file not specified or the format is not correct"
         main.exit()
 
diff --git a/TestON/core/testparser.py b/TestON/core/testparser.py
index aab4388..24b1ca2 100644
--- a/TestON/core/testparser.py
+++ b/TestON/core/testparser.py
@@ -46,7 +46,7 @@
                 try :
                     while not re.match('^\s*(\'\'\')|^\s*(\"\"\")',testFileList[index],0) :
                         index = index + 1
-                except IndexError:
+                except IndexError,e:
                     print ''
 
             # skip empty lines and single line comments
@@ -58,9 +58,11 @@
         index = 0
         statementsList = self.statementsList
         while index < len(statementsList):
+            #print statementsList[index]
             m= re.match('def\s+CASE(\d+)',statementsList[index],0)
             self.caseBlock = []
             if m:
+                #print m.group(1)
                 index = index + 1
                 try :
                     while not re.match('\s*def\s+CASE(\d+)',statementsList[index],0) :
@@ -70,9 +72,11 @@
                         else :
                             break
                     index = index - 1
-                except IndexError:
+                except IndexError,e:
+                    #print 'IndexError'
                     print ''
                 self.caseCode [str(m.group(1))] = self.caseBlock
+                #print "Case CODE "+self.caseCode [str(m.group(1))]
             index = index + 1
         return self.caseCode
 
@@ -104,7 +108,8 @@
                         else :
                             break
                     index = index - 1
-                except IndexError:
+                except IndexError,e:
+                    #print 'IndexError'
                     print ''
                 stepCode[step] = stepBlock
                 step = step + 1
diff --git a/TestON/core/utilities.py b/TestON/core/utilities.py
index 8cd81e5..02ade72 100644
--- a/TestON/core/utilities.py
+++ b/TestON/core/utilities.py
@@ -121,9 +121,8 @@
         try :
             opcode = operators[str(arguments["OPERATOR"])][valuetype] if arguments["OPERATOR"] == 'equals' else operators[str(arguments["OPERATOR"])]
 
-        except KeyError as e:
+        except KeyError:
             print "Key Error in assertion"
-            print e
             return main.FALSE
 
         if opcode == '=~':
@@ -180,9 +179,8 @@
         if not isinstance(msg,str):
             try:
                 eval(str(msg))
-            except SyntaxError as e:
-                print "function definition is not right"
-                print e
+            except SyntaxError:
+                print "functin definition is not write"
 
         main.last_result = result
         return result
@@ -193,6 +191,7 @@
         '''
         newArgs = {}
         for key,value in kwargs.iteritems():
+            #currentKey =  str.upper(key)
             if isinstance(args,list) and str.upper(key) in args:
                 for each in args:
                     if each==str.upper(key):
@@ -200,6 +199,8 @@
                     elif each != str.upper(key) and (newArgs.has_key(str(each)) == False ):
                         newArgs[str(each)] = None
 
+
+
         return newArgs
 
     def send_mail(self):
@@ -210,7 +211,7 @@
                 sub = "Result summary of \""+main.TEST+"\" run on component \""+main.test_target+"\" Version \""+vars(main)[main.test_target].get_version()+"\": "+str(main.TOTAL_TC_SUCCESS)+"% Passed"
             else :
                 sub = "Result summary of \""+main.TEST+"\": "+str(main.TOTAL_TC_SUCCESS)+"% Passed"
-        except ( KeyError, AttributeError ):
+        except KeyError,AttributeError:
             sub = "Result summary of \""+main.TEST+"\": "+str(main.TOTAL_TC_SUCCESS)+"% Passed"
 
         msg['Subject'] = sub
@@ -249,7 +250,7 @@
             try :
                 parsedInfo = ConfigObj(self.fileName)
                 return parsedInfo
-            except StandardError:
+            except Exception:
                 print "There is no such file to parse "+fileName
         else:
             return 0
diff --git a/TestON/core/xmldict.py b/TestON/core/xmldict.py
index 8d1dcf4..2cc47da 100644
--- a/TestON/core/xmldict.py
+++ b/TestON/core/xmldict.py
@@ -37,7 +37,7 @@
         root = ElementTree.XML(root_or_str)
     try :
         return {root.tag: _from_xml(root, strict)}
-    except StandardError:
+    except Exception:
         return None
 
 def dict_to_xml(dict_xml):
diff --git a/TestON/core/xmlparser.py b/TestON/core/xmlparser.py
index f12f69c..e2cfb1d 100644
--- a/TestON/core/xmlparser.py
+++ b/TestON/core/xmlparser.py
@@ -39,7 +39,7 @@
             try :
                 parsedInfo = xmldict.xml_to_dict(xml)
                 return parsedInfo
-            except StandardError as e:
+            except Exception as e:
                 print "Error parsing file " + fileName + ": " + e.message
         else :
             print "File name is not correct"