DebugClients/Python3/DebugClientBase.py

branch
jsonrpc
changeset 5125
eb1b3e0577e4
parent 5124
1ba8ee313b57
child 5128
b6cbdba69967
equal deleted inserted replaced
5124:1ba8ee313b57 5125:eb1b3e0577e4
861 ## if cmd == DebugProtocol.RequestSetFilter: 861 ## if cmd == DebugProtocol.RequestSetFilter:
862 ## scope, filterString = eval(arg.replace("u'", "'")) 862 ## scope, filterString = eval(arg.replace("u'", "'"))
863 ## self.__generateFilterObjects(int(scope), filterString) 863 ## self.__generateFilterObjects(int(scope), filterString)
864 ## return 864 ## return
865 ## 865 ##
866 if cmd == DebugProtocol.RequestUTPrepare: 866 ## if cmd == DebugProtocol.RequestUTPrepare:
867 fn, tn, tfn, failed, cov, covname, erase = arg.split('|') 867 ## fn, tn, tfn, failed, cov, covname, erase = arg.split('|')
868 sys.path.insert(0, os.path.dirname(os.path.abspath(fn))) 868 ## sys.path.insert(0, os.path.dirname(os.path.abspath(fn)))
869 os.chdir(sys.path[0]) 869 ## os.chdir(sys.path[0])
870 failed = eval(failed) 870 ## failed = eval(failed)
871 871 ##
872 # set the system exception handling function to ensure, that 872 ## # set the system exception handling function to ensure, that
873 # we report on all unhandled exceptions 873 ## # we report on all unhandled exceptions
874 sys.excepthook = self.__unhandled_exception 874 ## sys.excepthook = self.__unhandled_exception
875 self.__interceptSignals() 875 ## self.__interceptSignals()
876 876 ##
877 try: 877 ## try:
878 import unittest 878 ## import unittest
879 utModule = imp.load_source(tn, fn) 879 ## utModule = imp.load_source(tn, fn)
880 try: 880 ## try:
881 if failed: 881 ## if failed:
882 self.test = unittest.defaultTestLoader\ 882 ## self.test = unittest.defaultTestLoader\
883 .loadTestsFromNames(failed, utModule) 883 ## .loadTestsFromNames(failed, utModule)
884 else: 884 ## else:
885 self.test = unittest.defaultTestLoader\ 885 ## self.test = unittest.defaultTestLoader\
886 .loadTestsFromName(tfn, utModule) 886 ## .loadTestsFromName(tfn, utModule)
887 except AttributeError: 887 ## except AttributeError:
888 self.test = unittest.defaultTestLoader\ 888 ## self.test = unittest.defaultTestLoader\
889 .loadTestsFromModule(utModule) 889 ## .loadTestsFromModule(utModule)
890 except Exception: 890 ## except Exception:
891 exc_type, exc_value, exc_tb = sys.exc_info() 891 ## exc_type, exc_value, exc_tb = sys.exc_info()
892 self.write('{0}{1}\n'.format( 892 ## self.write('{0}{1}\n'.format(
893 DebugProtocol.ResponseUTPrepared, 893 ## DebugProtocol.ResponseUTPrepared,
894 str((0, str(exc_type), str(exc_value))))) 894 ## str((0, str(exc_type), str(exc_value)))))
895 self.__exceptionRaised() 895 ## self.__exceptionRaised()
896 return 896 ## return
897 897 ##
898 # generate a coverage object 898 ## # generate a coverage object
899 if int(cov): 899 ## if int(cov):
900 from coverage import coverage 900 ## from coverage import coverage
901 self.cover = coverage( 901 ## self.cover = coverage(
902 auto_data=True, 902 ## auto_data=True,
903 data_file="{0}.coverage".format( 903 ## data_file="{0}.coverage".format(
904 os.path.splitext(covname)[0])) 904 ## os.path.splitext(covname)[0]))
905 if int(erase): 905 ## if int(erase):
906 self.cover.erase() 906 ## self.cover.erase()
907 else: 907 ## else:
908 self.cover = None 908 ## self.cover = None
909 909 ##
910 self.write('{0}{1}\n'.format( 910 ## self.write('{0}{1}\n'.format(
911 DebugProtocol.ResponseUTPrepared, 911 ## DebugProtocol.ResponseUTPrepared,
912 str((self.test.countTestCases(), "", "")))) 912 ## str((self.test.countTestCases(), "", ""))))
913 return 913 ## return
914 914 ##
915 if cmd == DebugProtocol.RequestUTRun: 915 if cmd == DebugProtocol.RequestUTRun:
916 from DCTestResult import DCTestResult 916 from DCTestResult import DCTestResult
917 self.testResult = DCTestResult(self) 917 self.testResult = DCTestResult(self)
918 if self.cover: 918 if self.cover:
919 self.cover.start() 919 self.cover.start()
1486 self.sessionClose() 1486 self.sessionClose()
1487 return 1487 return
1488 1488
1489 if method == "RequestCompletion": 1489 if method == "RequestCompletion":
1490 self.__completionList(params["text"]) 1490 self.__completionList(params["text"])
1491 return
1492
1493 if method == "RequestUTPrepare":
1494 ## fn, tn, tfn, failed, cov, covname, erase = arg.split('|')
1495 ## sys.path.insert(0, os.path.dirname(os.path.abspath(fn)))
1496 ## os.chdir(sys.path[0])
1497 ## failed = eval(failed)
1498 ##
1499 # set the system exception handling function to ensure, that
1500 # we report on all unhandled exceptions
1501 sys.excepthook = self.__unhandled_exception
1502 self.__interceptSignals()
1503
1504 try:
1505 import unittest
1506 utModule = imp.load_source(
1507 params["testname"], params["filename"])
1508 try:
1509 if params["failed"]:
1510 self.test = unittest.defaultTestLoader\
1511 .loadTestsFromNames(params["failed"], utModule)
1512 else:
1513 self.test = unittest.defaultTestLoader\
1514 .loadTestsFromName(params["testfunctionname"],
1515 utModule)
1516 except AttributeError:
1517 self.test = unittest.defaultTestLoader\
1518 .loadTestsFromModule(utModule)
1519 except Exception:
1520 exc_type, exc_value, exc_tb = sys.exc_info()
1521 ## self.write('{0}{1}\n'.format(
1522 ## DebugProtocol.ResponseUTPrepared,
1523 ## str((0, str(exc_type), str(exc_value)))))
1524 self.__sendJsonCommand("ResponseUTPrepared", {
1525 "count": 0,
1526 "exception": exc_type.__name__,
1527 "message": str(exc_value),
1528 })
1529 self.__exceptionRaised()
1530 return
1531
1532 # generate a coverage object
1533 if params["coverage"]:
1534 from coverage import coverage
1535 self.cover = coverage(
1536 auto_data=True,
1537 data_file="{0}.coverage".format(
1538 os.path.splitext(params["coveragefile"])[0]))
1539 if params["coverageerase"]:
1540 self.cover.erase()
1541 else:
1542 self.cover = None
1543
1544 ## self.write('{0}{1}\n'.format(
1545 ## DebugProtocol.ResponseUTPrepared,
1546 ## str((self.test.countTestCases(), "", ""))))
1547 self.__sendJsonCommand("ResponseUTPrepared", {
1548 "count": self.test.countTestCases(),
1549 "exception": "",
1550 "message": "",
1551 })
1491 return 1552 return
1492 1553
1493 def __sendJsonCommand(self, command, params): 1554 def __sendJsonCommand(self, command, params):
1494 """ 1555 """
1495 Private method to send a single command to the client. 1556 Private method to send a single command to the client.

eric ide

mercurial