blob: f970c67a132c029544efa615a9c5e45f34440c9c [file] [log] [blame]
# Copyright 2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
import functools
import random
from portage import os
from portage.tests import TestCase
from portage.util._eventloop.global_event_loop import global_event_loop
class CallSoonFifoTestCase(TestCase):
def testCallSoonFifo(self):
event_loop = global_event_loop()
inputs = [random.random() for index in range(10)]
outputs = []
finished = event_loop.create_future()
def add_output(value):
outputs.append(value)
if len(outputs) == len(inputs):
finished.set_result(True)
for value in inputs:
event_loop.call_soon(functools.partial(add_output, value))
event_loop.run_until_complete(finished)
self.assertEqual(inputs, outputs)