def test_parser(self): TAG_MAPPING['testnode'] = {'type': 'list'} skel_content = open(join(dirname(__file__), 'skel.xml'), 'r').read() sk, error = skel_parser().parse('Garbage content') self.assertNotEqual(error, '') self.assertEqual(sk, None) sk, error = skel_parser().parse(skel_content) self.assertEqual(error, '') self.assertNotEqual(sk.root, None) self.assertEqual(len(sk.root.testnode), 4) self.assertFalse(isinstance(sk.root.forms, list)) self.assertTrue(isinstance(sk.root.forms.forms, list)) self.assertTrue(len(sk.root.forms.forms) > 1) self.assertNotEqual(sk.root.forms.forms[1].id, None) self.assertEqual(sk.root.layout.skins[0].styles, []) self.assertEqual(sk.root.syndication.remotechannels, []) self.assertFalse(isinstance(sk.root.others.images, list)) self.assertNotEqual(sk.root.security, None) for role in sk.root.security.roles: self.assertNotEqual(role.name, None) self.assertNotEqual(role.name, '') for permission in role.permissions: self.assertNotEqual(permission.name, None) self.assertNotEqual(permission.name, '') if role == 'Authenticated': expected = [ "Naaya - Add comments for content", "Naaya - Bulk download", "Naaya - Skip Captcha" ] self.assertEqual(set(map(role.permissions, lambda x: x.name)), set(expected))
def test_parser(self): TAG_MAPPING["testnode"] = {"type": "list"} skel_content = open(join(dirname(__file__), "skel.xml"), "r").read() sk, error = skel_parser().parse("Garbage content") self.assertNotEqual(error, "") self.assertEqual(sk, None) sk, error = skel_parser().parse(skel_content) self.assertEqual(error, "") self.assertNotEqual(sk.root, None) self.assertEqual(len(sk.root.testnode), 4) self.assertFalse(isinstance(sk.root.forms, list)) self.assertTrue(isinstance(sk.root.forms.forms, list)) self.assertTrue(len(sk.root.forms.forms) > 1) self.assertNotEqual(sk.root.forms.forms[1].id, None) self.assertEqual(sk.root.layout.skins[0].styles, []) self.assertEqual(sk.root.syndication.remotechannels, []) self.assertFalse(isinstance(sk.root.others.images, list)) self.assertNotEqual(sk.root.security, None) for role in sk.root.security.roles: self.assertNotEqual(role.name, None) self.assertNotEqual(role.name, "") for permission in role.permissions: self.assertNotEqual(permission.name, None) self.assertNotEqual(permission.name, "") if role == "Authenticated": expected = ["Naaya - Add comments for content", "Naaya - Bulk download", "Naaya - Skip Captcha"] self.assertEqual(set(map(role.permissions, lambda x: x.name)), set(expected))
def get_skin_and_scheme_id(self, portal_path): skel = open(join(portal_path, 'skel', 'skel.xml'), 'rb') skel_handler, error = skel_parser().parse(skel.read()) skel.close() skin = skel_handler.root.layout.default_skin_id scheme = skel_handler.root.layout.default_scheme_id return skin, scheme
def get_skin_and_scheme_id(self, portal_path): skel = open(join(portal_path, 'skel', 'skel.xml'), 'rb') skel_handler, error = skel_parser().parse(skel.read()) skel.close() skin = skel_handler.root.layout.default_skin_id scheme = skel_handler.root.layout.default_scheme_id return skin, scheme
def list_fs_templates(self, portal): """ return the list of the filesystem templates """ portal_path = get_portal_path(self, portal) skel_handler, error = skel_parser().parse(readFile(join(portal_path, 'skel', 'skel.xml'), 'r')) if skel_handler.root.forms is not None: return [f.id for f in skel_handler.root.forms.forms]
def get_fs_template_content(self, id, portal): """ return the content of the filesystem template """ portal_path = get_portal_path(self, portal) skel_handler, error = skel_parser().parse(readFile(join(portal_path, 'skel', 'skel.xml'), 'r')) if skel_handler.root.forms is not None: return readFile(join(portal_path, 'skel', 'forms', '%s.zpt' % id), 'r')
def fix_selection_lists(self, REQUEST=None): """ """ from Products.Naaya.managers.skel_parser import skel_parser #remove absolete eventtypes property try: delattr(self, '_events_tool__eventtypes') self._p_changed = 1 except: pass #reload Naaya Event pluggable type self.manage_uninstall_pluggableitem(meta_type=METATYPE_NYEVENT) self.manage_install_pluggableitem(meta_type=METATYPE_NYEVENT) #reload administration portlet self.getPortletsTool()._getOb('portlet_administration').pt_edit( text=self.futRead( join(CHM2_PRODUCT_PATH, 'skel', 'portlets', 'portlet_administration.zpt'), 'r'), content_type='') #load data for x in [NAAYA_PRODUCT_PATH, CHM2_PRODUCT_PATH]: skel_handler, error = skel_parser().parse( self.futRead(join(x, 'skel', 'skel.xml'), 'r')) if skel_handler is not None: formstool_ob = self.getFormsTool() portletstool_ob = self.getPortletsTool() if skel_handler.root.forms is not None: for form in skel_handler.root.forms.forms: content = self.futRead( join(x, 'skel', 'forms', '%s.zpt' % form.id), 'r') form_ob = formstool_ob._getOb(form.id, None) if form_ob is None: formstool_ob.manage_addTemplate(id=form.id, title=form.title, file='') form_ob = formstool_ob._getOb(form.id, None) form_ob.pt_edit(text=content, content_type='') if skel_handler.root.portlets is not None: for reflist in skel_handler.root.portlets.reflists: reflist_ob = portletstool_ob._getOb(reflist.id, None) if reflist_ob is None: portletstool_ob.manage_addRefTree( reflist.id, reflist.title, reflist.description) reflist_ob = portletstool_ob._getOb(reflist.id) else: reflist_ob.manage_delObjects( reflist_ob.objectIds()) for item in reflist.items: reflist_ob.manage_addRefTreeNode( item.id, item.title) return 'Script OK.'
def test_parser(self): TAG_MAPPING['testnode'] = {'type': 'list'} skel_content = open(join(dirname(__file__), 'skel.xml'), 'r').read() sk, error = skel_parser().parse('Garbage content') self.assertNotEqual(error, '') self.assertEqual(sk, None) sk, error = skel_parser().parse(skel_content) self.assertEqual(error, '') self.assertNotEqual(sk.root, None) self.assertEqual(len(sk.root.testnode), 4) self.assertFalse(isinstance(sk.root.forms, list)) self.assertTrue(isinstance(sk.root.forms.forms, list)) self.assertTrue(len(sk.root.forms.forms) > 1) self.assertNotEqual(sk.root.forms.forms[1].id, None) self.assertEqual(sk.root.layout.skins[0].styles, []) self.assertEqual(sk.root.syndication.remotechannels, []) self.assertFalse(isinstance(sk.root.others.images, list)) self.assertNotEqual(sk.root.security, None) for role in sk.root.security.roles: self.assertNotEqual(role.name, None) self.assertNotEqual(role.name, '') for permission in role.permissions: self.assertNotEqual(permission.name, None) self.assertNotEqual(permission.name, '')
def fix_selection_lists(self, REQUEST=None): """ """ from Products.Naaya.managers.skel_parser import skel_parser # remove absolete eventtypes property try: delattr(self, '_events_tool__eventtypes') self._p_changed = 1 except: pass # reload Naaya Event pluggable type self.manage_uninstall_pluggableitem(meta_type=METATYPE_NYEVENT) self.manage_install_pluggableitem(meta_type=METATYPE_NYEVENT) # reload administration portlet self.getPortletsTool()._getOb('portlet_administration').pt_edit( text=self.futRead(join(CHM2_PRODUCT_PATH, 'skel', 'portlets', 'portlet_administration.zpt'), 'r'), content_type='') # load data for x in [NAAYA_PRODUCT_PATH, CHM2_PRODUCT_PATH]: skel_handler, error = skel_parser().parse(self.futRead( join(x, 'skel', 'skel.xml'), 'r')) if skel_handler is not None: formstool_ob = self.getFormsTool() portletstool_ob = self.getPortletsTool() if skel_handler.root.forms is not None: for form in skel_handler.root.forms.forms: content = self.futRead(join(x, 'skel', 'forms', '%s.zpt' % form.id), 'r') form_ob = formstool_ob._getOb(form.id, None) if form_ob is None: formstool_ob.manage_addTemplate( id=form.id, title=form.title, file='') form_ob = formstool_ob._getOb(form.id, None) form_ob.pt_edit(text=content, content_type='') if skel_handler.root.portlets is not None: for reflist in skel_handler.root.portlets.reflists: reflist_ob = portletstool_ob._getOb(reflist.id, None) if reflist_ob is None: portletstool_ob.manage_addRefTree( reflist.id, reflist.title, reflist.description) reflist_ob = portletstool_ob._getOb(reflist.id) else: reflist_ob.manage_delObjects( reflist_ob.objectIds()) for item in reflist.items: reflist_ob.manage_addRefTreeNode(item.id, item.title) return 'Script OK.'
def fix_selection_lists(self, REQUEST=None): """ """ from Products.Naaya.managers.skel_parser import skel_parser # remove absolete eventtypes property try: delattr(self, "_events_tool__eventtypes") self._p_changed = 1 except: pass # reload Naaya Event pluggable type self.manage_uninstall_pluggableitem(meta_type=METATYPE_NYEVENT) self.manage_install_pluggableitem(meta_type=METATYPE_NYEVENT) # reload administration portlet self.getPortletsTool()._getOb("portlet_administration").pt_edit( text=self.futRead(join(CHM2_PRODUCT_PATH, "skel", "portlets", "portlet_administration.zpt"), "r"), content_type="", ) # load data for x in [NAAYA_PRODUCT_PATH, CHM2_PRODUCT_PATH]: skel_handler, error = skel_parser().parse(self.futRead(join(x, "skel", "skel.xml"), "r")) if skel_handler is not None: formstool_ob = self.getFormsTool() portletstool_ob = self.getPortletsTool() if skel_handler.root.forms is not None: for form in skel_handler.root.forms.forms: content = self.futRead(join(x, "skel", "forms", "%s.zpt" % form.id), "r") form_ob = formstool_ob._getOb(form.id, None) if form_ob is None: formstool_ob.manage_addTemplate(id=form.id, title=form.title, file="") form_ob = formstool_ob._getOb(form.id, None) form_ob.pt_edit(text=content, content_type="") if skel_handler.root.portlets is not None: for reflist in skel_handler.root.portlets.reflists: reflist_ob = portletstool_ob._getOb(reflist.id, None) if reflist_ob is None: portletstool_ob.manage_addRefList(reflist.id, reflist.title, reflist.description) reflist_ob = portletstool_ob._getOb(reflist.id) else: reflist_ob.manage_delete_items(reflist_ob.get_collection().keys()) for item in reflist.items: reflist_ob.add_item(item.id, item.title) return "Script OK."