From 4c16c13f56f5830e0ad52da8aecd8e780aa3207e Mon Sep 17 00:00:00 2001
From: Sebastien Ponce <sebastien.ponce@cern.ch>
Date: Tue, 7 Mar 2023 14:57:58 +0100
Subject: [PATCH] Fixing test that depend on algorithm names

---
 .../debugging.qms/test_example-PrintHeader.qmt      |  2 +-
 .../tupling.qms/test_davinci_trigger_decisions.qmt  |  3 ++-
 .../qmtest/tupling.qms/test_davinci_tupling_All.qmt |  4 +++-
 .../tupling.qms/test_davinci_tupling_All_olddst.qmt |  4 +++-
 .../test_davinci_tupling_DTF_SubsPID.qmt            |  3 ++-
 .../tupling.qms/test_davinci_tupling_SubsPID.qmt    |  7 ++++---
 .../tupling.qms/test_davinci_tupling_advanced.qmt   |  6 ++++--
 .../tupling.qms/test_davinci_tupling_eventinfo.qmt  |  3 ++-
 .../tupling.qms/test_davinci_tupling_from_data.qmt  |  4 +++-
 .../tupling.qms/test_davinci_tupling_from_hlt2.qmt  |  3 ++-
 .../test_davinci_tupling_from_spruce_mc.qmt         |  2 ++
 .../tupling.qms/test_davinci_tupling_mc_recinfo.qmt |  3 ++-
 .../tupling.qms/test_davinci_v2_composites.qmt      |  5 +++--
 .../qmtest/davinci.qms/test_davinci_filters.qmt     |  1 +
 .../davinci.qms/test_davinci_funtuple_array.qmt     |  4 +++-
 .../qmtest/davinci.qms/test_davinci_recVertices.qmt |  1 +
 .../qmtest/davinci.qms/test_davinci_user_algs.qmt   |  1 +
 .../qmtest/functors.qms/test_thor_functors.qmt      |  4 ++--
 .../tests/qmtest/io.qms/test_read_mc_digi.qmt       |  1 +
 .../tests/qmtest/io.qms/test_read_mc_ldst.qmt       |  1 +
 .../tests/qmtest/io.qms/test_read_mc_mdf.qmt        |  1 +
 .../tests/qmtest/io.qms/test_read_mc_xdigi.qmt      |  1 +
 .../tests/qmtest/io.qms/test_read_mc_xgen.qmt       |  1 +
 .../tests/qmtest/io.qms/test_read_moore_dst.qmt     |  4 ++--
 Phys/DaVinci/tests/config/test_algorithms.py        | 13 ++++++++-----
 25 files changed, 56 insertions(+), 26 deletions(-)

diff --git a/DaVinciExamples/tests/qmtest/debugging.qms/test_example-PrintHeader.qmt b/DaVinciExamples/tests/qmtest/debugging.qms/test_example-PrintHeader.qmt
index 0559c8fec..4b504fb36 100755
--- a/DaVinciExamples/tests/qmtest/debugging.qms/test_example-PrintHeader.qmt
+++ b/DaVinciExamples/tests/qmtest/debugging.qms/test_example-PrintHeader.qmt
@@ -24,7 +24,7 @@
 </set></argument>
 <argument name="validator"><text>
 findReferenceBlock("""
-PrintHeader                            INFO Number of counters : 1
+PrintHeader_14578b4c                   INFO Number of counters : 1
  |    Counter                                      |     #     |    sum     | mean/eff^* | rms/err^*  |     min     |     max     |
  | "EventCount"                                    |         7 |
 ApplicationMgr                         INFO Application Manager Stopped successfully
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_trigger_decisions.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_trigger_decisions.qmt
index c8b5334c1..4dadd96e8 100644
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_trigger_decisions.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_trigger_decisions.qmt
@@ -24,6 +24,7 @@
   <argument name="validator"><text>
 
 from DaVinciTests.QMTest.DaVinciExclusions import remove_known_warnings
+from PyConf.components import findRootObjByDir
 countErrorLines({"FATAL": 0, "WARNING": 0, "ERROR": 0},
                 stdout=remove_known_warnings(stdout))
 
@@ -57,7 +58,7 @@ B_vars_stored = sorted(B_vars_stored)
 ntuple = './hlt2_B0_test_ntuple.root'
 if not os.path.isfile(ntuple): raise Exception(f"File: {ntuple} does not exist!")
 f      = TFile.Open(ntuple)
-t_B    = f.Get('Tuple/DecayTree')
+t_B    = findRootObjByDir(f, 'Tuple', 'DecayTree')
 
 #sort the stores vars
 b_names = sorted([b.GetName() for b in t_B.GetListOfLeaves()])
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_All.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_All.qmt
index 9667922f5..a60c51bf1 100755
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_All.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_All.qmt
@@ -47,6 +47,8 @@
   <text>DaVinciExamples.tupling.AllFunctors:alg_config</text>
   </set></argument>
 <argument name="validator"><text>
+from PyConf.components import findRootObjByDir
+
 findReferenceBlock("""B0DsK_Tuple                         SUCCESS Booked 1 N-Tuples and 0 Event Tag Collections"""
 , stdout, result, causes, signature_offset = 0)
 
@@ -65,7 +67,7 @@ ntuple = './DV_example_allFunctors_ntp.root'
 if not os.path.isfile(ntuple):
     causes.append(f"File {ntuple} does not exist!")
 f   = TFile.Open(ntuple)
-t_B = f.Get('B0DsK_Tuple/DecayTree')
+t_B    = findRootObjByDir(f, 'B0DsK_Tuple', 'DecayTree')
 
 #sort the stores vars
 b_names = sorted([b.GetName() for b in t_B.GetListOfLeaves()])
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_All_olddst.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_All_olddst.qmt
index a8d1e116d..49e2b5402 100755
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_All_olddst.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_All_olddst.qmt
@@ -47,6 +47,8 @@
   <text>DaVinciExamples.tupling.AllFunctors:alg_config</text>
   </set></argument>
 <argument name="validator"><text>
+from PyConf.components import findRootObjByDir
+
 findReferenceBlock("""B0DsK_Tuple                         SUCCESS Booked 1 N-Tuples and 0 Event Tag Collections"""
 , stdout, result, causes, signature_offset = 0)
 
@@ -65,7 +67,7 @@ ntuple = './DV_example_allFunctors_ntp_old.root'
 if not os.path.isfile(ntuple):
     causes.append(f"File {ntuple} does not exist!")
 f      = TFile.Open(ntuple)
-t_B    = f.Get('B0DsK_Tuple/DecayTree')
+t_B    = findRootObjByDir(f, 'B0DsK_Tuple', 'DecayTree')
 
 #sort the stores vars
 b_names = sorted([b.GetName() for b in t_B.GetListOfLeaves()])
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_DTF_SubsPID.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_DTF_SubsPID.qmt
index fc81b742c..24d1aab1f 100644
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_DTF_SubsPID.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_DTF_SubsPID.qmt
@@ -23,6 +23,7 @@
   </text></argument>
   <argument name="validator"><text>
 from DaVinciTests.QMTest.DaVinciExclusions import remove_known_warnings
+from PyConf.components import findRootObjByDir
 countErrorLines({"FATAL": 0, "ERROR": 0},
                 stdout=remove_known_warnings(stdout))
 import sys, os
@@ -40,7 +41,7 @@ B_vars_stored = sorted(B_vars_stored)
 ntuple = './passthrough_tuple.root'
 if not os.path.isfile(ntuple): raise Exception(f"File: {ntuple} does not exist!")
 f      = TFile.Open(ntuple)
-t_B    = f.Get('Bs2JpsiPhi_Tuple/DecayTree')
+t_B    = findRootObjByDir(f, 'Bs2JpsiPhi_Tuple', 'DecayTree')
 
 #sort the stores vars
 b_names = sorted([b.GetName() for b in t_B.GetListOfLeaves()])
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_SubsPID.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_SubsPID.qmt
index d3a4ee0d4..6a56c20d1 100644
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_SubsPID.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_SubsPID.qmt
@@ -23,6 +23,7 @@
   </text></argument>
   <argument name="validator"><text>
 from DaVinciTests.QMTest.DaVinciExclusions import remove_known_warnings
+from PyConf.components import findRootObjByDir
 countErrorLines({"FATAL": 0, "ERROR": 0},
                 stdout=remove_known_warnings(stdout))
 
@@ -38,9 +39,9 @@ B_vars_stored = sorted(B_vars_stored)
 ntuple = './sprucing_tuple.root'
 if not os.path.isfile(ntuple): raise Exception(f"File: {ntuple} does not exist!")
 f      = TFile.Open(ntuple)
-t_Original    = f.Get('OriginalTuple/DecayTree')
-t_Swapped     = f.Get('SwappedTuple/DecayTree')
-t_Merged      = f.Get('MergedTuple/DecayTree')
+t_Original    = findRootObjByDir(f, 'OriginalTuple', 'DecayTree')
+t_Swapped     = findRootObjByDir(f, 'SwappedTuple', 'DecayTree')
+t_Merged      = findRootObjByDir(f, 'MergedTuple', 'DecayTree')
 
 def check_tree(t_B, B_vars_stored):
   #sort the stores vars
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_advanced.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_advanced.qmt
index 8bb4f9bb2..a46342ec9 100755
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_advanced.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_advanced.qmt
@@ -25,6 +25,8 @@
     input_raw_format: 4.3
   </text></argument>
 <argument name="validator"><text>
+from PyConf.components import findRootObjByDir
+
 import sys, os, glob
 from ROOT import TFile
 
@@ -73,8 +75,8 @@ Ks_vars_stored = sorted(Ks_vars_stored)
 ntuple = './DV-example-tupling-advanced-ntp.root'
 if not os.path.isfile(ntuple): raise Exception(f"File: {ntuple} does not exist!")
 f      = TFile.Open(ntuple)
-t_Jpsi = f.Get('DimuonsTuple/DecayTree')
-t_Ks   = f.Get('KsTuple/DecayTree')
+t_Jpsi = findRootObjByDir(f, 'DimuonsTuple', 'DecayTree')
+t_Ks   = findRootObjByDir(f, 'KsTuple', 'DecayTree')
 
 #sort the stores vars
 b_Jpsi_names = sorted([b.GetName() for b in t_Jpsi.GetListOfLeaves()])
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_eventinfo.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_eventinfo.qmt
index 6ea7c7670..4209e276e 100644
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_eventinfo.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_eventinfo.qmt
@@ -26,6 +26,7 @@
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
   <argument name="validator"><text>
 from DaVinciTests.QMTest.DaVinciExclusions import preprocessor,remove_known_warnings
+from PyConf.components import findRootObjByDir
 validateWithReference(preproc = preprocessor)
 
 import sys, os, glob
@@ -40,7 +41,7 @@ B_vars_stored = sorted(B_vars_stored)
 ntuple = './tuple_LbToLcmunu.root'
 if not os.path.isfile(ntuple): raise Exception(f"File: {ntuple} does not exist!")
 f      = TFile.Open(ntuple)
-t_B    = f.Get('Tuple/DecayTree')
+t_B    = findRootObjByDir(f, 'Tuple', 'DecayTree')
 
 #sort the stores vars
 b_names = sorted([b.GetName() for b in t_B.GetListOfLeaves()])
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_data.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_data.qmt
index 22bc7faf6..14e7a0a0a 100644
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_data.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_data.qmt
@@ -26,6 +26,8 @@ validateWithReference(preproc = preprocessor, counter_preproc = counter_preproce
 countErrorLines({"FATAL":0, "ERROR":0})
   </text></argument>
   <argument name="validator"><text>
+from PyConf.components import findRootObjByDir
+
 findReferenceBlock("""Tuple_KS2PiPi                       SUCCESS Booked 1 N-Tuples and 0 Event Tag Collections"""
 , stdout, result, causes, signature_offset = 0)
 
@@ -35,7 +37,7 @@ from ROOT import TFile
 ntuple = './Spruce_DV_Ks_example.root'
 if not os.path.isfile(ntuple): raise Exception(f"File: {ntuple} does not exist!")
 f      = TFile.Open(ntuple)
-t_B    = f.Get('Tuple_KS2PiPi/DecayTree')
+t_B    = findRootObjByDir(f, 'Tuple_KS2PiPi', 'DecayTree')
 
 b_names= [b.GetName() for b in t_B.GetListOfLeaves()]
 if not b_names: raise Exception(f"File: {ntuple} does not contain any branches. Please check.")
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_hlt2.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_hlt2.qmt
index 864f4414c..b9d141d8d 100644
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_hlt2.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_hlt2.qmt
@@ -27,6 +27,7 @@
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
   <argument name="validator"><text>
 from DaVinciTests.QMTest.DaVinciExclusions import preprocessor, counter_preprocessor
+from PyConf.components import findRootObjByDir
 validateWithReference(preproc = preprocessor, counter_preproc = counter_preprocessor)
 import sys, os, glob
 from ROOT import TFile
@@ -118,7 +119,7 @@ B_vars_stored = sorted(B_vars_stored)
 ntuple = './tuple_D0_Kpi_10evts_fromHlt2_ntuples.root'
 if not os.path.isfile(ntuple): raise Exception(f"File: {ntuple} does not exist!")
 f      = TFile.Open(ntuple)
-t_B    = f.Get('Tuple/DecayTree')
+t_B    = findRootObjByDir(f, 'Tuple', 'DecayTree')
 
 #sort the stores vars
 b_names = sorted([b.GetName() for b in t_B.GetListOfLeaves()])
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_spruce_mc.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_spruce_mc.qmt
index 65022ae51..f676fcd50 100644
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_spruce_mc.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_from_spruce_mc.qmt
@@ -22,6 +22,8 @@
     print_freq: 1
   </text></argument>
 <argument name="validator"><text>
+from PyConf.components import findRootObjByDir
+
 findReferenceBlock("""Tuple                               SUCCESS Booked 1 N-Tuples and 0 Event Tag Collections"""
 , stdout, result, causes, signature_offset = 0)
 
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_mc_recinfo.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_mc_recinfo.qmt
index afd6dcb1d..5a58bf010 100644
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_mc_recinfo.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_tupling_mc_recinfo.qmt
@@ -23,6 +23,7 @@
   </text></argument>
   <argument name="validator"><text>
 from DaVinciTests.QMTest.DaVinciExclusions import remove_known_warnings
+from PyConf.components import findRootObjByDir
 countErrorLines({"FATAL": 0, "WARNING": 0, "ERROR": 0},
                 stdout=remove_known_warnings(stdout))
 import sys, os
@@ -38,7 +39,7 @@ B_vars_stored = sorted(B_vars_stored)
 ntuple = './hlt2_B0_test_ntuple.root'
 if not os.path.isfile(ntuple): raise Exception(f"File: {ntuple} does not exist!")
 f      = TFile.Open(ntuple)
-t_B    = f.Get('DpiMC/DecayTree')
+t_B    = findRootObjByDir(f, 'DpiMC', 'DecayTree')
 
 #sort the stores vars
 b_names = sorted([b.GetName() for b in t_B.GetListOfLeaves()])
diff --git a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_v2_composites.qmt b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_v2_composites.qmt
index fddfde529..b303e6ca6 100755
--- a/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_v2_composites.qmt
+++ b/DaVinciExamples/tests/qmtest/tupling.qms/test_davinci_v2_composites.qmt
@@ -25,6 +25,7 @@
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
   <argument name="validator"><text>
 #from DaVinciExamples.QMTest.DaVinciExclusions import preprocessor, counter_preprocessor
+from PyConf.components import findRootObjByDir
 #validateWithReference(preproc = preprocessor, counter_preproc = counter_preprocessor)
 import sys, os, glob
 from ROOT import TFile
@@ -39,8 +40,8 @@ B_vars_stored = sorted(B_vars_stored)
 ntuple = './v2_example_ntuples.root'
 if not os.path.isfile(ntuple): raise Exception(f"File: {ntuple} does not exist!")
 f      = TFile.Open(ntuple)
-t_B    = f.Get('TupleB/DecayTree')
-t_K    = f.Get('TupleK/DecayTree')
+t_B    = findRootObjByDir(f, 'TupleB', 'DecayTree')
+t_K    = findRootObjByDir(f, 'TupleK', 'DecayTree')
 
 #sort the stores vars
 b_names = sorted([b.GetName() for b in t_B.GetListOfLeaves()])
diff --git a/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_filters.qmt b/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_filters.qmt
index b387e983d..6b24d0756 100644
--- a/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_filters.qmt
+++ b/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_filters.qmt
@@ -25,6 +25,7 @@
     ntuple_file: "davinci_filters_ntuple.root"
     histo_file: "davinci_filters_histos.root"
     print_freq: 1
+    write_decoding_keys_to_git: false
   </text></argument>
   <argument name="reference"><text>../refs/test_davinci_filters.ref</text></argument>
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
diff --git a/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_funtuple_array.qmt b/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_funtuple_array.qmt
index 60bc9bf69..b8283b1a9 100644
--- a/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_funtuple_array.qmt
+++ b/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_funtuple_array.qmt
@@ -24,11 +24,13 @@
     histo_file: DV-test-array-his.root
     ntuple_file: DV-test-array-ntp.root
     input_process: Spruce
+    write_decoding_keys_to_git: false
   </text></argument>
   <argument name="reference"><text>../refs/test_davinci_funtuple_array.ref</text></argument>
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
   <argument name="validator"><text>
 from DaVinciTests.QMTest.DaVinciExclusions import preprocessor, counter_preprocessor
+from PyConf.components import findRootObjByDir
 validateWithReference(preproc = preprocessor, counter_preproc = counter_preprocessor)
 
 import os
@@ -40,7 +42,7 @@ vars_stored = []
 ntuple = "DV-test-array-ntp.root"
 if not os.path.isfile(ntuple): raise Exception(f"File: {ntuple} does not exist!")
 infile = TFile.Open(ntuple)
-intree = infile.Get('B0DsK_Tuple/DecayTree')
+intree = findRootObjByDir(infile, 'B0DsK_Tuple', 'DecayTree')
 
 assert intree.GetEntries()
 
diff --git a/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_recVertices.qmt b/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_recVertices.qmt
index f8e0aaef2..b9497eb93 100644
--- a/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_recVertices.qmt
+++ b/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_recVertices.qmt
@@ -23,6 +23,7 @@
     ntuple_file: test_recVertices.root
     histo_file: test_recVertices_hist.root
     print_freq: 1
+    write_decoding_keys_to_git: false
   </text></argument>
   <argument name="reference"><text>../refs/test_davinci_recVertices.ref</text></argument>
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
diff --git a/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_user_algs.qmt b/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_user_algs.qmt
index db8924003..bae4847bc 100755
--- a/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_user_algs.qmt
+++ b/DaVinciTests/tests/qmtest/davinci.qms/test_davinci_user_algs.qmt
@@ -22,6 +22,7 @@
     ntuple_file: 'DVtest_useralgs_ntp.root'
     histo_file: 'DVtest_useralgs_his.root'
     evt_max: 10
+    write_decoding_keys_to_git: false
   </text></argument>
   <argument name="reference"><text>../refs/test_davinci_user_algs.ref</text></argument>
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
diff --git a/DaVinciTests/tests/qmtest/functors.qms/test_thor_functors.qmt b/DaVinciTests/tests/qmtest/functors.qms/test_thor_functors.qmt
index cb947e3ef..081496ff0 100755
--- a/DaVinciTests/tests/qmtest/functors.qms/test_thor_functors.qmt
+++ b/DaVinciTests/tests/qmtest/functors.qms/test_thor_functors.qmt
@@ -33,8 +33,8 @@ findReferenceBlock("""TightD02KK
  |    Counter                                      |     #     |    sum     | mean/eff^* | rms/err^*  |     min     |     max     |
  |*"# passed"                                      |        21 |         19 |( 90.47619 +- 6.405645)% |
  |*"# passed CombinationCut"                       |       803 |         39 |( 4.856787 +- 0.7585875)% |
- |*"# passed CompositeCut"                         |        39 |         39 |( 100.0000 +-  0.000000)% |
- |*"# passed vertex fit"                           |        39 |         39 |( 100.0000 +-  0.000000)% |
+ |*"# passed CompositeCut"                         |        39 |         39 |( 100.0000 +- 0.000000)% |
+ |*"# passed vertex fit"                           |        39 |         39 |( 100.0000 +- 0.000000)% |
  | "Input1 size"                                   |        21 |        258 |     12.286 |
  | "Input2 size"                                   |        21 |        258 |     12.286 |
 """, stdout, result, causes, signature_offset = 0, id = "Stream3")
diff --git a/DaVinciTests/tests/qmtest/io.qms/test_read_mc_digi.qmt b/DaVinciTests/tests/qmtest/io.qms/test_read_mc_digi.qmt
index 4388ed66f..52c725afc 100644
--- a/DaVinciTests/tests/qmtest/io.qms/test_read_mc_digi.qmt
+++ b/DaVinciTests/tests/qmtest/io.qms/test_read_mc_digi.qmt
@@ -20,6 +20,7 @@
   <argument name="extra_options_yaml"><text>
     evt_max: 200
     input_process: Boole
+    write_decoding_keys_to_git: false
   </text></argument>
   <argument name="reference"><text>../refs/test_davinci_read_mc_digi.ref</text></argument>
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
diff --git a/DaVinciTests/tests/qmtest/io.qms/test_read_mc_ldst.qmt b/DaVinciTests/tests/qmtest/io.qms/test_read_mc_ldst.qmt
index d8a2e494c..90f244542 100644
--- a/DaVinciTests/tests/qmtest/io.qms/test_read_mc_ldst.qmt
+++ b/DaVinciTests/tests/qmtest/io.qms/test_read_mc_ldst.qmt
@@ -20,6 +20,7 @@
   <argument name="extra_options_yaml"><text>
     evt_max: 200
     input_process: Brunel
+    write_decoding_keys_to_git: false
   </text></argument>
   <argument name="reference"><text>../refs/test_davinci_read_mc_ldst.ref</text></argument>
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
diff --git a/DaVinciTests/tests/qmtest/io.qms/test_read_mc_mdf.qmt b/DaVinciTests/tests/qmtest/io.qms/test_read_mc_mdf.qmt
index 9ff4e55a0..f4dd98db3 100644
--- a/DaVinciTests/tests/qmtest/io.qms/test_read_mc_mdf.qmt
+++ b/DaVinciTests/tests/qmtest/io.qms/test_read_mc_mdf.qmt
@@ -21,6 +21,7 @@
     input_type: RAW
     evt_max: 200
     input_process: Hlt1
+    write_decoding_keys_to_git: false
   </text></argument>
   <argument name="reference"><text>../refs/test_davinci_read_mc_mdf.ref</text></argument>
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
diff --git a/DaVinciTests/tests/qmtest/io.qms/test_read_mc_xdigi.qmt b/DaVinciTests/tests/qmtest/io.qms/test_read_mc_xdigi.qmt
index e9e51114f..b150854b2 100644
--- a/DaVinciTests/tests/qmtest/io.qms/test_read_mc_xdigi.qmt
+++ b/DaVinciTests/tests/qmtest/io.qms/test_read_mc_xdigi.qmt
@@ -20,6 +20,7 @@
   <argument name="extra_options_yaml"><text>
     evt_max: 200
     input_process: Boole
+    write_decoding_keys_to_git: false
   </text></argument>
   <argument name="reference"><text>../refs/test_davinci_read_mc_xdigi.ref</text></argument>
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
diff --git a/DaVinciTests/tests/qmtest/io.qms/test_read_mc_xgen.qmt b/DaVinciTests/tests/qmtest/io.qms/test_read_mc_xgen.qmt
index e9cae67a0..17e0e8673 100644
--- a/DaVinciTests/tests/qmtest/io.qms/test_read_mc_xgen.qmt
+++ b/DaVinciTests/tests/qmtest/io.qms/test_read_mc_xgen.qmt
@@ -21,6 +21,7 @@
   <argument name="options_yaml_fn"><text>$DAVINCIEXAMPLESROOT/example_data/test_read_xgen.yaml</text></argument>
   <argument name="extra_options_yaml"><text>
     evt_max: -1
+    write_decoding_keys_to_git: false
   </text></argument>
   <argument name="reference"><text>../refs/test_davinci_read_mc_xgen.ref</text></argument>
   <argument name="error_reference"><text>../refs/empty.ref</text></argument>
diff --git a/DaVinciTests/tests/qmtest/io.qms/test_read_moore_dst.qmt b/DaVinciTests/tests/qmtest/io.qms/test_read_moore_dst.qmt
index 3cb9c12cd..562535de6 100755
--- a/DaVinciTests/tests/qmtest/io.qms/test_read_moore_dst.qmt
+++ b/DaVinciTests/tests/qmtest/io.qms/test_read_moore_dst.qmt
@@ -28,10 +28,10 @@
 <argument name="validator"><text>
 findReferenceBlock("""StdLooseD02KK                                                  INFO Number of counters : 6
  |    Counter                                      |     #     |    sum     | mean/eff^* | rms/err^*  |     min     |     max     |
- |*"# passed"                                      |        21 |         21 |( 100.0000 +-  0.000000)% |
+ |*"# passed"                                      |        21 |         21 |( 100.0000 +- 0.000000)% |
  |*"# passed CombinationCut"                       |      2484 |         90 |( 3.623188 +- 0.3749350)% |
  |*"# passed CompositeCut"                         |        90 |         83 |( 92.22222 +- 2.823087)% |
- |*"# passed vertex fit"                           |        90 |         90 |( 100.0000 +-  0.000000)% |
+ |*"# passed vertex fit"                           |        90 |         90 |( 100.0000 +- 0.000000)% |
  | "Input1 size"                                   |        21 |        423 |     20.143 |
  | "Input2 size"                                   |        21 |        423 |     20.143 |
 """, stdout, result, causes, signature_offset = 0, id = "Stream3")
diff --git a/Phys/DaVinci/tests/config/test_algorithms.py b/Phys/DaVinci/tests/config/test_algorithms.py
index cad62cf1c..268670c57 100644
--- a/Phys/DaVinci/tests/config/test_algorithms.py
+++ b/Phys/DaVinci/tests/config/test_algorithms.py
@@ -16,6 +16,8 @@ from DaVinci.algorithms import (define_fsr_writer, add_filter, apply_filters,
 from PyConf.reading import get_odin, get_decreports, get_hlt_reports, upfront_decoder
 from PyConf.application import default_raw_event
 
+import re
+
 
 def test_define_write_fsr():
     """
@@ -51,7 +53,7 @@ def test_add_hlt2_filter():
     # "binding" as much as possible.
     with default_raw_event.bind(raw_event_format=options.input_raw_format),\
              get_hlt_reports.bind(input_process=options.input_process, stream=options.stream):
-        test_filter = add_filter("test_filter",
+        test_filter = add_filter("test_filter_{hash}",
                                  "HLT_PASS('Hlt2TESTLineDecision')")
     assert "HDRFilter" in test_filter.fullname
 
@@ -70,7 +72,7 @@ def test_add_spruce_filter():
     )
     with default_raw_event.bind(raw_event_format=options.input_raw_format),\
              get_hlt_reports.bind(input_process=options.input_process, stream=options.stream):
-        test_filter = add_filter("test_filter",
+        test_filter = add_filter("test_filter_{hash}",
                                  "HLT_PASS('SpruceTESTLineDecision')")
     assert "HDRFilter" in test_filter.fullname
 
@@ -88,7 +90,7 @@ def test_add_void_filter():
     )
     with get_hlt_reports.bind(
             input_process=options.input_process, stream=options.stream):
-        test_filter = add_filter("test_filter", "VOIDTEST_Filter")
+        test_filter = add_filter("test_filter_{hash}", "VOIDTEST_Filter")
     assert "VoidFilter" in test_filter.fullname
 
 
@@ -101,7 +103,7 @@ def test_apply_filters():
         input_raw_format=0.5,
         input_process="Gen",
         evt_max=1,
-        evt_pre_filters={"test_filter": "EVT_PREFILTER"},
+        evt_pre_filters={"test_filter_{hash}": "EVT_PREFILTER"},
         simulation=True,
     )
     alg_dict = {"test_alg": [VoidConsumer()]}
@@ -162,7 +164,8 @@ def test_get_odin():
     with default_raw_event.bind(raw_event_format=options.input_raw_format):
         odin = get_odin(
             input_process=options.input_process, stream=options.stream)
-    assert odin.location == "/Event/createODIN/ODIN"
+    assert re.fullmatch("/Event/createODIN_[0-9a-f]*/ODIN",
+                        odin.location) is not None
 
 
 def test_get_decreports():
-- 
GitLab