Projet

Général

Profil

0001-csv-remove-BOM-if-exists-8727.patch

Thomas Noël, 18 décembre 2015 12:36

Télécharger (1,77 ko)

Voir les différences:

Subject: [PATCH] csv: remove BOM if exists (#8727)

 passerelle/apps/csvdatasource/models.py | 3 +++
 tests/test_csv_datasource.py            | 9 +++++++++
 2 files changed, 12 insertions(+)
passerelle/apps/csvdatasource/models.py
56 56
        if not content:
57 57
            return None
58 58

  
59
        # remove BOM
60
        content = content.decode('utf-8-sig').encode('utf-8')
61

  
59 62
        dialect = csv.Sniffer().sniff(content[:1024])
60 63
        reader = csv.reader(content.splitlines(), dialect)
61 64

  
tests/test_csv_datasource.py
27 27
216352;38;Dupont;Benoît;H
28 28
"""
29 29

  
30
data_bom = data.decode('utf-8').encode('utf-8-sig')
31

  
30 32
from csvdatasource.models import CsvDataSource
31 33

  
32 34
pytestmark = pytest.mark.django_db
......
105 107
        assert 'id' in item
106 108
        assert 'text' in item
107 109
        assert filter_criteria.lower() in item['text'].decode('utf-8')
110

  
111
def test_data_bom():
112
    csv = CsvDataSource.objects.create(csv_file=File(StringIO(data_bom), 'data.csv'),
113
                        columns_keynames='fam,id,, text,sexe ')
114
    result = csv.get_data('Eliot')
115
    assert result[0] == {'id': '69981', 'text': 'Eliot',
116
                         'fam': '121', 'sexe': 'H'}
108
-