From 577cd09c42a02c7824bbd6f6c3a76c53dc114658 Mon Sep 17 00:00:00 2001
From: Sebastian Koslowski <koslowski@kit.edu>
Date: Sun, 18 Sep 2016 16:57:41 -0600
Subject: grc: refactor: make gr.prefs() optional (for testing)

---
 grc/core/Config.py | 28 +++++++++++++++++++++-------
 1 file changed, 21 insertions(+), 7 deletions(-)

(limited to 'grc/core/Config.py')

diff --git a/grc/core/Config.py b/grc/core/Config.py
index b65a421b7a..3455a382c1 100644
--- a/grc/core/Config.py
+++ b/grc/core/Config.py
@@ -18,6 +18,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 """
 
 from __future__ import absolute_import
+
 import os
 from os.path import expanduser, normpath, expandvars, exists
 
@@ -25,16 +26,14 @@ from . import Constants
 
 
 class Config(object):
-
-    key = 'grc'
     name = 'GNU Radio Companion (no gui)'
     license = __doc__.strip()
     website = 'http://gnuradio.org'
 
     hier_block_lib_dir = os.environ.get('GRC_HIER_PATH', Constants.DEFAULT_HIER_BLOCK_LIB_DIR)
 
-    def __init__(self, prefs_file, version, version_parts=None):
-        self.prefs = prefs_file
+    def __init__(self, version, version_parts=None, prefs=None):
+        self._gr_prefs = prefs if prefs else DummyPrefs()
         self.version = version
         self.version_parts = version_parts or version[1:].split('-', 1)[0].split('.')[:3]
 
@@ -45,8 +44,8 @@ class Config(object):
         paths_sources = (
             self.hier_block_lib_dir,
             os.environ.get('GRC_BLOCKS_PATH', ''),
-            self.prefs.get_string('grc', 'local_blocks_path', ''),
-            self.prefs.get_string('grc', 'global_blocks_path', ''),
+            self._gr_prefs.get_string('grc', 'local_blocks_path', ''),
+            self._gr_prefs.get_string('grc', 'global_blocks_path', ''),
         )
 
         collected_paths = sum((paths.split(path_list_sep)
@@ -61,7 +60,22 @@ class Config(object):
     def default_flow_graph(self):
         user_default = (
             os.environ.get('GRC_DEFAULT_FLOW_GRAPH') or
-            self.prefs.get_string('grc', 'default_flow_graph', '') or
+            self._gr_prefs.get_string('grc', 'default_flow_graph', '') or
             os.path.join(self.hier_block_lib_dir, 'default_flow_graph.grc')
         )
         return user_default if exists(user_default) else Constants.DEFAULT_FLOW_GRAPH
+
+
+class DummyPrefs(object):
+
+    def get_string(self, category, item, default):
+        return str(default)
+
+    def set_string(self, category, item, value):
+        pass
+
+    def get_long(self, category, item, default):
+        return int(default)
+
+    def save(self):
+        pass
-- 
cgit v1.2.3