def test_comp_context(self): Register.add(SubComponent) obj = MyComponent() obj.root = obj template = """<comp><li><a><SubComponent></SubComponent></a></li></comp>""" obj.instructions = self.tp.parse(template) obj.mount() comp_li = obj.children[0] comp_a = comp_li.children[0] comp_sub = comp_a.children[0] self.assertEqual(RefMap.get(comp_li.context['self']), comp_li) self.assertEqual(RefMap.get(comp_li.context['parent']), obj) self.assertEqual(RefMap.get(comp_li.context['root']), obj) self.assertEqual(comp_li.root, obj) self.assertEqual(comp_li.parent, obj) self.assertEqual(RefMap.get(comp_a.context['self']), comp_a) self.assertEqual(RefMap.get(comp_a.context['parent']), comp_li) self.assertEqual(RefMap.get(comp_a.context['root']), obj) self.assertEqual(comp_a.root, obj) self.assertEqual(comp_a.parent, comp_li) self.assertEqual(RefMap.get(comp_sub.context['parent']), comp_a) self.assertEqual(RefMap.get(comp_sub.context['root']), comp_sub) comp_sub2 = SubComponent() obj.add(comp_sub2) self.assertEqual(RefMap.get(comp_sub2.context['parent']), obj) self.assertEqual(RefMap.get(comp_sub2.context['root']), comp_sub2)
def test_comp_context(self): Register.add(SubComponent) obj = MyComponent() obj.root = obj template = """<comp><li><a><SubComponent></SubComponent></a></li></comp>""" obj.instructions = self.tp.parse(template) obj.mount() comp_li = obj.children[0] comp_a = comp_li.children[0] comp_sub = comp_a.children[0] self.assertEqual(RefMap.get(comp_li.context["self"]), comp_li) self.assertEqual(RefMap.get(comp_li.context["parent"]), obj) self.assertEqual(RefMap.get(comp_li.context["root"]), obj) self.assertEqual(comp_li.root, obj) self.assertEqual(comp_li.parent, obj) self.assertEqual(RefMap.get(comp_a.context["self"]), comp_a) self.assertEqual(RefMap.get(comp_a.context["parent"]), comp_li) self.assertEqual(RefMap.get(comp_a.context["root"]), obj) self.assertEqual(comp_a.root, obj) self.assertEqual(comp_a.parent, comp_li) self.assertEqual(RefMap.get(comp_sub.context["parent"]), comp_a) self.assertEqual(RefMap.get(comp_sub.context["root"]), comp_sub) comp_sub2 = SubComponent() obj.add(comp_sub2) self.assertEqual(RefMap.get(comp_sub2.context["parent"]), obj) self.assertEqual(RefMap.get(comp_sub2.context["root"]), comp_sub2)
newcomp.value = v newcomp.html = v self.add(newcomp, before=c) added.append(v) else: break for a in added: values2add.remove(a) # Add remaining HTMLComp(tag='li') for v in values2add: try: newcomp = cls_comp(tag=self.itemtag, domnode=None) if ishtml else cls_comp() newcomp.value = v newcomp.html = v except: pass self.add(newcomp) class ListItem(Component): template = "<ListItem>{self.text}</ListItem>" rendertag = "li" # Use <li> instead of <ListItem> to render text = Property('') value = Property('') Register.add(FilteredList) Register.add(ListItem)
#self.cm = cm.fromTextArea(self.get('txt').elem, {"value": self.value, "lineNumbers": False, "mode": self.mode}) self.refresh() def refresh(self): window.requestAnimationFrame(self._refresh) def _refresh(self, ev): self.cm.refresh() def get_code(self): return self.cm.getValue() class ResultComponent(Component): tag = "ResultComponent" template = "<ResultComponent></ResultComponent>" style = """ :host { display: block; background-color: #fff;; border: 10px solid #444; padding: 15px; min-height: 700px; } """ Register.add(CodeMirror) Register.add(ResultComponent) Register.add(ComponentEditor)
class MyComponent(Component): template = "<MyComponent></MyComponent>" tag = 'MyComponent' a = Property(0) b = Property(2) class SubComponent(Component): template = "<SubComponent></SubComponent>" tag = 'SubComponent' a = Property(0) b = Property(2) Register.add(SubComponent) Register.add(MyComponent) BrowserDOMRender.direct = True TESTS = (TestProperties, TestComponent) report_html = '' document['status'].html = "Testing..." for t in TESTS: document['status'].html = "Processing %s" % (t.__name__) tester = t() report = tester.run() report_html += "<br/> <h2>%s</h2>" % (t.__name__) + report.format_html() document['status'].html = "Testing done" document['report'].html = report_html
self.add(newcomp, before=c) added.append(v) else: break for a in added: values2add.remove(a) # Add remaining HTMLComp(tag='li') for v in values2add: try: newcomp = cls_comp(tag=self.itemtag, domnode=None) if ishtml else cls_comp() newcomp.value = v newcomp.html = v except: pass self.add(newcomp) class ListItem(Component): template = "<ListItem>{self.text}</ListItem>" rendertag = "li" # Use <li> instead of <ListItem> to render text = Property('') value = Property('') Register.add(FilteredList) Register.add(ListItem)
class MyComponent(Component): template = "<MyComponent></MyComponent>" tag = "MyComponent" a = Property(0) b = Property(2) class SubComponent(Component): template = "<SubComponent></SubComponent>" tag = "SubComponent" a = Property(0) b = Property(2) Register.add(SubComponent) Register.add(MyComponent) BrowserDOMRender.direct = True TESTS = (TestProperties, TestComponent) report_html = "" document["status"].html = "Testing..." for t in TESTS: document["status"].html = "Processing %s" % (t.__name__) tester = t() report = tester.run() report_html += "<br/> <h2>%s</h2>" % (t.__name__) + report.format_html() document["status"].html = "Testing done" document["report"].html = report_html