blob: 138a0af57ea2f48082addc7b8db34509950cf61c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
from ._fixtures import _GenericBackendTest, _GenericMutexTest
from . import eq_, assert_raises_message
from unittest import TestCase
from threading import Thread
import time
import os
from nose import SkipTest
try:
import fcntl
except ImportError:
raise SkipTest("fcntl not available")
class DBMBackendTest(_GenericBackendTest):
backend = "dogpile.cache.dbm"
config_args = {
"arguments":{
"filename":"test.dbm"
}
}
class DBMBackendNoLockTest(_GenericBackendTest):
backend = "dogpile.cache.dbm"
config_args = {
"arguments":{
"filename":"test.dbm",
"rw_lockfile":False,
"dogpile_lockfile":False,
}
}
class DBMMutexTest(_GenericMutexTest):
backend = "dogpile.cache.dbm"
config_args = {
"arguments":{
"filename":"test.dbm"
}
}
def test_release_assertion_thread(self):
backend = self._backend()
m1 = backend.get_mutex("foo")
assert_raises_message(
AssertionError,
"this thread didn't do the acquire",
m1.release
)
def test_release_assertion_key(self):
backend = self._backend()
m1 = backend.get_mutex("foo")
m2 = backend.get_mutex("bar")
m1.acquire()
try:
assert_raises_message(
AssertionError,
"No acquire held for key 'bar'",
m2.release
)
finally:
m1.release()
def teardown():
for fname in os.listdir(os.curdir):
if fname.startswith("test.dbm"):
os.unlink(fname)
|