804 elif method == "RequestUTPrepare": |
804 elif method == "RequestUTPrepare": |
805 if params["syspath"]: |
805 if params["syspath"]: |
806 sys.path = params["syspath"] + sys.path |
806 sys.path = params["syspath"] + sys.path |
807 sys.path.insert( |
807 sys.path.insert( |
808 0, os.path.dirname(os.path.abspath(params["filename"]))) |
808 0, os.path.dirname(os.path.abspath(params["filename"]))) |
809 os.chdir(sys.path[0]) |
809 if params["workdir"]: |
|
810 os.chdir(params["workdir"]) |
|
811 else: |
|
812 os.chdir(sys.path[0]) |
810 |
813 |
811 # set the system exception handling function to ensure, that |
814 # set the system exception handling function to ensure, that |
812 # we report on all unhandled exceptions |
815 # we report on all unhandled exceptions |
813 sys.excepthook = self.__unhandled_exception |
816 sys.excepthook = self.__unhandled_exception |
814 self.__interceptSignals() |
817 self.__interceptSignals() |
815 |
818 |
816 try: |
819 try: |
817 import unittest |
820 import unittest |
818 utModule = imp.load_source( |
821 if params["discover"] and not params["failed"]: |
819 params["testname"], params["filename"]) |
822 discoveryStart = params["discoverystart"] |
820 try: |
823 if not discoveryStart: |
821 if params["failed"]: |
824 discoveryStart = params["workdir"] |
|
825 self.test = unittest.defaultTestLoader.discover( |
|
826 discoveryStart) |
|
827 else: |
|
828 utModule = imp.load_source( |
|
829 params["testname"], params["filename"]) |
|
830 try: |
|
831 if params["failed"]: |
|
832 self.test = unittest.defaultTestLoader\ |
|
833 .loadTestsFromNames(params["failed"], utModule) |
|
834 else: |
|
835 self.test = unittest.defaultTestLoader\ |
|
836 .loadTestsFromName(params["testfunctionname"], |
|
837 utModule) |
|
838 except AttributeError: |
822 self.test = unittest.defaultTestLoader\ |
839 self.test = unittest.defaultTestLoader\ |
823 .loadTestsFromNames(params["failed"], utModule) |
840 .loadTestsFromModule(utModule) |
824 else: |
|
825 self.test = unittest.defaultTestLoader\ |
|
826 .loadTestsFromName(params["testfunctionname"], |
|
827 utModule) |
|
828 except AttributeError: |
|
829 self.test = unittest.defaultTestLoader\ |
|
830 .loadTestsFromModule(utModule) |
|
831 except Exception: |
841 except Exception: |
832 exc_type, exc_value, exc_tb = sys.exc_info() |
842 exc_type, exc_value, exc_tb = sys.exc_info() |
833 self.sendJsonCommand("ResponseUTPrepared", { |
843 self.sendJsonCommand("ResponseUTPrepared", { |
834 "count": 0, |
844 "count": 0, |
835 "exception": exc_type.__name__, |
845 "exception": exc_type.__name__, |
836 "message": str(exc_value), |
846 "message": str(exc_value) + "\n" + str(params), |
837 }) |
847 }) |
838 return |
848 return |
839 |
849 |
840 # generate a coverage object |
850 # generate a coverage object |
841 if params["coverage"]: |
851 if params["coverage"]: |