def test_order_is_preserved_in_css(self): css = [CSSSource(src="source%d"%i) for i in xrange(5)] w = Widget(css=css) self.failUnlessEqual( [c.src for c in w.retrieve_resources()['head']], ["source%d"%i for i in xrange(5)] )
def test_order_is_preserved_in_js(self): js = [JSSource(src="source%d"%i) for i in xrange(5)] w = Widget(javascript=js) self.failUnlessEqual( [j.src for j in w.retrieve_resources()['head']], ["source%d"%i for i in xrange(5)] )
def test_resources_are_collected_from_children(self): c = count() children = [ Widget(css=[CSSSource(src='source%d'% c.next()) for i in xrange(5)]) for i in xrange(5) ] p = Widget(children=children) self.assertEqual(len(p.retrieve_resources()[locations.head]), 25)
def test_order_is_preserved_in_css_and_css_is_in_head(self): css = [CSSSource(src="source%d"%i) for i in xrange(5)] w = Widget(css=css) resources = w.retrieve_resources() self.failUnlessEqual( [c.src for c in resources[locations.head]], ["source%d"%i for i in xrange(5)] )
def test_no_duplicates_in_css(self): css = ([CSSSource(src="source%d"%i) for i in xrange(5)] + [CSSSource(src="source%d"%i) for i in xrange(2,10)]) w = Widget(css=css) self.failUnlessEqual( [c.src for c in w.retrieve_resources()['head']], ["source%d"%i for i in xrange(10)] )
def test_no_duplicates_in_js(self): js = ([JSSource(src="source%d"%i) for i in xrange(5)] + [JSSource(src="source%d"%i) for i in xrange(2,10)]) w = Widget(javascript=js) self.failUnlessEqual( [j.src for j in w.retrieve_resources()['head']], ["source%d"%i for i in xrange(10)] ) self.failUnlessEqual(len(w.retrieve_resources()['head']), 10)
def test_resources_are_classified_correctly(self): js = [JSSource(src="js%d-%s"%(i,l), location=l) for l in locations for i in xrange(5)] w = Widget(javascript=js) resources = w.retrieve_resources() for l in locations: self.failUnlessEqual( [r.src for r in resources[l]], ["js%d-%s"%(i,l) for i in xrange(5)] )
def test_resource_dependencies_are_collected(self): c1 = CSSSource(src="c1") c2 = CSSSource(src="c2") j1 = JSSource(src="d1") j2 = JSSource(src="d2") js = JSSource(src="js", css=[c1,c2], javascript=[j1,j2]) css = CSSSource(src="css", css=[c1,c2], javascript=[j1,j2]) w = Widget(javascript=[js], css=[css]) head_resources = w.retrieve_resources()['head'] js = filter(lambda s: isinstance(s, JSMixin), head_resources) css = filter(lambda s: isinstance(s, CSSMixin), head_resources) self.failUnlessEqual(len(css), 3) self.failUnlessEqual(len(js), 3)
def _do_get_field_widgets(self, fields): metadata_keys = self.__metadata__.keys() widgets = {} for field_name in fields: if field_name in self.__field_widgets__: widgets[field_name] = self.__field_widgets__[field_name] continue if field_name in self.__add_fields__: widget = self.__add_fields__[field_name] if widget is None: widget = Widget(field_name) widgets[field_name] = widget continue if field_name in self.__ignore_field_names__: continue if field_name in self.__hide_fields__: continue if field_name not in metadata_keys: continue field = self.__metadata__[field_name] if inspect.isclass(field): identifier = ClassViewer(field) field_widget_type = self.__field_widget_types__.get( field_name, self.__widget_selector__.select(field)) field_widget_args = self._do_get_field_widget_args( field_name, field) if field_name in self._do_get_disabled_fields(): # in this case, we display the current field, disabling it, and also add # a hidden field into th emix field_widget_args['disabled'] = True widgets[field_name] = (HiddenField(id=field_name.replace( '.', '_'), identifier=field_name), field_widget_type(**field_widget_args)) else: widgets[field_name] = field_widget_type(**field_widget_args) widgets.update(self.__create_hidden_fields()) return widgets
def update_params(self, d): Widget.update_params(self,d) self.add_call(a_js_func(d.test), d.call_location)
def update_params(self, d): Widget.update_params(self,d) self.add_call( a_js_func(self.id, "This shouldn't be possible") )
#pprint.pprint(stats.get_sort_arg_defs()) stats = stats.strip_dirs().sort_stats('time', 'call')\ .print_stats(50) if PRINT_CALLERS: stats.print_callers(5) ### Start profiling output print("*"*78) print("Profiling ToscaWidgets %s in with NCALLS = %d" % (VERSION, NCALLS)) if MSG: print(MSG) print("*"*78) print_stats("Widget initialization", Widget, "test_widget") w = Widget("test_widget") print_stats("Widget.prepare_dict", w.prepare_dict, "value", {}) print("*"*78) print_stats("TestForm initialization", TestForm, "test_widget") w = TestForm("test_widget") w.display() # preload template print_stats("TestForm.display", w.display, data) print("*"*78) print_stats("AddUserForm initialization", AddUserForm, "test_widget") w = AddUserForm("test_widget") w.display() # preload template print_stats("AddUserForm.display", w.display, data) try: