[damned-lies] Ignore mocks in list values read from meson files



commit c38522dc2208665760e868171b4d4a2d67ad38d5
Author: Claude Paroz <claude 2xlibre net>
Date:   Wed Feb 21 16:43:13 2018 +0100

    Ignore mocks in list values read from meson files

 stats/tests/meson-ui.build |    3 ++-
 stats/utils.py             |   13 +++++++++++--
 2 files changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/stats/tests/meson-ui.build b/stats/tests/meson-ui.build
index f233869..2b44d17 100644
--- a/stats/tests/meson-ui.build
+++ b/stats/tests/meson-ui.build
@@ -5,5 +5,6 @@ meson.add_install_script('make-images.sh')
 endif
 
 i18n.gettext(gnomebt_gettext_package + meson.project_name(), preset : 'glib',
-             args: [ '--keyword=Description' ])
+             args: [ '--keyword=Description',
+                     '--default-domain=' + meson.project_name(), ])
 install_data('Makefile.in.in')
diff --git a/stats/utils.py b/stats/utils.py
index 415f715..7df8fb8 100644
--- a/stats/utils.py
+++ b/stats/utils.py
@@ -219,9 +219,18 @@ class MesonfileWrapper(MakefileWrapper):
     def read_variable(self, *variables):
         """Return the value of the first found variable name in the variables list."""
         parsed_vars = self._parsed_variables
+
+        def strip_mock(value):
+            if isinstance(value, list):
+                return [v for v in value if not isinstance(v, MagicMock)]
+            else:
+                return value if not isinstance(value, MagicMock) else None
+
         for var in variables:
-            if var in parsed_vars and not isinstance(parsed_vars[var], MagicMock):
-                return parsed_vars[var]
+            if var in parsed_vars:
+                value = strip_mock(parsed_vars[var])
+                if value:
+                    return value
 
 
 class CMakefileWrapper(MakefileWrapper):


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]