[core] Refactor -> replace some getter/setter pairs with attributes
Remove some set_* methods and replace them with a simple attribute. see #23
This commit is contained in:
parent
068968bbf5
commit
e59e969bdc
7 changed files with 16 additions and 21 deletions
|
@ -63,10 +63,10 @@ class Engine(object):
|
||||||
def load_modules(self, modules):
|
def load_modules(self, modules):
|
||||||
"""Load specified modules and return them as list"""
|
"""Load specified modules and return them as list"""
|
||||||
for module in modules:
|
for module in modules:
|
||||||
self._modules.append(self.load_module(module["module"], module["name"]))
|
self._modules.append(self._load_module(module["module"], module["name"]))
|
||||||
return self._modules
|
return self._modules
|
||||||
|
|
||||||
def load_module(self, module_name, config_name=None):
|
def _load_module(self, module_name, config_name=None):
|
||||||
"""Load specified module and return it as object"""
|
"""Load specified module and return it as object"""
|
||||||
if config_name is None:
|
if config_name is None:
|
||||||
config_name = module_name
|
config_name = module_name
|
||||||
|
@ -95,7 +95,7 @@ class Engine(object):
|
||||||
for module in self._modules:
|
for module in self._modules:
|
||||||
module.update(module.widgets())
|
module.update(module.widgets())
|
||||||
for widget in module.widgets():
|
for widget in module.widgets():
|
||||||
widget.set_module(module)
|
widget.link_module(module)
|
||||||
self._output.draw(widget=widget, engine=self)
|
self._output.draw(widget=widget, engine=self)
|
||||||
self._output.flush()
|
self._output.flush()
|
||||||
self._output.end()
|
self._output.end()
|
||||||
|
|
|
@ -9,18 +9,14 @@ class Widget(object):
|
||||||
"""Represents a single visible block in the status bar"""
|
"""Represents a single visible block in the status bar"""
|
||||||
def __init__(self, full_text):
|
def __init__(self, full_text):
|
||||||
self._full_text = full_text
|
self._full_text = full_text
|
||||||
self._module = None
|
self.module = None
|
||||||
|
|
||||||
def set_module(self, module):
|
def link_module(self, module):
|
||||||
"""Set the module that spawned this widget
|
"""Set the module that spawned this widget
|
||||||
|
|
||||||
This is done outside the constructor to avoid having to
|
This is done outside the constructor to avoid having to
|
||||||
pass in the module name in every concrete module implementation"""
|
pass in the module name in every concrete module implementation"""
|
||||||
self._module = module.name
|
self.module = module.name
|
||||||
|
|
||||||
def module(self):
|
|
||||||
"""Return the name of the module that spawned this widget"""
|
|
||||||
return self._module
|
|
||||||
|
|
||||||
def full_text(self):
|
def full_text(self):
|
||||||
"""Retrieve the full text to display in the widget"""
|
"""Retrieve the full text to display in the widget"""
|
||||||
|
|
|
@ -63,7 +63,7 @@ class Theme(object):
|
||||||
|
|
||||||
def _get(self, widget, name, default=None):
|
def _get(self, widget, name, default=None):
|
||||||
"""Return the config value 'name' for 'widget'"""
|
"""Return the config value 'name' for 'widget'"""
|
||||||
module_theme = self._theme.get(widget.module(), {})
|
module_theme = self._theme.get(widget.module, {})
|
||||||
|
|
||||||
padding = None
|
padding = None
|
||||||
if name != "padding":
|
if name != "padding":
|
||||||
|
|
|
@ -20,6 +20,8 @@ class TestGenericModules(unittest.TestCase):
|
||||||
for mod in self.objects:
|
for mod in self.objects:
|
||||||
widgets = self.objects[mod].widgets()
|
widgets = self.objects[mod].widgets()
|
||||||
for widget in widgets:
|
for widget in widgets:
|
||||||
|
widget.link_module(self.objects[mod])
|
||||||
|
self.assertEquals(widget.module, mod)
|
||||||
assertWidgetAttributes(self, widget)
|
assertWidgetAttributes(self, widget)
|
||||||
|
|
||||||
def test_update(self):
|
def test_update(self):
|
||||||
|
|
|
@ -26,16 +26,16 @@ class TestEngine(unittest.TestCase):
|
||||||
self.assertFalse(self.engine.running())
|
self.assertFalse(self.engine.running())
|
||||||
|
|
||||||
def test_load_module(self):
|
def test_load_module(self):
|
||||||
module = self.engine.load_module(self.testModule)
|
module = self.engine._load_module(self.testModule)
|
||||||
self.assertEquals(module.__module__, self.testModuleSpec)
|
self.assertEquals(module.__module__, self.testModuleSpec)
|
||||||
|
|
||||||
def test_load_invalid_module(self):
|
def test_load_invalid_module(self):
|
||||||
with self.assertRaises(ModuleLoadError):
|
with self.assertRaises(ModuleLoadError):
|
||||||
self.engine.load_module(self.invalidModule)
|
self.engine._load_module(self.invalidModule)
|
||||||
|
|
||||||
def test_load_none(self):
|
def test_load_none(self):
|
||||||
with self.assertRaises(ModuleLoadError):
|
with self.assertRaises(ModuleLoadError):
|
||||||
self.engine.load_module(None)
|
self.engine._load_module(None)
|
||||||
|
|
||||||
def test_load_modules(self):
|
def test_load_modules(self):
|
||||||
modules = self.engine.load_modules(self.testModules)
|
modules = self.engine.load_modules(self.testModules)
|
||||||
|
|
|
@ -44,17 +44,17 @@ class TestTheme(unittest.TestCase):
|
||||||
self.assertEquals(self.theme.suffix(self.someWidget), self.defaultSuffix)
|
self.assertEquals(self.theme.suffix(self.someWidget), self.defaultSuffix)
|
||||||
|
|
||||||
def test_widget_prefix(self):
|
def test_widget_prefix(self):
|
||||||
self.someWidget.attr_module = self.widgetTheme
|
self.someWidget.module = self.widgetTheme
|
||||||
self.assertEquals(self.theme.prefix(self.someWidget), self.widgetPrefix)
|
self.assertEquals(self.theme.prefix(self.someWidget), self.widgetPrefix)
|
||||||
|
|
||||||
def test_widget_fg(self):
|
def test_widget_fg(self):
|
||||||
self.assertEquals(self.theme.fg(self.someWidget), self.defaultColor)
|
self.assertEquals(self.theme.fg(self.someWidget), self.defaultColor)
|
||||||
self.someWidget.attr_module = self.widgetTheme
|
self.someWidget.module = self.widgetTheme
|
||||||
self.assertEquals(self.theme.fg(self.someWidget), self.widgetColor)
|
self.assertEquals(self.theme.fg(self.someWidget), self.widgetColor)
|
||||||
|
|
||||||
def test_widget_bg(self):
|
def test_widget_bg(self):
|
||||||
self.assertEquals(self.theme.bg(self.someWidget), self.defaultBgColor)
|
self.assertEquals(self.theme.bg(self.someWidget), self.defaultBgColor)
|
||||||
self.someWidget.attr_module = self.widgetTheme
|
self.someWidget.module = self.widgetTheme
|
||||||
self.assertEquals(self.theme.bg(self.someWidget), self.widgetBgColor)
|
self.assertEquals(self.theme.bg(self.someWidget), self.widgetBgColor)
|
||||||
|
|
||||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||||
|
|
|
@ -31,14 +31,11 @@ class MockOutput(object):
|
||||||
class MockWidget(object):
|
class MockWidget(object):
|
||||||
def __init__(self, text):
|
def __init__(self, text):
|
||||||
self._text = text
|
self._text = text
|
||||||
self.attr_module = None
|
self.module = None
|
||||||
|
|
||||||
def update(self, widgets):
|
def update(self, widgets):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def module(self):
|
|
||||||
return self.attr_module
|
|
||||||
|
|
||||||
def full_text(self):
|
def full_text(self):
|
||||||
return self._text
|
return self._text
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue