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. |