From 588679c610f0f93f40fd2bfa9c6ce01a6223e778 Mon Sep 17 00:00:00 2001 From: makkalot Date: Thu, 12 Jun 2008 19:42:43 +0300 Subject: returning back a WidgetList object --- funcweb/funcweb/tests/test_widget_automation.py | 13 ++++++++++--- funcweb/funcweb/widget_automation.py | 19 ++++++++++++++++++- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/funcweb/funcweb/tests/test_widget_automation.py b/funcweb/funcweb/tests/test_widget_automation.py index 0adbc1f..f841c43 100644 --- a/funcweb/funcweb/tests/test_widget_automation.py +++ b/funcweb/funcweb/tests/test_widget_automation.py @@ -20,7 +20,7 @@ class TestWidgetListFactory(unittest.TestCase): compare_with = self.get_test_default_args() widget_list=self.widget_factory.get_widgetlist() - print "The widget list is like :",widget_list + #print "The widget list is like :",widget_list for argument_name,argument_options in compare_with.iteritems(): assert widget_list.has_key(argument_name) == True @@ -36,6 +36,15 @@ class TestWidgetListFactory(unittest.TestCase): assert argument_options['options'] == getattr(widget_list[argument_name],"options") #that should be enough + def test_get_widgetlist_object(self): + compare_with = self.get_test_default_args() + widget_list_object = self.widget_factory.get_widgetlist_object() + + #print widget_list_object + + for argument_name in compare_with.keys(): + assert hasattr(widget_list_object,argument_name) == True + #print getattr(widget_list_object,argument_name) def get_test_default_args(self): return { @@ -89,5 +98,3 @@ class TestWidgetListFactory(unittest.TestCase): } - def get_test_specialized_case(self): - pass diff --git a/funcweb/funcweb/widget_automation.py b/funcweb/funcweb/widget_automation.py index 4d6d665..36d8a5c 100644 --- a/funcweb/funcweb/widget_automation.py +++ b/funcweb/funcweb/widget_automation.py @@ -121,8 +121,25 @@ class WidgetListFactory(object): def get_widgetlist(self): """ - Return the final list back + Return back a dictionay with argument_name : input_widget + pairs. That method may not be called directly,get_widgetlist_object + is better for using in web interface """ #compute the list self.__add_general_widget() return self.__widget_list + + def get_widgetlist_object(self): + """ + Method return back the final widgetlist object + which is turbogears.widgets.WidgetsList + """ + if len(self.__widget_list.keys())==0: + self.__add_general_widget() #not very efficient + + widget_list_object = widgets.WidgetsList() + for name,input_widget in self.__widget_list.iteritems(): + setattr(widget_list_object,name,input_widget) + + #get the object back + return widget_list_object -- cgit