Repository: DARMA-tasking/LB-analysis-framework

Issue:
LBAF should report an error or a warning when vt-tv is not found but is requested (instead of a mere warning)
## Steps to reproduce:
* Identical to those of #509 
* Except vt-tv should not be installed

## Error:
Output does not report that `vt-tv` is not found but it should, instead of a mere warming. If a visualization is requested then not having `vt-tv` is an error condition.

Discussion:

Patch:
diff --git a/src/lbaf/Applications/LBAF_app.py b/src/lbaf/Applications/LBAF_app.py
index 9c00900..167b2ad 100644
--- a/src/lbaf/Applications/LBAF_app.py
+++ b/src/lbaf/Applications/LBAF_app.py
@@ -121,7 +121,7 @@ class InternalParameters:
 
             # Ensure that vttv module was found
             if not using_vttv:
-                self.__logger.warning("Visualization enabled but vttv not found. No visualization will be generated.")
+                raise ModuleNotFoundError("Visualization enabled but vt-tv module not found.")
 
             # Retrieve mandatory visualization parameters
             try:


Test patch:
diff --git a/tests/unit/IO/test_lbs_visualizer_deprecation.py b/tests/unit/IO/test_lbs_visualizer_deprecation.py
index 563bece..002e2a6 100644
--- a/tests/unit/IO/test_lbs_visualizer_deprecation.py
+++ b/tests/unit/IO/test_lbs_visualizer_deprecation.py
@@ -22,7 +22,7 @@ class TestVizDeprecation(unittest.TestCase):
         config_file = os.path.join(os.path.dirname(os.path.dirname(__file__)), "config", "conf_wrong_visualization.yml")
         pipes = subprocess.Popen(["python", "src/lbaf", "-c", config_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
         std_err = pipes.communicate()[1].decode("utf-8")
-        assert "Visualization enabled but vttv not found. No visualization will be generated." in std_err
+        assert "Visualization enabled but vt-tv module not found." in std_err
 
 if __name__ == "__main__":
     unittest.main()