From eead65fbe5b68c68de115b0b06632c7fdd87af38 Mon Sep 17 00:00:00 2001
From: Jonathan Burr <jonathan.thomas.burr@cern.ch>
Date: Thu, 28 Nov 2019 16:55:31 +0100
Subject: [PATCH] Correct ctest failure

---
 .../python/HLTMenuConfig/MET/AlgConfigs.py    | 20 +++++++++++++++++++
 .../python/HLTMenuConfig/MET/ConfigHelpers.py |  2 ++
 .../MET/METChainConfiguration.py              |  2 +-
 3 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/AlgConfigs.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/AlgConfigs.py
index 9715a4fdecd1..d8800a743855 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/AlgConfigs.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/AlgConfigs.py
@@ -5,8 +5,28 @@
 from .ConfigHelpers import AlgConfig, jetRecoDictForMET
 from TrigEFMissingET.TrigEFMissingETMTConfig import getMETMonTool
 from ..Menu.MenuComponents import RecoFragmentsPool
+from ..Menu.SignatureDicts import METChainParts
 import GaudiKernel.SystemOfUnits as Units
 
+def test_configs():
+    """ Make sure that all algorithms defined in the METChainParts have
+    configurations
+
+    Really, this is mainly to have something sensible to call in the
+    ConfigHelpers file to succeed the ctest :(
+    """
+    unknown_algs = []
+    for alg in METChainParts["EFrecoAlg"]:
+        for subcls in AlgConfig._get_subclasses():
+            if subcls.algType() == alg:
+                break
+        else:
+            unknown_algs.append(alg)
+    assert len(unknown_algs) == 0, (
+             "The following EFrecoAlgs do not have AlgConfig classes: "
+             "{}".format(unknown_algs) )
+    
+
 class CellConfig(AlgConfig):
     @classmethod
     def algType(cls):
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/ConfigHelpers.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/ConfigHelpers.py
index c6c248f6fccc..a7da2182ae67 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/ConfigHelpers.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/ConfigHelpers.py
@@ -214,3 +214,5 @@ class AlgConfig(object):
 
 # Load all the defined configurations
 from . import AlgConfigs
+# Make sure that there is an AlgConfig for every EFrecoAlg
+AlgConfigs.test_configs()
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METChainConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METChainConfiguration.py
index 62b386770fa4..046224426308 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METChainConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/MET/METChainConfiguration.py
@@ -7,7 +7,7 @@ log = logging.getLogger("TriggerMenuMT.HLTMenuConfig.MET.METChainConfiguration")
 
 from ..Menu.ChainConfigurationBase import ChainConfigurationBase
 from .ConfigHelpers import extractMETRecoDict, metRecoDictToString, AlgConfig
-from ..Menu.MenuComponents import RecoFragmentsPool, ChainStep
+from ..Menu.MenuComponents import ChainStep
 
 
 #----------------------------------------------------------------
-- 
GitLab