Fix unittest discovery, allow discovery start in project subdirectory.

Sun, 14 Jul 2019 16:33:33 -0400

author
Mikhail Terekhov
date
Sun, 14 Jul 2019 16:33:33 -0400
changeset 7071
c9ff30a1acbb
parent 7064
1010f737def2
child 7072
66ef92f769bf

Fix unittest discovery, allow discovery start in project subdirectory.

eric6/DebugClients/Python/DebugClientBase.py file | annotate | diff | comparison | revisions
eric6/PyUnit/UnittestDialog.py file | annotate | diff | comparison | revisions
--- a/eric6/DebugClients/Python/DebugClientBase.py	Fri Jul 12 18:11:54 2019 +0200
+++ b/eric6/DebugClients/Python/DebugClientBase.py	Sun Jul 14 16:33:33 2019 -0400
@@ -811,6 +811,8 @@
             if not discoveryStart:
                 discoveryStart = params["workdir"]
             
+            top_level_dir = params["workdir"]
+
             os.chdir(params["discoverystart"])
             
             # set the system exception handling function to ensure, that
@@ -821,7 +823,7 @@
             try:
                 import unittest
                 testLoader = unittest.TestLoader()
-                test = testLoader.discover(discoveryStart)
+                test = testLoader.discover(discoveryStart, top_level_dir=top_level_dir)
                 if hasattr(testLoader, "errors") and \
                    bool(testLoader.errors):
                     self.sendJsonCommand("ResponseUTDiscover", {
@@ -850,8 +852,10 @@
                 sys.path = params["syspath"] + sys.path
             sys.path.insert(
                 0, os.path.dirname(os.path.abspath(params["filename"])))
+            top_level_dir = None
             if params["workdir"]:
                 os.chdir(params["workdir"])
+                top_level_dir = params["workdir"]
             else:
                 os.chdir(sys.path[0])
             
@@ -871,7 +875,7 @@
                         self.test = testLoader.loadTestsFromNames(
                             params["testcases"])
                     else:
-                        self.test = testLoader.discover(discoveryStart)
+                        self.test = testLoader.discover(discoveryStart, top_level_dir=top_level_dir)
                 else:
                     if params["filename"]:
                         utModule = imp.load_source(
--- a/eric6/PyUnit/UnittestDialog.py	Fri Jul 12 18:11:54 2019 +0200
+++ b/eric6/PyUnit/UnittestDialog.py	Sun Jul 14 16:33:33 2019 -0400
@@ -411,7 +411,7 @@
                     clientType = "Python3"
                 sysPath = []
             self.__dbs.remoteUTDiscover(clientType, self.__forProject,
-                                        workdir, venvName, sysPath,
+                                        venvName, sysPath, workdir,
                                         discoveryStart)
         else:
             # we are running as an application

eric ide

mercurial