[Zope-Checkins] CVS: Zope/lib/python/BTrees/tests - testBTreesUnicode.py:1.7

Tim Peters tim.one@comcast.net
Sat, 8 Jun 2002 15:40:14 -0400


Update of /cvs-repository/Zope/lib/python/BTrees/tests
In directory cvs.zope.org:/tmp/cvs-serv5850

Modified Files:
	testBTreesUnicode.py 
Log Message:
Backporting this from the Zope3 branch.  The version on the trunk was
way out of date (prints stuff and asserts instead of raising unittest
failures).


=== Zope/lib/python/BTrees/tests/testBTreesUnicode.py 1.6 => 1.7 ===
 # Copyright (c) 2001, 2002 Zope Corporation and Contributors.
 # All Rights Reserved.
-# 
+#
 # This software is subject to the provisions of the Zope Public License,
 # Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
 # FOR A PARTICULAR PURPOSE
-# 
+#
 ##############################################################################
 
 __version__ = '$Id$'
@@ -17,61 +17,56 @@
 import unittest,types
 from BTrees.OOBTree import OOBTree
 
-
-# When a OOBtree contains unicode strings as keys,
+# When an OOBtree contains unicode strings as keys,
 # it is neccessary accessing non-unicode strings are
 # either ascii strings or encoded as unicoded using the
 # corresponding encoding
 
-
 encoding = 'ISO-8859-1'
 
 class TestBTreesUnicode(unittest.TestCase):
     """ test unicode"""
 
     def setUp(self):
-        """ setup an OOBTree with some unicode strings """
+        """setup an OOBTree with some unicode strings"""
 
-        self.s = unicode('dreit\xe4gigen','latin1')
+        self.s = unicode('dreit\xe4gigen', 'latin1')
 
-        self.data = [('alien', 284708388), 
-                ('k\xf6nnten', 284708389),
-                ('fox', 284708387), 
-                ('future', 284708388), 
-                ('quick', 284708387), 
-                ('zerst\xf6rt', 284708389), 
-                (unicode('dreit\xe4gigen','latin1'), 284708391)
-                ]
+        self.data = [('alien', 1),
+                     ('k\xf6nnten', 2),
+                     ('fox', 3),
+                     ('future', 4),
+                     ('quick', 5),
+                     ('zerst\xf6rt', 6),
+                     (unicode('dreit\xe4gigen','latin1'), 7),
+                    ]
 
         self.tree = OOBTree()
-        for k,v in self.data:
-            if isinstance(k,types.StringType):
-                self.tree[unicode(k,'latin1')]=v
-            else:
-                self.tree[k]=v
-
-
-
-    def test1(self):
-        """ check every item of the tree """
-
         for k, v in self.data:
-            if isinstance(k,types.StringType):
-                key = unicode(k,encoding)
-            else:
-                key = k
-
-            if self.tree[key]!=v:
-                print "fehler"
-
-
-    def test2(self):
-        """ try to access unicode keys in tree"""
-
-        assert self.data[-1][0]== self.s
-        assert self.tree[self.data[-1][0]]== self.data[-1][1]
-        assert self.tree[self.s]== self.data[-1][1],''
+            if isinstance(k, types.StringType):
+                k = unicode(k, 'latin1')
+            self.tree[k] = v
 
+    def testAllKeys(self):
+        # check every item of the tree
+        for k, v in self.data:
+            if isinstance(k, types.StringType):
+                k = unicode(k, encoding)
+            self.assert_(self.tree.has_key(k))
+            self.assertEqual(self.tree[k], v)
+
+    def testUnicodeKeys(self):
+        # try to access unicode keys in tree
+        k, v = self.data[-1]
+        self.assertEqual(k, self.s)
+        self.assertEqual(self.tree[k], v)
+        self.assertEqual(self.tree[self.s], v)
+
+    def testAsciiKeys(self):
+        # try to access some "plain ASCII" keys in the tree
+        for k, v in self.data[0], self.data[2]:
+            self.assert_(isinstance(k, types.StringType))
+            self.assertEqual(self.tree[k], v)
 
 def test_suite():
     return unittest.makeSuite(TestBTreesUnicode)
@@ -81,4 +76,3 @@
 
 if __name__ == '__main__':
     main()
-