import utils import aiohttp import asyncio class BasicUsage(utils.AergiaUnitTestCase): def test_asyncless(self): def a(): x = 100 while x > 0: x -= 1 self.Aergia.start() a() self.Aergia.stop() samples = self.Aergia.get_samples() self.assertFalse(samples) def test_sequential_tasks(self): delay = 0.2 num_times = 5 async def b(tot, num): await asyncio.sleep(delay) return tot + num async def a(): tot = 0 for i in range(num_times): tot = await b(tot, i) assert tot == 10 self.Aergia.start() asyncio.run(a()) self.Aergia.stop() samples = self.Aergia.get_samples() self.assertFuncContains('b', [self.expected_samples(delay * num_times)], samples) def test_simultaneous_tasks(self): delay = 0.2 async def b(): await asyncio.sleep(delay) async def a(): await asyncio.gather(b(), b(), b()) self.Aergia.start() asyncio.run(a()) self.Aergia.stop() samples = self.Aergia.get_samples() print(self.expected_samples(delay * 3)) self.assertFuncContains('b', [self.expected_samples(delay * 3)], samples)