[FIX] P3: arch should be unicode
This commit is contained in:
@@ -191,29 +191,29 @@ class TestViewSaving(common.TransactionCase):
|
||||
def test_save_escaped_text(self):
|
||||
""" Test saving html special chars in text nodes """
|
||||
view = self.env['ir.ui.view'].create({
|
||||
'arch': '<t t-name="dummy"><p><h1>hello world</h1></p></t>',
|
||||
'arch': u'<t t-name="dummy"><p><h1>hello world</h1></p></t>',
|
||||
'type': 'qweb'
|
||||
})
|
||||
# script and style text nodes should not escaped client side
|
||||
replacement = '<script>1 && "hello & world"</script>'
|
||||
replacement = u'<script>1 && "hello & world"</script>'
|
||||
view.save(replacement, xpath='/t/p/h1')
|
||||
self.assertIn(
|
||||
replacement.replace('&', '&'),
|
||||
replacement.replace(u'&', u'&'),
|
||||
view.arch,
|
||||
'inline script should be escaped server side'
|
||||
)
|
||||
self.assertIn(
|
||||
replacement,
|
||||
view.render(),
|
||||
view.render().decode('utf-8'),
|
||||
'inline script should not be escaped when rendering'
|
||||
)
|
||||
# common text nodes should be be escaped client side
|
||||
replacement = 'world &amp; &lt;b&gt;cie'
|
||||
replacement = u'world &amp; &lt;b&gt;cie'
|
||||
view.save(replacement, xpath='/t/p')
|
||||
self.assertIn(replacement, view.arch, 'common text node should not be escaped server side')
|
||||
self.assertIn(
|
||||
replacement,
|
||||
view.render().replace('&', '&'),
|
||||
view.render().decode('utf-8').replace(u'&', u'&'),
|
||||
'text node characters wrongly unescaped when rendering'
|
||||
)
|
||||
|
||||
|
||||
@@ -484,7 +484,7 @@ class FileSystemLoader(object):
|
||||
if node.get('t-name') == name:
|
||||
root = etree.Element('templates')
|
||||
root.append(deepcopy(node))
|
||||
arch = etree.tostring(root, encoding='utf-8')
|
||||
arch = etree.tostring(root, encoding='unicode')
|
||||
return arch
|
||||
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ class TestCurrencyExport(TestExport):
|
||||
converted, u'<span class="oe_currency_value">\u20110.12</span>'
|
||||
u'\N{NO-BREAK SPACE}{symbol}'.format(
|
||||
obj=obj,
|
||||
symbol=currency.symbol.encode('utf-8')
|
||||
symbol=currency.symbol
|
||||
),)
|
||||
|
||||
def test_currency_pre(self):
|
||||
@@ -136,9 +136,9 @@ class TestCurrencyExport(TestExport):
|
||||
self.assertEqual(
|
||||
converted,
|
||||
u'{symbol}\N{NO-BREAK SPACE}'
|
||||
'<span class="oe_currency_value">0.12</span>'.format(
|
||||
u'<span class="oe_currency_value">0.12</span>'.format(
|
||||
obj=obj,
|
||||
symbol=currency.symbol.encode('utf-8')
|
||||
symbol=currency.symbol
|
||||
),)
|
||||
|
||||
def test_currency_precision(self):
|
||||
@@ -151,10 +151,10 @@ class TestCurrencyExport(TestExport):
|
||||
|
||||
self.assertEqual(
|
||||
converted,
|
||||
'<span class="oe_currency_value">0.12</span>'
|
||||
u'<span class="oe_currency_value">0.12</span>'
|
||||
u'\N{NO-BREAK SPACE}{symbol}'.format(
|
||||
obj=obj,
|
||||
symbol=currency.symbol.encode('utf-8')
|
||||
symbol=currency.symbol
|
||||
),)
|
||||
|
||||
|
||||
@@ -217,9 +217,7 @@ class TestBinaryExport(TestBasicExport):
|
||||
value = converter.value_to_html(encoded_content, {})
|
||||
|
||||
self.assertEqual(
|
||||
value, b'<img src="data:image/jpeg;base64,%s">' % (
|
||||
encoded_content
|
||||
))
|
||||
value, u'<img src="data:image/jpeg;base64,%s">' % encoded_content.decode('ascii'))
|
||||
|
||||
with open(os.path.join(directory, 'test_vectors', 'pdf'), 'rb') as f:
|
||||
content = f.read()
|
||||
|
||||
Reference in New Issue
Block a user