def test_is_view_template_alias(self): browserDefault = IBrowserDefault(self.folder, None) fti = browserDefault.getTypeInfo() aliases = fti.getMethodAliases() aliases["foo_alias"] = "(Default)" fti.setMethodAliases(aliases) self.app.REQUEST["ACTUAL_URL"] = self.folder.absolute_url() + "/foo_alias" self.assertEquals(self.fview.is_view_template(), True) self.assertEquals(self.dview.is_view_template(), False)
def test_is_view_template_alias(self): browserDefault = IBrowserDefault(self.folder, None) fti = browserDefault.getTypeInfo() aliases = fti.getMethodAliases() aliases['foo_alias'] = '(Default)' fti.setMethodAliases(aliases) self.app.REQUEST[ 'ACTUAL_URL'] = self.folder.absolute_url() + '/foo_alias' self.assertEqual(self.fview.is_view_template(), True) self.assertEqual(self.dview.is_view_template(), False)
def is_view_template(self): current_url = self.current_base_url() canonical_url = self.canonical_object_url() object_url = self.object_url() if current_url.endswith('/'): current_url = current_url[:-1] if current_url == canonical_url or current_url == object_url: return True if not current_url.startswith(object_url): # Cut short. return False # Get the part of the current_url minus the object_url. last_part = current_url.split(object_url)[-1] if not last_part.startswith('/'): # Unexpected return False # Remove the slash from the front: last_part = last_part[1:] if last_part == 'view': return True context = aq_inner(self.context) browserDefault = IBrowserDefault(context, None) if browserDefault is not None: fti = browserDefault.getTypeInfo() if fti.getMethodAliases().get(last_part) == '(Default)': return True template_id = self.view_template_id() if last_part == template_id: return True elif last_part == '@@%s' % template_id: return True return False