15
15
import tempfile
16
16
import threading
17
17
import unittest
18
- import uuid
19
18
20
19
from couchdb import client , http
20
+ from couchdb .tests import testutil
21
21
http .CACHE_SIZE = 2 , 3
22
22
23
23
24
- class TempDatabaseMixin (object ):
25
-
26
- temp_dbs = None
27
- _db = None
28
-
29
- def setUp (self ):
30
- uri = os .environ .get ('COUCHDB_URI' , client .DEFAULT_BASE_URL )
31
- self .server = client .Server (uri , full_commit = False )
32
-
33
- def tearDown (self ):
34
- if self .temp_dbs :
35
- for name in self .temp_dbs :
36
- self .server .delete (name )
37
-
38
- def temp_db (self ):
39
- if self .temp_dbs is None :
40
- self .temp_dbs = {}
41
- name = 'couchdb-python/' + uuid .uuid4 ().hex
42
- db = self .server .create (name )
43
- self .temp_dbs [name ] = db
44
- return name , db
45
-
46
- @property
47
- def db (self ):
48
- if self ._db is None :
49
- name , self ._db = self .temp_db ()
50
- return self ._db
51
-
52
-
53
- class ServerTestCase (unittest .TestCase ):
54
-
55
- def setUp (self ):
56
- uri = os .environ .get ('COUCHDB_URI' , client .DEFAULT_BASE_URL )
57
- self .server = client .Server (uri , full_commit = False )
58
-
59
- def tearDown (self ):
60
- try :
61
- self .server .delete ('python-tests' )
62
- except http .ResourceNotFound :
63
- pass
64
- try :
65
- self .server .delete ('python-tests-a' )
66
- except http .ResourceNotFound :
67
- pass
24
+ class ServerTestCase (testutil .TempDatabaseMixin , unittest .TestCase ):
68
25
69
26
def test_init_with_resource (self ):
70
27
sess = http .Session ()
@@ -97,57 +54,57 @@ def test_server_vars(self):
97
54
98
55
def test_get_db_missing (self ):
99
56
self .assertRaises (http .ResourceNotFound ,
100
- lambda : self .server ['python-tests ' ])
57
+ lambda : self .server ['couchdb-python/missing ' ])
101
58
102
59
def test_create_db_conflict (self ):
103
- self .server . create ( 'python-tests' )
60
+ name , db = self .temp_db ( )
104
61
self .assertRaises (http .PreconditionFailed , self .server .create ,
105
- 'python-tests' )
62
+ name )
106
63
107
64
def test_delete_db (self ):
108
- self .server . create ( 'python-tests' )
109
- assert 'python-tests' in self .server
110
- self .server . delete ( 'python-tests' )
111
- assert 'python-tests' not in self .server
65
+ name , db = self .temp_db ( )
66
+ assert name in self .server
67
+ self .del_db ( name )
68
+ assert name not in self .server
112
69
113
70
def test_delete_db_missing (self ):
114
71
self .assertRaises (http .ResourceNotFound , self .server .delete ,
115
- 'python-tests ' )
72
+ 'couchdb-python/missing ' )
116
73
117
74
def test_replicate (self ):
118
- a = self .server .create ('python-tests' )
75
+ aname , a = self .temp_db ()
76
+ bname , b = self .temp_db ()
119
77
id , rev = a .save ({'test' : 'a' })
120
- b = self .server .create ('python-tests-a' )
121
- result = self .server .replicate ('python-tests' , 'python-tests-a' )
78
+ result = self .server .replicate (aname , bname )
122
79
self .assertEquals (result ['ok' ], True )
123
80
self .assertEquals (b [id ]['test' ], 'a' )
124
81
125
82
doc = b [id ]
126
83
doc ['test' ] = 'b'
127
84
b .update ([doc ])
128
- self .server .replicate (client . DEFAULT_BASE_URL + 'python-tests-a' ,
129
- 'python-tests ' )
85
+ self .server .replicate (bname , aname )
86
+ self . assertEquals ( a [ id ][ 'test' ], 'b ' )
130
87
self .assertEquals (b [id ]['test' ], 'b' )
131
88
132
89
def test_replicate_continuous (self ):
133
- self .server . create ( 'python-tests' )
134
- self .server . create ( 'python-tests-a' )
135
- result = self .server .replicate ('python-tests' , 'python-tests-a' , continuous = True )
90
+ aname , a = self .temp_db ( )
91
+ bname , b = self .temp_db ( )
92
+ result = self .server .replicate (aname , bname , continuous = True )
136
93
self .assertEquals (result ['ok' ], True )
137
94
version = tuple (int (i ) for i in self .server .version ().split ('.' )[:2 ])
138
95
if version >= (0 , 10 ):
139
96
self .assertTrue ('_local_id' in result )
140
97
141
98
def test_iter (self ):
142
- self .server . create ( 'python-tests' )
143
- self .server . create ( 'python-tests-a' )
99
+ aname , a = self .temp_db ( )
100
+ bname , b = self .temp_db ( )
144
101
dbs = list (self .server )
145
- self .assertTrue ('python-tests' in dbs )
146
- self .assertTrue ('python-tests-a' in dbs )
102
+ self .assertTrue (aname in dbs )
103
+ self .assertTrue (bname in dbs )
147
104
148
105
def test_len (self ):
149
- self .server . create ( 'python-tests' )
150
- self .server . create ( 'python-tests-a' )
106
+ self .temp_db ( )
107
+ self .temp_db ( )
151
108
self .assertTrue (len (self .server ) >= 2 )
152
109
153
110
def test_uuids (self ):
@@ -157,7 +114,7 @@ def test_uuids(self):
157
114
assert type (ls ) == list and len (ls ) == 10
158
115
159
116
160
- class DatabaseTestCase (TempDatabaseMixin , unittest .TestCase ):
117
+ class DatabaseTestCase (testutil . TempDatabaseMixin , unittest .TestCase ):
161
118
162
119
def test_save_new (self ):
163
120
doc = {'foo' : 'bar' }
@@ -198,7 +155,7 @@ def test_save_existing_batch(self):
198
155
199
156
def test_exists (self ):
200
157
self .assertTrue (self .db )
201
- self .assertFalse (client .Database ('couchdb-python-tests /missing' ))
158
+ self .assertFalse (client .Database ('couchdb-python/missing' ))
202
159
203
160
def test_name (self ):
204
161
# Access name assigned during creation.
@@ -512,7 +469,7 @@ def wakeup():
512
469
break
513
470
514
471
515
- class ViewTestCase (TempDatabaseMixin , unittest .TestCase ):
472
+ class ViewTestCase (testutil . TempDatabaseMixin , unittest .TestCase ):
516
473
517
474
def test_view_multi_get (self ):
518
475
for i in range (1 , 6 ):
0 commit comments