From 37f99d9e399c674901acb1034950ce7bf5a6aac5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Tue, 13 Mar 2018 03:41:37 +0100
Subject: [PATCH] eggtest: provide nicer test names

This should fix the problem that `Revision History` is unusable on test
results because tests have a different name when they have been running
on different paths
---
 erp5/util/testsuite/__init__.py | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/erp5/util/testsuite/__init__.py b/erp5/util/testsuite/__init__.py
index 0419af42ce..eb982458c0 100644
--- a/erp5/util/testsuite/__init__.py
+++ b/erp5/util/testsuite/__init__.py
@@ -223,7 +223,7 @@ class EggTestSuite(TestSuite):
     print test
     original_dir = os.getcwd()
     try:
-      os.chdir(test)
+      os.chdir(self.egg_test_path_dict[test])
       return self.runUnitTest(test)
     finally:
       os.chdir(original_dir)
@@ -261,10 +261,7 @@ class EggTestSuite(TestSuite):
     return status_dict
 
   def getTestList(self):
-    # (FIXME) The test name should be nicer in order to provide a good report.
-    #         On task distribution.
-    source_code_to_test = os.environ.get("SOURCE_CODE_TO_TEST", '.')
-    return source_code_to_test.split(",")
+    return self.egg_test_path_dict.keys()
 
 def runTestSuite():
   parser = argparse.ArgumentParser(description='Run a test suite.')
@@ -289,18 +286,20 @@ def runTestSuite():
                       help='Path to python interpreter used to run the test suite',
                       default='python')
   parser.add_argument('--source_code_path_list',
-                      help='List of Eggs folders to test, splited by commam',
+                      help='Coma separated list of Eggs folders to test',
                       default='.')
 
   args = parser.parse_args()
   master = taskdistribution.TaskDistributor(args.master_url)
-  os.environ.setdefault("SOURCE_CODE_TO_TEST", args.source_code_path_list)
   test_suite_title = args.test_suite_title or args.test_suite
   revision = args.revision
   suite = EggTestSuite(1, test_suite=args.test_suite,
                     node_quantity=args.node_quantity,
+                    revision=revision,
                     python_interpreter=args.python_interpreter,
-                    revision=revision)
+                    egg_test_path_dict={os.path.basename(path): path
+                        for path in args.source_code_path_list.split(',')},
+                    )
 
   test_result = master.createTestResult(revision, suite.getTestList(),
     args.test_node_title, suite.allow_restart, test_suite_title,
-- 
2.30.9