fix py3 STYLE and SCRIPT tags, close #1835
This commit is contained in:
@@ -1419,20 +1419,21 @@ class LINK(DIV):
|
||||
|
||||
class SCRIPT(DIV):
|
||||
|
||||
tag = 'script'
|
||||
tag = b'script'
|
||||
tagname = to_bytes(tag)
|
||||
|
||||
def xml(self):
|
||||
(fa, co) = self._xml()
|
||||
fa = to_native(fa)
|
||||
fa = to_bytes(fa)
|
||||
# no escaping of subcomponents
|
||||
co = '\n'.join([str(component) for component in
|
||||
co = b'\n'.join([to_bytes(component) for component in
|
||||
self.components])
|
||||
if co:
|
||||
# <script [attributes]><!--//--><![CDATA[//><!--
|
||||
# script body
|
||||
# //--><!]]></script>
|
||||
# return '<%s%s><!--//--><![CDATA[//><!--\n%s\n//--><!]]></%s>' % (self.tag, fa, co, self.tag)
|
||||
return '<%s%s><!--\n%s\n//--></%s>' % (self.tag, fa, co, self.tag)
|
||||
return b'<%s%s><!--\n%s\n//--></%s>' % (self.tagname, fa, co, self.tagname)
|
||||
else:
|
||||
return DIV.xml(self)
|
||||
|
||||
@@ -1440,18 +1441,19 @@ class SCRIPT(DIV):
|
||||
class STYLE(DIV):
|
||||
|
||||
tag = 'style'
|
||||
tagname = to_bytes(tag)
|
||||
|
||||
def xml(self):
|
||||
(fa, co) = self._xml()
|
||||
fa = to_native(fa)
|
||||
fa = to_bytes(fa)
|
||||
# no escaping of subcomponents
|
||||
co = '\n'.join([str(component) for component in
|
||||
co = b'\n'.join([to_bytes(component) for component in
|
||||
self.components])
|
||||
if co:
|
||||
# <style [attributes]><!--/*--><![CDATA[/*><!--*/
|
||||
# style body
|
||||
# /*]]>*/--></style>
|
||||
return '<%s%s><!--/*--><![CDATA[/*><!--*/\n%s\n/*]]>*/--></%s>' % (self.tag, fa, co, self.tag)
|
||||
return b'<%s%s><!--/*--><![CDATA[/*><!--*/\n%s\n/*]]>*/--></%s>' % (self.tagname, fa, co, self.tagname)
|
||||
else:
|
||||
return DIV.xml(self)
|
||||
|
||||
|
||||
@@ -340,18 +340,20 @@ class TestBareHelpers(unittest.TestCase):
|
||||
|
||||
def test_SCRIPT(self):
|
||||
self.assertEqual(SCRIPT('<>', _a='1', _b='2').xml(),
|
||||
'''<script a="1" b="2"><!--
|
||||
b'''<script a="1" b="2"><!--
|
||||
<>
|
||||
//--></script>''')
|
||||
self.assertEqual(SCRIPT('<>').xml(),
|
||||
'''<script><!--
|
||||
b'''<script><!--
|
||||
<>
|
||||
//--></script>''')
|
||||
self.assertEqual(SCRIPT().xml(), b'<script></script>')
|
||||
self.assertEqual(SCRIPT(';').xml() + DIV().xml(),
|
||||
b'<script><!--\n;\n//--></script><div></div>')
|
||||
|
||||
def test_STYLE(self):
|
||||
self.assertEqual(STYLE('<>', _a='1', _b='2').xml(),
|
||||
'<style a="1" b="2"><!--/*--><![CDATA[/*><!--*/\n<>\n/*]]>*/--></style>')
|
||||
b'<style a="1" b="2"><!--/*--><![CDATA[/*><!--*/\n<>\n/*]]>*/--></style>')
|
||||
# Try to hit : return DIV.xml(self)
|
||||
self.assertEqual(STYLE().xml(), b'<style></style>')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user