Skip to content

Commit e7c540c

Browse files
committed
Merge pull request basho#170 from evanmcc/pevm-unittest-determinism
Unit test enhancements
2 parents 145583d + 8dd33e2 commit e7c540c

File tree

7 files changed

+252
-195
lines changed

7 files changed

+252
-195
lines changed

riak/client/operations.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def set_bucket_props(self, transport, bucket, props):
8989
"""
9090
return transport.set_bucket_props(bucket, props)
9191

92-
@retryableHttpOnly
92+
@retryable
9393
def clear_bucket_props(self, transport, bucket):
9494
"""
9595
Resets bucket properties for the given bucket.

riak/tests/test_2i.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def test_secondary_index_store(self):
2828
return True
2929

3030
# Create a new object with indexes...
31-
bucket = self.client.bucket('indexbucket')
31+
bucket = self.client.bucket(self.bucket_name)
3232
rand = self.randint()
3333
obj = bucket.new('mykey1', rand)
3434
obj.add_index('field1_bin', 'val1a')
@@ -103,10 +103,10 @@ def test_set_indexes(self):
103103
if not self.is_2i_supported():
104104
return True
105105

106-
bucket = self.client.bucket('indexbucket')
106+
bucket = self.client.bucket(self.bucket_name)
107107
foo = bucket.new('foo', 1)
108108
foo.set_indexes((('field1_bin', 'test'), ('field2_int', 1337))).store()
109-
result = self.client.index('indexbucket', 'field2_int', 1337).run()
109+
result = self.client.index(self.bucket_name, 'field2_int', 1337).run()
110110
self.assertEqual(1, len(result))
111111
self.assertEqual('foo', result[0].key)
112112

@@ -119,7 +119,7 @@ def test_remove_indexes(self):
119119
if not self.is_2i_supported():
120120
return True
121121

122-
bucket = self.client.bucket('indexbucket')
122+
bucket = self.client.bucket(self.bucket_name)
123123
bar = bucket.new('bar', 1).add_index('bar_int', 1)\
124124
.add_index('bar_int', 2).add_index('baz_bin', 'baz').store()
125125
result = bucket.get_index('bar_int', 1)
@@ -172,7 +172,7 @@ def test_secondary_index_query(self):
172172
if not self.is_2i_supported():
173173
return True
174174

175-
bucket = self.client.bucket('indexbucket')
175+
bucket = self.client.bucket(self.bucket_name)
176176

177177
bucket.\
178178
new('mykey1', 'data1').\
@@ -228,7 +228,7 @@ def test_secondary_index_invalid_name(self):
228228
if not self.is_2i_supported():
229229
return True
230230

231-
bucket = self.client.bucket('indexbucket')
231+
bucket = self.client.bucket(self.bucket_name)
232232

233233
with self.assertRaises(RiakError):
234234
bucket.new('k', 'a').add_index('field1', 'value1')

riak/tests/test_all.py

Lines changed: 49 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,34 @@
4848
test_server.prepare()
4949
test_server.start()
5050

51+
testrun_search_bucket = None
52+
testrun_props_bucket = None
53+
testrun_sibs_bucket = None
54+
55+
def setUpModule():
56+
global testrun_search_bucket, testrun_props_bucket, \
57+
testrun_sibs_bucket
58+
59+
c = RiakClient(transport='http', http_port=HTTP_PORT)
60+
61+
testrun_props_bucket = 'propsbucket'
62+
testrun_sibs_bucket = 'sibsbucket'
63+
c.bucket(testrun_sibs_bucket).allow_mult = True
64+
65+
if not int(os.environ.get('SKIP_SEARCH', '0')):
66+
testrun_search_bucket = 'searchbucket'
67+
b = c.bucket(testrun_search_bucket)
68+
b.enable_search()
69+
70+
def tearDownModule():
71+
c = RiakClient(transport='http', http_port=HTTP_PORT)
72+
if not int(os.environ.get('SKIP_SEARCH', '0')):
73+
b = c.bucket(testrun_search_bucket)
74+
b.clear_properties()
75+
b = c.bucket(testrun_sibs_bucket)
76+
b.clear_properties()
77+
b = c.bucket(testrun_props_bucket)
78+
b.clear_properties()
5179

5280
class BaseTestCase(object):
5381

@@ -59,6 +87,13 @@ class BaseTestCase(object):
5987
def randint():
6088
return random.randint(1, 999999)
6189

90+
@staticmethod
91+
def randname(length=12):
92+
out = ''
93+
for i in range(length):
94+
out += chr(random.randint(ord('a'), ord('z')))
95+
return out
96+
6297
def create_client(self, host=None, http_port=None, pb_port=None,
6398
protocol=None, **client_args):
6499
host = host or self.host or HOST
@@ -71,14 +106,13 @@ def create_client(self, host=None, http_port=None, pb_port=None,
71106
pb_port=pb_port, **client_args)
72107

73108
def setUp(self):
74-
self.client = self.create_client()
109+
self.bucket_name = self.randname()
110+
self.key_name = self.randname()
111+
self.search_bucket = testrun_search_bucket
112+
self.sibs_bucket = testrun_sibs_bucket
113+
self.props_bucket = testrun_props_bucket
75114

76-
# make sure these are not left over from a previous, failed run
77-
bucket = self.client.bucket('bucket')
78-
o = bucket.get('nonexistent_key_json')
79-
o.delete()
80-
o = bucket.get('nonexistent_key_binary')
81-
o.delete()
115+
self.client = self.create_client()
82116

83117

84118
class RiakPbcTransportTestCase(BasicKVTests,
@@ -100,6 +134,8 @@ def setUp(self):
100134
self.host = PB_HOST
101135
self.pb_port = PB_PORT
102136
self.protocol = 'pbc'
137+
self.http_client = self.create_client(HTTP_HOST,
138+
http_port=HTTP_PORT)
103139
super(RiakPbcTransportTestCase, self).setUp()
104140

105141
def test_uses_client_id_if_given(self):
@@ -109,12 +145,12 @@ def test_uses_client_id_if_given(self):
109145

110146
def test_bucket_search_enabled(self):
111147
with self.assertRaises(NotImplementedError):
112-
bucket = self.client.bucket("unsearch_bucket")
148+
bucket = self.client.bucket(self.bucket_name)
113149
bucket.search_enabled()
114150

115151
def test_enable_search_commit_hook(self):
116152
with self.assertRaises(NotImplementedError):
117-
bucket = self.client.bucket("search_bucket")
153+
bucket = self.client.bucket(self.bucket_name)
118154
bucket.enable_search()
119155

120156

@@ -140,12 +176,12 @@ def setUp(self):
140176
super(RiakHttpTransportTestCase, self).setUp()
141177

142178
def test_no_returnbody(self):
143-
bucket = self.client.bucket("bucket")
144-
o = bucket.new("foo", "bar").store(return_body=False)
179+
bucket = self.client.bucket(self.bucket_name)
180+
o = bucket.new(self.key_name, "bar").store(return_body=False)
145181
self.assertEqual(o.vclock, None)
146182

147183
def test_too_many_link_headers_shouldnt_break_http(self):
148-
bucket = self.client.bucket("bucket")
184+
bucket = self.client.bucket(self.bucket_name)
149185
o = bucket.new("lots_of_links", "My god, it's full of links!")
150186
for i in range(0, 400):
151187
link = RiakLink("other", "key%d" % i, "next")
@@ -156,7 +192,7 @@ def test_too_many_link_headers_shouldnt_break_http(self):
156192
self.assertEqual(len(stored_object.get_links()), 400)
157193

158194
def test_clear_bucket_properties(self):
159-
bucket = self.client.bucket('bucket')
195+
bucket = self.client.bucket(self.props_bucket)
160196
bucket.allow_mult = True
161197
self.assertTrue(bucket.allow_mult)
162198
bucket.n_val = 1

0 commit comments

Comments
 (0)