summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaz Solc <tomaz.solc@tablix.org>2011-09-21 17:54:59 +0200
committerTomaz Solc <tomaz.solc@tablix.org>2011-09-22 16:56:07 +0200
commit4f5d0a6600a22d32236663c8b23e6757f48b1663 (patch)
tree8dfe5197dc37078561dbfbbb9083e7ba386de1a2
parent37cf5550dad2871edaf9e2f987e713d4eb33aa7c (diff)
downloadunidecode-4f5d0a6600a22d32236663c8b23e6757f48b1663.tar.gz
Always return a string object on Python 2.x
Before this patch, unidecode() returned a unicode object on Python 2.x if the input was a unicode object that contained ASCII characters. Behaviour on Python 3.x remains unchanged.
-rw-r--r--tests/basic_2.py12
-rw-r--r--tests/basic_3.py12
-rw-r--r--unidecode/__init__.py2
3 files changed, 17 insertions, 9 deletions
diff --git a/tests/basic_2.py b/tests/basic_2.py
index 778643e..4e07fa1 100644
--- a/tests/basic_2.py
+++ b/tests/basic_2.py
@@ -115,8 +115,10 @@ class TestUnidecode(unittest.TestCase):
''),
]
- for input, output in TESTS:
- self.failUnlessEqual(unidecode(input), output)
+ for input, correct_output in TESTS:
+ test_output = unidecode(input)
+ self.failUnlessEqual(test_output, correct_output)
+ self.failUnless(isinstance(test_output, str))
@unittest.skipIf(sys.maxunicode < 0x10000, "narrow build")
def test_specific_wide(self):
@@ -131,8 +133,10 @@ class TestUnidecode(unittest.TestCase):
'km/h'),
]
- for input, output in TESTS:
- self.failUnlessEqual(unidecode(input), output)
+ for input, correct_output in TESTS:
+ test_output = unidecode(input)
+ self.failUnlessEqual(test_output, correct_output)
+ self.failUnless(isinstance(test_output, str))
if __name__ == "__main__":
unittest.main()
diff --git a/tests/basic_3.py b/tests/basic_3.py
index b6092a9..97d0553 100644
--- a/tests/basic_3.py
+++ b/tests/basic_3.py
@@ -101,8 +101,10 @@ class TestUnidecode(unittest.TestCase):
''),
]
- for instr, output in TESTS:
- self.failUnlessEqual(unidecode(instr), output)
+ for instr, correct_output in TESTS:
+ test_output = unidecode(instr)
+ self.failUnlessEqual(test_output, correct_output)
+ self.failUnless(isinstance(test_output, str))
@unittest.skipIf(sys.maxunicode < 0x10000, "narrow build")
def test_specific_wide(self):
@@ -117,5 +119,7 @@ class TestUnidecode(unittest.TestCase):
'km/h'),
]
- for instr, output in TESTS:
- self.failUnlessEqual(unidecode(instr), output)
+ for instr, correct_output in TESTS:
+ test_output = unidecode(instr)
+ self.failUnlessEqual(test_output, correct_output)
+ self.failUnless(isinstance(test_output, str))
diff --git a/unidecode/__init__.py b/unidecode/__init__.py
index 1b04539..4a08bf0 100644
--- a/unidecode/__init__.py
+++ b/unidecode/__init__.py
@@ -28,7 +28,7 @@ def unidecode(string):
codepoint = ord(char)
if codepoint < 0x80: # Basic ASCII
- retval.append(char)
+ retval.append(str(char))
continue
if codepoint > 0xeffff: