add locking cases scenarios

This commit is contained in:
Victor Shyba 2019-05-08 23:01:18 -03:00
parent 2e09d2adfa
commit 77c69f661d

View file

@ -17,10 +17,10 @@ class MockAsyncGen:
return self return self
async def __anext__(self): async def __anext__(self):
await asyncio.sleep(self.delay, loop=self.loop)
if self.count > self.stop_cnt - 1: if self.count > self.stop_cnt - 1:
raise StopAsyncIteration() raise StopAsyncIteration()
self.count += 1 self.count += 1
await asyncio.sleep(self.delay, loop=self.loop)
return self.result return self.result
async def aclose(self): async def aclose(self):
@ -48,6 +48,18 @@ class TestAsyncGeneratorJunction(AsyncioTestCase):
self.assertEqual(fast_gen.called_close, True) self.assertEqual(fast_gen.called_close, True)
self.assertEqual(slow_gen.called_close, True) self.assertEqual(slow_gen.called_close, True)
async def test_nothing_to_yield(self):
async def __nothing():
for _ in []:
yield self.fail("nada")
await self._test_junction([], __nothing())
async def test_fast_iteratiors(self):
async def __gotta_go_fast():
for _ in range(10):
yield 0
await self._test_junction([0]*40, __gotta_go_fast(), __gotta_go_fast(), __gotta_go_fast(), __gotta_go_fast())
@unittest.SkipTest @unittest.SkipTest
async def test_one_stopped_first(self): async def test_one_stopped_first(self):
expected_order = [1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2] expected_order = [1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2]