22TestCases for python DB Btree key comparison function.
33"""
44
5+ import shutil
56import sys , os , re
67from io import StringIO
7-
8- from . import test_all
8+ import tempfile
99
1010import unittest
1111try :
1818lexical_cmp = cmp
1919
2020def lowercase_cmp (left , right ):
21- return cmp (left .lower (), right .lower ())
21+ return cmp (str (left , encoding = 'ascii' ).lower (),
22+ str (right , encoding = 'ascii' ).lower ())
2223
2324def make_reverse_comparator (cmp ):
2425 def reverse (left , right , delegate = cmp ):
2526 return - delegate (left , right )
2627 return reverse
2728
28- _expected_lexical_test_data = ['' , 'CCCP' , 'a' , 'aaa' , 'b' , 'c' , 'cccce' , 'ccccf' ]
29- _expected_lowercase_test_data = ['' , 'a' , 'aaa' , 'b' , 'c' , 'CC' , 'cccce' , 'ccccf' , 'CCCP' ]
29+ _expected_lexical_test_data = [bytes (_ ) for _ in
30+ ('' , 'CCCP' , 'a' , 'aaa' , 'b' , 'c' , 'cccce' , 'ccccf' )]
31+ _expected_lowercase_test_data = [bytes (_ ) for _ in
32+ ('' , 'a' , 'aaa' , 'b' , 'c' , 'CC' , 'cccce' , 'ccccf' , 'CCCP' )]
3033
3134class ComparatorTests (unittest .TestCase ):
3235 def comparator_test_helper (self , comparator , expected_data ):
@@ -52,15 +55,10 @@ class AbstractBtreeKeyCompareTestCase (unittest.TestCase):
5255
5356 def setUp (self ):
5457 self .filename = self .__class__ .__name__ + '.db'
55- homeDir = os .path .join (os .path .dirname (sys .argv [0 ]), 'db_home' )
56- self .homeDir = homeDir
57- try :
58- os .mkdir (homeDir )
59- except os .error :
60- pass
58+ self .homeDir = tempfile .mkdtemp ()
6159
6260 env = db .DBEnv ()
63- env .open (homeDir ,
61+ env .open (self . homeDir ,
6462 db .DB_CREATE | db .DB_INIT_MPOOL
6563 | db .DB_INIT_LOCK | db .DB_THREAD )
6664 self .env = env
@@ -70,8 +68,7 @@ def tearDown (self):
7068 if self .env is not None :
7169 self .env .close ()
7270 self .env = None
73- import glob
74- map (os .remove , glob .glob (os .path .join (self .homeDir , '*' )))
71+ shutil .rmtree (self .homeDir )
7572
7673 def addDataToDB (self , data ):
7774 i = 0
@@ -110,7 +107,7 @@ def check_results (self, expected):
110107 self .failUnless (index < len (expected ),
111108 "to many values returned from cursor" )
112109 self .failUnless (expected [index ] == key ,
113- "expected value `%s' at %d but got `%s' "
110+ "expected value %r at %d but got %r "
114111 % (expected [index ], index , key ))
115112 index = index + 1
116113 rec = curs .next ()
@@ -140,10 +137,10 @@ def test_compare_function_useless (self):
140137 def socialist_comparator (l , r ):
141138 return 0
142139 self .createDB (socialist_comparator )
143- self .addDataToDB (['b' , 'a' , 'd' ])
140+ self .addDataToDB ([b 'b' , b 'a' , b 'd' ])
144141 # all things being equal the first key will be the only key
145142 # in the database... (with the last key's value fwiw)
146- self .finishTest (['b' ])
143+ self .finishTest ([b 'b' ])
147144
148145
149146class BtreeExceptionsTestCase (AbstractBtreeKeyCompareTestCase ):
@@ -247,4 +244,4 @@ def test_suite ():
247244 return res
248245
249246if __name__ == '__main__' :
250- unittest .main (defaultTest = 'suite ' )
247+ unittest .main (defaultTest = 'test_suite ' )
0 commit comments