summaryrefslogtreecommitdiff
path: root/odoo/addons/test_new_api/tests/test_new_fields.py
diff options
context:
space:
mode:
Diffstat (limited to 'odoo/addons/test_new_api/tests/test_new_fields.py')
-rw-r--r--odoo/addons/test_new_api/tests/test_new_fields.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/odoo/addons/test_new_api/tests/test_new_fields.py b/odoo/addons/test_new_api/tests/test_new_fields.py
index 8284f4652c6..caa4eedf4bf 100644
--- a/odoo/addons/test_new_api/tests/test_new_fields.py
+++ b/odoo/addons/test_new_api/tests/test_new_fields.py
@@ -998,6 +998,62 @@ class TestFields(common.TransactionCase):
self.assertEqual(count(message), 1)
self.assertEqual(count(message1), 0)
+ def test_90_binary_svg(self):
+ from odoo.addons.base.tests.test_mimetypes import SVG
+ # This should work without problems
+ self.env['test_new_api.binary_svg'].create({
+ 'name': 'Test without attachment',
+ 'image_wo_attachment': SVG,
+ })
+ # And this gives error
+ with self.assertRaises(UserError):
+ self.env['test_new_api.binary_svg'].sudo(
+ self.env.ref('base.user_demo'),
+ ).create({
+ 'name': 'Test without attachment',
+ 'image_wo_attachment': SVG,
+ })
+
+ def test_91_binary_svg_attachment(self):
+ from odoo.addons.base.tests.test_mimetypes import SVG
+ # This doesn't neuter SVG with admin
+ record = self.env['test_new_api.binary_svg'].create({
+ 'name': 'Test without attachment',
+ 'image_attachment': SVG,
+ })
+ attachment = self.env['ir.attachment'].search([
+ ('res_model', '=', record._name),
+ ('res_field', '=', 'image_attachment'),
+ ('res_id', '=', record.id),
+ ])
+ self.assertEqual(attachment.mimetype, 'image/svg+xml')
+ # ...but this should be neutered with demo user
+ record = self.env['test_new_api.binary_svg'].sudo(
+ self.env.ref('base.user_demo'),
+ ).create({
+ 'name': 'Test without attachment',
+ 'image_attachment': SVG,
+ })
+ attachment = self.env['ir.attachment'].search([
+ ('res_model', '=', record._name),
+ ('res_field', '=', 'image_attachment'),
+ ('res_id', '=', record.id),
+ ])
+ self.assertEqual(attachment.mimetype, 'text/plain')
+
+ def test_92_binary_self_avatar_svg(self):
+ from odoo.addons.base.tests.test_mimetypes import SVG
+ demo_user = self.env.ref('base.user_demo')
+ # User demo changes his own avatar
+ demo_user.sudo(demo_user).image = SVG
+ # The SVG file should have been neutered
+ attachment = self.env['ir.attachment'].search([
+ ('res_model', '=', demo_user.partner_id._name),
+ ('res_field', '=', 'image'),
+ ('res_id', '=', demo_user.partner_id.id),
+ ])
+ self.assertEqual(attachment.mimetype, 'text/plain')
+
class TestX2many(common.TransactionCase):
def test_search_many2many(self):