From 16a7c2a76d8945f58b62bedbc683941bf8ecc8bc Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 20 Aug 2020 17:08:49 +0200 Subject: [PATCH] misc: keep newlines in CSV import (#42624) --- tests/test_backoffice_pages.py | 3 ++- wcs/backoffice/data_management.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/test_backoffice_pages.py b/tests/test_backoffice_pages.py index 5134ee9d..382a4e3d 100644 --- a/tests/test_backoffice_pages.py +++ b/tests/test_backoffice_pages.py @@ -6354,7 +6354,7 @@ def test_backoffice_cards_import_data_from_csv(pub, studio): data = [b'Table,Map,Test,Boolean,List,Date,File,Email,Long,List2'] for i in range(1, 150): - data.append(b'table,48.81;2.37,data%d ,%s,item%d,2020-01-%02d,filename-%d,test@localhost,plop,1' % ( + data.append(b'table,48.81;2.37,data%d ,%s,item%d,2020-01-%02d,filename-%d,test@localhost,"plop\nplop",1' % ( i, str(bool(i % 2)).encode('utf-8'), i, i % 31 + 1, i)) resp.forms[0]['file'] = Upload('test.csv', b'\n'.join(data), @@ -6368,6 +6368,7 @@ def test_backoffice_cards_import_data_from_csv(pub, studio): assert card1.data['2'] == 'data1' assert card1.data['3'] is True assert card1.data['5'].tm_mday == 2 + assert card1.data['9'] == 'plop\nplop' assert card1.data['10'] == '1' assert card1.data['10_display'] == 'un' assert card1.data['10_structured'] == {'id': '1', 'text': 'un', 'more': 'foo'} diff --git a/wcs/backoffice/data_management.py b/wcs/backoffice/data_management.py index 864f6b79..0e9fc844 100644 --- a/wcs/backoffice/data_management.py +++ b/wcs/backoffice/data_management.py @@ -224,7 +224,7 @@ class CardPage(FormPage): except csv.Error: dialect = None - reader = csv.reader(content.splitlines(), dialect=dialect) + reader = csv.reader(content.splitlines(keepends=True), dialect=dialect) try: caption = next(reader) except StopIteration: -- 2.28.0