summaryrefslogtreecommitdiff
path: root/addons/base_import/tests
diff options
context:
space:
mode:
authorNicolas Lempereur <nle@odoo.com>2016-02-19 05:37:51 +0100
committerNicolas Lempereur <nle@odoo.com>2016-02-24 11:26:16 +0100
commitd4e5019ec74231a92d7759b69c775e5e7577259b (patch)
treef4021881e98790bad3a63e49c6be27a8af2ec3b7 /addons/base_import/tests
parent4162b8f5fa31cd76fa79c7e810f49b38733a16d4 (diff)
[FIX] web: csv export newline for text/html field
CSV export was added in f146e2a and since then newline were not exported. But new line should be allowed if the string is quoted by " characters which is done in Odoo. closes #11005 opw-667853
Diffstat (limited to 'addons/base_import/tests')
-rw-r--r--addons/base_import/tests/test_cases.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/addons/base_import/tests/test_cases.py b/addons/base_import/tests/test_cases.py
index 873d749d55a..2d53c47eee5 100644
--- a/addons/base_import/tests/test_cases.py
+++ b/addons/base_import/tests/test_cases.py
@@ -1,5 +1,9 @@
# -*- encoding: utf-8 -*-
+
+import csv
+import io
import unittest2
+
from openerp.tests.common import TransactionCase
from .. import models
@@ -376,6 +380,31 @@ class test_convert_import_data(TransactionCase):
record, [False, False, False],
{'quoting': '"', 'separator': ',', 'headers': True,})
+ def test_newline_import(self):
+ """
+ Ensure importing keep newlines
+ """
+ Import = self.registry('base_import.import')
+ output = io.BytesIO()
+ writer = csv.writer(output, quoting=csv.QUOTE_ALL)
+
+ data_row = ("\tfoo\n\tbar", " \"hello\" \n\n 'world' ")
+
+ writer.writerow(["name", "Some Value"])
+ writer.writerow(data_row)
+
+
+ id = Import.create(self.cr, self.uid, {
+ 'res_model': 'base_import.tests.models.preview',
+ 'file': output.getvalue()
+ })
+ record = Import.browse(self.cr, self.uid, id)
+ data, _ = Import._convert_import_data(
+ record, ['name', 'somevalue'],
+ {'quoting': '"', 'separator': ',', 'headers': True,})
+
+ self.assertItemsEqual(data, [data_row])
+
class test_failures(TransactionCase):
def test_big_attachments(self):
"""