Fix TestGreenThreadSafeIterator test
Change-Id: Ic121ae5c99b4e5c5e3d1efc432b55b762d50f3fb Closes-Bug: 1190244
This commit is contained in:
parent
6cdf784e2f
commit
a26b705d39
@ -2245,13 +2245,14 @@ class UnsafeXrange(object):
|
||||
self.current = 0
|
||||
self.concurrent_calls = 0
|
||||
self.upper_bound = upper_bound
|
||||
self.concurrent_call = False
|
||||
|
||||
def __iter__(self):
|
||||
return self
|
||||
|
||||
def next(self):
|
||||
if self.concurrent_calls > 0:
|
||||
raise ValueError("concurrent access is bad, mmmkay? (%r)")
|
||||
self.concurrent_call = True
|
||||
|
||||
self.concurrent_calls += 1
|
||||
try:
|
||||
@ -2409,19 +2410,20 @@ class TestGreenthreadSafeIterator(unittest.TestCase):
|
||||
for _ in xrange(2):
|
||||
pile.spawn(self.increment, iterable)
|
||||
|
||||
try:
|
||||
sorted([resp for resp in pile])
|
||||
self.assertTrue(False, "test setup is insufficiently crazy")
|
||||
except ValueError:
|
||||
pass
|
||||
sorted([resp for resp in pile])
|
||||
self.assertTrue(
|
||||
iterable.concurrent_call, 'test setup is insufficiently crazy')
|
||||
|
||||
def test_access_is_serialized(self):
|
||||
pile = eventlet.GreenPile(2)
|
||||
iterable = utils.GreenthreadSafeIterator(UnsafeXrange(10))
|
||||
unsafe_iterable = UnsafeXrange(10)
|
||||
iterable = utils.GreenthreadSafeIterator(unsafe_iterable)
|
||||
for _ in xrange(2):
|
||||
pile.spawn(self.increment, iterable)
|
||||
response = sorted(sum([resp for resp in pile], []))
|
||||
self.assertEquals(range(1, 11), response)
|
||||
self.assertTrue(
|
||||
not unsafe_iterable.concurrent_call, 'concurrent call occurred')
|
||||
|
||||
|
||||
class TestStatsdLoggingDelegation(unittest.TestCase):
|
||||
|
Loading…
x
Reference in New Issue
Block a user