diff Lib/sqlite3/test/types.py @ 43638:b10544827af7

Make str/str8 comparisons return True/False for !=/==. Code that has been returning str8 becomes much more apparent thanks to this (e.g., struct module returning str8 for all string-related formats or sqlite3 passing in str8 instances when converting objects that had a __conform__ method). One also has to watch out in C code when making a key from char * using PyString in the C code but a str instance in Python code as that will not longer compare equal. Once str8 gains a constructor like the current bytes type then test_modulefinder needs a cleanup as the fix is a little messy in that file. Thanks goes to Thomas Lee for writing the patch for the change giving an initial run-down of why most of the tests were failing.
author Brett Cannon <bcannon@gmail.com>
date Mon, 22 Oct 2007 20:24:51 +0000
parents 8c10aac37037
children 0d462d789b18
line wrap: on
line diff
--- a/Lib/sqlite3/test/types.py	Mon Oct 22 16:16:13 2007 +0000
+++ b/Lib/sqlite3/test/types.py	Mon Oct 22 20:24:51 2007 +0000
@@ -76,6 +76,10 @@
 class DeclTypesTests(unittest.TestCase):
     class Foo:
         def __init__(self, _val):
+            if isinstance(_val, str8):
+                # sqlite3 always calls __init__ with a str8 created from a
+                # UTF-8 string when __conform__ was used to store the object.
+                _val = _val.decode('utf8')
             self.val = _val
 
         def __cmp__(self, other):