Skip to content

Commit

Permalink
Merge pull request #135 from nyaruka/utf-8-sig
Browse files Browse the repository at this point in the history
open candidate csv files in mode that deals with BoM
  • Loading branch information
nicpottier committed Mar 23, 2020
2 parents bfbdee9 + 03d35ab commit bc1bfbe
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 2 deletions.
4 changes: 2 additions & 2 deletions smartmin/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ def get_import_file_headers(cls, csv_file):
break
reader.close()

reader = open(filename.name, "rU")
reader = open(filename.name, "rU", encoding='utf-8-sig')

def unicode_csv_reader(utf8_data, dialect=csv.excel, **kwargs):
csv_reader = csv.reader(utf8_data, dialect=dialect, **kwargs)
Expand Down Expand Up @@ -300,7 +300,7 @@ def import_raw_csv(cls, filename, user, import_params, log=None, import_results=
break
reader.close()

reader = open(filename.name, "rU")
reader = open(filename.name, "rU", encoding='utf-8-sig')

def unicode_csv_reader(utf8_data, dialect=csv.excel, **kwargs):
csv_reader = csv.reader(utf8_data, dialect=dialect, **kwargs)
Expand Down
2 changes: 2 additions & 0 deletions test_runner/blog/test_files/bom_import.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
URN:tel,Name,Field:email-address
12065551212,Fred,fred@gmail.com
3 changes: 3 additions & 0 deletions test_runner/blog/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,9 @@ def test_get_import_file_headers(self):
with open('test_runner/blog/test_files/posts.csv', 'rb') as open_file:
self.assertEqual(Post.get_import_file_headers(open_file), ['title', 'body', 'order', 'tags'])

with open('test_runner/blog/test_files/bom_import.csv', 'rb') as open_file:
self.assertEqual(Post.get_import_file_headers(open_file), ['urn:tel', 'name', 'field:email-address'])

def test_csv_import(self):
with self.settings(CELERY_ALWAYS_EAGER=True, CELERY_RESULT_BACKEND='cache', CELERY_CACHE_BACKEND='memory'):
import_url = reverse('blog.post_csv_import')
Expand Down

0 comments on commit bc1bfbe

Please sign in to comment.