[Zope-Checkins] CVS: Zope3/lib/python/Persistence/BTrees/tests - testBTreesUnicode.py:1.1.2.5

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


Update of /cvs-repository/Zope3/lib/python/Persistence/BTrees/tests
In directory cvs.zope.org:/tmp/cvs-serv5664/tests

Modified Files:
      Tag: Zope-3x-branch
	testBTreesUnicode.py 
Log Message:
Code cleanup (simplify, give tests meaningful names, add an ASCII-key
test).


=== Zope3/lib/python/Persistence/BTrees/tests/testBTreesUnicode.py 1.1.2.4 => 1.1.2.5 ===
 # 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,7 +17,7 @@
 import unittest
 from Persistence.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
@@ -28,44 +28,45 @@
     """ 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
+                k = unicode(k, 'latin1')
+            self.tree[k] = v
 
-    def test1(self):
+    def testAllKeys(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
-
-            self.assertEqual(self.tree[key], v)
+                k = unicode(k, encoding)
+            self.assert_(self.tree.has_key(k))
+            self.assertEqual(self.tree[k], v)
 
-    def test2(self):
+    def testUnicodeKeys(self):
         # try to access unicode keys in tree
-
-        self.assertEqual(self.data[-1][0], self.s)
-        self.assertEqual(self.tree[self.data[-1][0]], self.data[-1][1])
-        self.assertEqual(self.tree[self.s], self.data[-1][1])
-
+        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)
@@ -75,4 +76,3 @@
 
 if __name__ == '__main__':
     main()
-