From 80e72cfa27264efb9f525bd92ce6476c5eadb3e9 Mon Sep 17 00:00:00 2001 From: Bruno Alla Date: Thu, 12 Jan 2017 09:49:45 +0000 Subject: Fix unicode encode errors on Python 2 -- Fixes #215 Switch csv library to backports.csv as the implementation is closer to the python 3 one. Add a test case covering the problem. Run tests with unicode_literals from future Fix unicode encode errors with unicode characters - Use `backports.csv` instead of `unicodecsv` - Use StringIO instead of cStringIO - Clean-up some Python 2 specific code --- test_tablib.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'test_tablib.py') diff --git a/test_tablib.py b/test_tablib.py index 03a46df..96cd884 100755 --- a/test_tablib.py +++ b/test_tablib.py @@ -1,17 +1,17 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- """Tests for Tablib.""" +from __future__ import unicode_literals +import datetime import json -import unittest import sys -import os - -import datetime +import unittest import tablib from tablib.compat import markup, unicode, is_py3 from tablib.core import Row +from tablib.formats import csv as csv_format class TablibTestCase(unittest.TestCase): @@ -531,6 +531,15 @@ class TablibTestCase(unittest.TestCase): self.assertEqual(_csv, data.csv) + def test_csv_import_set_with_unicode_str(self): + """Import CSV set with non-ascii characters in unicode literal""" + csv_text = ( + "id,givenname,surname,loginname,email,pref_firstname,pref_lastname\n" + "13765,Ævar,Arnfjörð,testing,test@example.com,Ævar,Arnfjörð" + ) + data.csv = csv_text + self.assertEqual(data.width, 7) + def test_tsv_import_set(self): """Generate and import TSV set serialization.""" data.append(self.john) -- cgit v1.2.1