From fred at zope.com Thu Mar 20 14:58:29 2003 From: fred at zope.com (Fred L. Drake, Jr.) Date: Sun Aug 10 17:05:18 2008 Subject: [ZPT-CVS] CVS: Zope/lib/python/TAL/tests/output - test16.xml:1.2 Message-ID: <200303201958.h2KJwTv02740@cvs.baymountain.com> Update of /cvs-repository/Zope/lib/python/TAL/tests/output In directory cvs.zope.org:/tmp/cvs-serv2699/tests/output Modified Files: test16.xml Log Message: XML attribute names are case-sensitive; do not lower-case them! This corresponds to Zope 3 collector issue 129. http://collector.zope.org/Zope3-dev/129 === Zope/lib/python/TAL/tests/output/test16.xml 1.1 => 1.2 === --- Zope/lib/python/TAL/tests/output/test16.xml:1.1 Mon Dec 16 18:21:31 2002 +++ Zope/lib/python/TAL/tests/output/test16.xml Thu Mar 20 14:58:28 2003 @@ -1,6 +1,6 @@
- + From fred at zope.com Thu Mar 20 14:58:58 2003 From: fred at zope.com (Fred L. Drake, Jr.) Date: Sun Aug 10 17:05:18 2008 Subject: [ZPT-CVS] CVS: Zope/lib/python/TAL - TALDefs.py:1.35 TALGenerator.py:1.62 TALParser.py:1.22 Message-ID: <200303201958.h2KJww902751@cvs.baymountain.com> Update of /cvs-repository/Zope/lib/python/TAL In directory cvs.zope.org:/tmp/cvs-serv2699 Modified Files: TALDefs.py TALGenerator.py TALParser.py Log Message: XML attribute names are case-sensitive; do not lower-case them! This corresponds to Zope 3 collector issue 129. http://collector.zope.org/Zope3-dev/129 === Zope/lib/python/TAL/TALDefs.py 1.34 => 1.35 === --- Zope/lib/python/TAL/TALDefs.py:1.34 Mon Dec 16 18:24:32 2002 +++ Zope/lib/python/TAL/TALDefs.py Thu Mar 20 14:58:27 2003 @@ -113,14 +113,15 @@ _subst_re = re.compile(r"\s*(?:(text|structure)\s+)?(.*)\Z", re.S) del re -def parseAttributeReplacements(arg): +def parseAttributeReplacements(arg, xml): dict = {} for part in splitParts(arg): m = _attr_re.match(part) if not m: raise TALError("Bad syntax in attributes:" + `part`) name, expr = m.group(1, 2) - name = name.lower() + if not xml: + name = name.lower() if dict.has_key(name): raise TALError("Duplicate attribute name in attributes:" + `part`) dict[name] = expr === Zope/lib/python/TAL/TALGenerator.py 1.61 => 1.62 === --- Zope/lib/python/TAL/TALGenerator.py:1.61 Mon Dec 16 18:24:32 2002 +++ Zope/lib/python/TAL/TALGenerator.py Thu Mar 20 14:58:27 2003 @@ -646,7 +646,8 @@ self.pushProgram() if attrsubst or i18nattrs: if attrsubst: - repldict = TALDefs.parseAttributeReplacements(attrsubst) + repldict = TALDefs.parseAttributeReplacements(attrsubst, + self.xml) else: repldict = {} if i18nattrs: === Zope/lib/python/TAL/TALParser.py 1.21 => 1.22 === --- Zope/lib/python/TAL/TALParser.py:1.21 Mon Dec 16 18:21:31 2002 +++ Zope/lib/python/TAL/TALParser.py Thu Mar 20 14:58:27 2003 @@ -72,7 +72,7 @@ for key, value in attrlist: key, keybase, keyns = self.fixname(key) ns = keyns or namens # default to tag namespace - item = key.lower(), value + item = key, value if ns == 'metal': metaldict[keybase] = value item = item + ("metal",) From fred at zope.com Thu Mar 20 14:58:58 2003 From: fred at zope.com (Fred L. Drake, Jr.) Date: Sun Aug 10 17:05:18 2008 Subject: [ZPT-CVS] CVS: Zope/lib/python/TAL/tests/input - test16.xml:1.2 Message-ID: <200303201958.h2KJwwX02758@cvs.baymountain.com> Update of /cvs-repository/Zope/lib/python/TAL/tests/input In directory cvs.zope.org:/tmp/cvs-serv2699/tests/input Modified Files: test16.xml Log Message: XML attribute names are case-sensitive; do not lower-case them! This corresponds to Zope 3 collector issue 129. http://collector.zope.org/Zope3-dev/129 === Zope/lib/python/TAL/tests/input/test16.xml 1.1 => 1.2 === --- Zope/lib/python/TAL/tests/input/test16.xml:1.1 Mon Dec 16 18:21:31 2002 +++ Zope/lib/python/TAL/tests/input/test16.xml Thu Mar 20 14:58:28 2003 @@ -1,7 +1,7 @@ - From fred at zope.com Fri Mar 21 14:17:33 2003 From: fred at zope.com (Fred L. Drake, Jr.) Date: Sun Aug 10 17:05:18 2008 Subject: [ZPT-CVS] CVS: Zope/lib/python/Products/PageTemplates - PageTemplate.py:1.30 Message-ID: <200303211917.h2LJHXp19947@cvs.baymountain.com> Update of /cvs-repository/Zope/lib/python/Products/PageTemplates In directory cvs.zope.org:/tmp/cvs-serv19930 Modified Files: PageTemplate.py Log Message: Use the same _cook_check() / _cook() arrangement as the Zope 3 implementation, to allow the PageTemplateFile class to override what happens when the check is performed. === Zope/lib/python/Products/PageTemplates/PageTemplate.py 1.29 => 1.30 === --- Zope/lib/python/Products/PageTemplates/PageTemplate.py:1.29 Thu Sep 19 10:39:24 2002 +++ Zope/lib/python/Products/PageTemplates/PageTemplate.py Fri Mar 21 14:17:32 2003 @@ -139,8 +139,7 @@ self._cook() def read(self): - if not self._v_cooked: - self._cook() + self._cook_check() if not self._v_errors: if not self.expand: return self._text @@ -154,6 +153,10 @@ return ('%s\n %s\n-->\n%s' % (self._error_start, '\n '.join(self._v_errors), self._text)) + + def _cook_check(self): + if not self._v_cooked: + self._cook() def _cook(self): """Compile the TAL and METAL statments. From fred at zope.com Fri Mar 21 14:22:01 2003 From: fred at zope.com (Fred L. Drake, Jr.) Date: Sun Aug 10 17:05:18 2008 Subject: [ZPT-CVS] CVS: Zope/lib/python/Products/PageTemplates/tests - test_ptfile.py:1.1 Message-ID: <200303211922.h2LJM1w20554@cvs.baymountain.com> Update of /cvs-repository/Zope/lib/python/Products/PageTemplates/tests In directory cvs.zope.org:/tmp/cvs-serv20502/tests Added Files: test_ptfile.py Log Message: Backport the type-sniffing code from Zope 3 to support XML page templates from the filesystem. === Added File Zope/lib/python/Products/PageTemplates/tests/test_ptfile.py === """Tests of PageTemplateFile.""" import os import tempfile import unittest from Products.PageTemplates.PageTemplateFile import PageTemplateFile class TypeSniffingTestCase(unittest.TestCase): TEMPFILENAME = tempfile.mktemp() def tearDown(self): if os.path.exists(self.TEMPFILENAME): os.unlink(self.TEMPFILENAME) def check_content_type(self, text, expected_type): f = open(self.TEMPFILENAME, "wb") f.write(text) f.close() pt = PageTemplateFile(self.TEMPFILENAME) pt.read() self.assertEqual(pt.content_type, expected_type) def test_sniffer_xml_ascii(self): self.check_content_type( "