~pythonregexp2.7/python/issue2636-01+09-02

« back to all changes in this revision

Viewing changes to Lib/bsddb/test/test_compare.py

  • Committer: Jeffrey C. "The TimeHorse" Jacobs
  • Date: 2008-09-22 00:16:16 UTC
  • mfrom: (39022.1.34 Regexp-2.7)
  • Revision ID: darklord@timehorse.com-20080922001616-p1wdip9lfp0zl5cu
Merged in changes from the Atomic Grouping / Possessive Qualifiers branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
from cStringIO import StringIO
8
8
 
9
9
import unittest
10
 
try:
11
 
    # For Pythons w/distutils pybsddb
12
 
    from bsddb3 import db, dbshelve
13
 
except ImportError:
14
 
    # For Python 2.3
15
 
    from bsddb import db, dbshelve
16
 
 
17
 
from test_all import get_new_environment_path, get_new_database_path
18
 
 
19
 
try:
20
 
    from bsddb3 import test_support
21
 
except ImportError:
22
 
    from test import test_support
 
10
 
 
11
from test_all import db, dbshelve, test_support, \
 
12
        get_new_environment_path, get_new_database_path
 
13
 
23
14
 
24
15
lexical_cmp = cmp
25
16
 
37
28
class ComparatorTests (unittest.TestCase):
38
29
    def comparator_test_helper (self, comparator, expected_data):
39
30
        data = expected_data[:]
40
 
        data.sort (comparator)
 
31
 
 
32
        import sys
 
33
        if sys.version_info[0] < 3 :
 
34
            if sys.version_info[:3] < (2, 4, 0):
 
35
                data.sort(comparator)
 
36
            else :
 
37
                data.sort(cmp=comparator)
 
38
        else :  # Insertion Sort. Please, improve
 
39
            data2 = []
 
40
            for i in data :
 
41
                for j, k in enumerate(data2) :
 
42
                    r = comparator(k, i)
 
43
                    if r == 1 :
 
44
                        data2.insert(j, i)
 
45
                        break
 
46
                else :
 
47
                    data2.append(i)
 
48
            data = data2
 
49
 
41
50
        self.failUnless (data == expected_data,
42
51
                         "comparator `%s' is not right: %s vs. %s"
43
52
                         % (comparator, expected_data, data))
240
249
    res = unittest.TestSuite ()
241
250
 
242
251
    res.addTest (unittest.makeSuite (ComparatorTests))
243
 
    if db.version () >= (3, 3, 11):
244
 
        res.addTest (unittest.makeSuite (BtreeExceptionsTestCase))
245
 
        res.addTest (unittest.makeSuite (BtreeKeyCompareTestCase))
 
252
    res.addTest (unittest.makeSuite (BtreeExceptionsTestCase))
 
253
    res.addTest (unittest.makeSuite (BtreeKeyCompareTestCase))
246
254
    return res
247
255
 
248
256
if __name__ == '__main__':