1
1
from __future__ import division
8
from unittest import TestCase
9
TestCase.uses_mmap = True
9
from unittest import TestCase as BaseTestCase
11
11
add = suites.append
14
class TestCase(BaseTestCase):
16
def failUnlessRaisesRegexp(self, exc, re_, fun, *args, **kwargs):
17
def wrapped(*args, **kwargs):
21
self.failUnless(re.search(re_, str(e)))
23
self.failUnlessRaises(exc, wrapped, *args, **kwargs)
25
# silence deprec warnings about useless renames
26
failUnless = BaseTestCase.assertTrue
27
failIf = BaseTestCase.assertFalse
28
failUnlessEqual = BaseTestCase.assertEqual
29
failUnlessRaises = BaseTestCase.assertRaises
30
failUnlessAlmostEqual = BaseTestCase.assertAlmostEqual
31
failIfEqual = BaseTestCase.assertNotEqual
32
failIfAlmostEqual = BaseTestCase.assertNotAlmostEqual
34
def assertReallyEqual(self, a, b):
35
self.assertEqual(a, b)
36
self.assertEqual(b, a)
37
self.assertTrue(a == b)
38
self.assertTrue(b == a)
39
self.assertFalse(a != b)
40
self.assertFalse(b != a)
41
self.assertEqual(0, cmp(a, b))
42
self.assertEqual(0, cmp(b, a))
44
def assertReallyNotEqual(self, a, b):
45
self.assertNotEqual(a, b)
46
self.assertNotEqual(b, a)
47
self.assertFalse(a == b)
48
self.assertFalse(b == a)
49
self.assertTrue(a != b)
50
self.assertTrue(b != a)
51
self.assertNotEqual(0, cmp(a, b))
52
self.assertNotEqual(0, cmp(b, a))
13
55
for name in glob.glob(os.path.join(os.path.dirname(__file__), "test_*.py")):
14
56
module = "tests." + os.path.basename(name)
15
57
__import__(module[:-3], {}, {}, [])
56
98
result.printErrors()
57
99
return bool(result.failures + result.errors)
59
def unit(run=[], filter_func=None):
102
def unit(run=[], quick=False):
62
use_suites = filter(filter_func, suites)
63
for test in use_suites:
64
if not run or test.__name__ in run:
107
tests = [t for t in suites if not run or t.__name__ in run]
109
# normal run, trace mmap calls
110
orig_mmap = mmap.mmap
112
print "Running tests with real mmap."
114
def new_mmap(*args, **kwargs):
115
if test not in uses_mmap:
116
uses_mmap.append(test)
117
return orig_mmap(*args, **kwargs)
119
failures |= runner.run(test)
120
mmap.mmap = orig_mmap
122
# make sure the above works
124
assert len(uses_mmap) > 1
129
# run mmap using tests with mocked lockf
133
print "Unable to run mocked fcntl.lockf tests."
135
def MockLockF(*args, **kwargs):
138
fcntl.lockf = MockLockF
139
print "Running tests with mocked failing fcntl.lockf."
140
for test in uses_mmap:
65
141
failures |= runner.run(test)
145
class MockMMap(object):
146
def __init__(self, *args, **kwargs):
149
def move(self, dest, src, count):
155
print "Running tests with mocked failing mmap.move."
157
for test in uses_mmap:
158
failures |= runner.run(test)
161
def MockMMap2(*args, **kwargs):
162
raise EnvironmentError
164
mmap.mmap = MockMMap2
165
print "Running tests with mocked failing mmap.mmap."
166
for test in uses_mmap:
167
failures |= runner.run(test)