~ubuntu-branches/debian/stretch/electrum/stretch

« back to all changes in this revision

Viewing changes to gui/kivy/tools/.buildozer/android/platform/python-for-android/dist/kivy/python-install/lib/python2.7/bsddb/test/test_compat.py

  • Committer: Package Import Robot
  • Author(s): Tristan Seligmann
  • Date: 2016-04-04 03:02:39 UTC
  • mfrom: (1.1.10)
  • Revision ID: package-import@ubuntu.com-20160404030239-0szgkio8yryjv7c9
Tags: 2.6.3-1
* New upstream release.
  - Drop backported install-wizard-connect.patch.
* Add Suggests: python-zbar and update the installation hint to suggest
  apt-get instead of pip (closes: #819517).
* Bump Standards-Version to 3.9.7 (no changes).
* Update Vcs-* links.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"""
 
2
Test cases adapted from the test_bsddb.py module in Python's
 
3
regression test suite.
 
4
"""
 
5
 
 
6
import os, string
 
7
import unittest
 
8
 
 
9
from test_all import db, hashopen, btopen, rnopen, verbose, \
 
10
        get_new_database_path
 
11
 
 
12
 
 
13
class CompatibilityTestCase(unittest.TestCase):
 
14
    def setUp(self):
 
15
        self.filename = get_new_database_path()
 
16
 
 
17
    def tearDown(self):
 
18
        try:
 
19
            os.remove(self.filename)
 
20
        except os.error:
 
21
            pass
 
22
 
 
23
 
 
24
    def test01_btopen(self):
 
25
        self.do_bthash_test(btopen, 'btopen')
 
26
 
 
27
    def test02_hashopen(self):
 
28
        self.do_bthash_test(hashopen, 'hashopen')
 
29
 
 
30
    def test03_rnopen(self):
 
31
        data = "The quick brown fox jumped over the lazy dog.".split()
 
32
        if verbose:
 
33
            print "\nTesting: rnopen"
 
34
 
 
35
        f = rnopen(self.filename, 'c')
 
36
        for x in range(len(data)):
 
37
            f[x+1] = data[x]
 
38
 
 
39
        getTest = (f[1], f[2], f[3])
 
40
        if verbose:
 
41
            print '%s %s %s' % getTest
 
42
 
 
43
        self.assertEqual(getTest[1], 'quick', 'data mismatch!')
 
44
 
 
45
        rv = f.set_location(3)
 
46
        if rv != (3, 'brown'):
 
47
            self.fail('recno database set_location failed: '+repr(rv))
 
48
 
 
49
        f[25] = 'twenty-five'
 
50
        f.close()
 
51
        del f
 
52
 
 
53
        f = rnopen(self.filename, 'w')
 
54
        f[20] = 'twenty'
 
55
 
 
56
        def noRec(f):
 
57
            rec = f[15]
 
58
        self.assertRaises(KeyError, noRec, f)
 
59
 
 
60
        def badKey(f):
 
61
            rec = f['a string']
 
62
        self.assertRaises(TypeError, badKey, f)
 
63
 
 
64
        del f[3]
 
65
 
 
66
        rec = f.first()
 
67
        while rec:
 
68
            if verbose:
 
69
                print rec
 
70
            try:
 
71
                rec = f.next()
 
72
            except KeyError:
 
73
                break
 
74
 
 
75
        f.close()
 
76
 
 
77
 
 
78
    def test04_n_flag(self):
 
79
        f = hashopen(self.filename, 'n')
 
80
        f.close()
 
81
 
 
82
 
 
83
    def do_bthash_test(self, factory, what):
 
84
        if verbose:
 
85
            print '\nTesting: ', what
 
86
 
 
87
        f = factory(self.filename, 'c')
 
88
        if verbose:
 
89
            print 'creation...'
 
90
 
 
91
        # truth test
 
92
        if f:
 
93
            if verbose: print "truth test: true"
 
94
        else:
 
95
            if verbose: print "truth test: false"
 
96
 
 
97
        f['0'] = ''
 
98
        f['a'] = 'Guido'
 
99
        f['b'] = 'van'
 
100
        f['c'] = 'Rossum'
 
101
        f['d'] = 'invented'
 
102
        # 'e' intentionally left out
 
103
        f['f'] = 'Python'
 
104
        if verbose:
 
105
            print '%s %s %s' % (f['a'], f['b'], f['c'])
 
106
 
 
107
        if verbose:
 
108
            print 'key ordering...'
 
109
        start = f.set_location(f.first()[0])
 
110
        if start != ('0', ''):
 
111
            self.fail("incorrect first() result: "+repr(start))
 
112
        while 1:
 
113
            try:
 
114
                rec = f.next()
 
115
            except KeyError:
 
116
                self.assertEqual(rec, f.last(), 'Error, last <> last!')
 
117
                f.previous()
 
118
                break
 
119
            if verbose:
 
120
                print rec
 
121
 
 
122
        self.assertTrue(f.has_key('f'), 'Error, missing key!')
 
123
 
 
124
        # test that set_location() returns the next nearest key, value
 
125
        # on btree databases and raises KeyError on others.
 
126
        if factory == btopen:
 
127
            e = f.set_location('e')
 
128
            if e != ('f', 'Python'):
 
129
                self.fail('wrong key,value returned: '+repr(e))
 
130
        else:
 
131
            try:
 
132
                e = f.set_location('e')
 
133
            except KeyError:
 
134
                pass
 
135
            else:
 
136
                self.fail("set_location on non-existent key did not raise KeyError")
 
137
 
 
138
        f.sync()
 
139
        f.close()
 
140
        # truth test
 
141
        try:
 
142
            if f:
 
143
                if verbose: print "truth test: true"
 
144
            else:
 
145
                if verbose: print "truth test: false"
 
146
        except db.DBError:
 
147
            pass
 
148
        else:
 
149
            self.fail("Exception expected")
 
150
 
 
151
        del f
 
152
 
 
153
        if verbose:
 
154
            print 'modification...'
 
155
        f = factory(self.filename, 'w')
 
156
        f['d'] = 'discovered'
 
157
 
 
158
        if verbose:
 
159
            print 'access...'
 
160
        for key in f.keys():
 
161
            word = f[key]
 
162
            if verbose:
 
163
                print word
 
164
 
 
165
        def noRec(f):
 
166
            rec = f['no such key']
 
167
        self.assertRaises(KeyError, noRec, f)
 
168
 
 
169
        def badKey(f):
 
170
            rec = f[15]
 
171
        self.assertRaises(TypeError, badKey, f)
 
172
 
 
173
        f.close()
 
174
 
 
175
 
 
176
#----------------------------------------------------------------------
 
177
 
 
178
 
 
179
def test_suite():
 
180
    return unittest.makeSuite(CompatibilityTestCase)
 
181
 
 
182
 
 
183
if __name__ == '__main__':
 
184
    unittest.main(defaultTest='test_suite')