summaryrefslogtreecommitdiff
path: root/addons/base_import/tests
diff options
context:
space:
mode:
authorXavier Morel <xmo@odoo.com>2015-02-27 13:19:02 +0100
committerXavier Morel <xmo@odoo.com>2015-02-27 14:11:21 +0100
commit68f14c68709bbb50cb7fb66d288955e1d769c5ff (patch)
tree9795af6132f87c136ddccdcdbeff6638ec174fa3 /addons/base_import/tests
parent05905b794eb1e9eaee85e2ee235e42f0f0072556 (diff)
[FIX] handling of big fields in CSV
fixes #2742
Diffstat (limited to 'addons/base_import/tests')
-rw-r--r--addons/base_import/tests/test_cases.py32
1 files changed, 29 insertions, 3 deletions
diff --git a/addons/base_import/tests/test_cases.py b/addons/base_import/tests/test_cases.py
index bad79bc7cdc..768754df07c 100644
--- a/addons/base_import/tests/test_cases.py
+++ b/addons/base_import/tests/test_cases.py
@@ -210,9 +210,6 @@ class test_preview(TransactionCase):
})
self.assertTrue('error' in result)
- def test_csv_errors(self):
- Import, id = self.make_import()
-
result = Import.parse_preview(self.cr, self.uid, id, {
'quoting': '"',
'separator': 'bob',
@@ -356,3 +353,32 @@ class test_convert_import_data(TransactionCase):
Import._convert_import_data,
record, [False, False, False],
{'quoting': '"', 'separator': ',', 'headers': True,})
+
+class test_failures(TransactionCase):
+ def test_big_attachments(self):
+ """
+ Ensure big fields (e.g. b64-encoded image data) can be imported and
+ we're not hitting limits of the default CSV parser config
+ """
+ import csv, cStringIO
+ from PIL import Image
+
+ im = Image.new('RGB', (1920, 1080))
+ fout = cStringIO.StringIO()
+
+ writer = csv.writer(fout, dialect=None)
+ writer.writerows([
+ ['name', 'db_datas'],
+ ['foo', im.tobytes().encode('base64')]
+ ])
+
+ Import = self.env['base_import.import']
+ imp = Import.create({
+ 'res_model': 'ir.attachment',
+ 'file': fout.getvalue()
+ })
+ [results] = imp.do(
+ ['name', 'db_datas'],
+ {'headers': True, 'separator': ',', 'quoting': '"'})
+ self.assertFalse(
+ results, "results should be empty on successful import")