blob: 76b727b09e3d888119895700f3d274217d19e5d4 [file] [log] [blame]
# Copyright 2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from portage.tests import TestCase
from portage.util._eventloop.global_event_loop import global_event_loop
class FutureDoneCallbackTestCase(TestCase):
def testFutureDoneCallback(self):
event_loop = global_event_loop()
def done_callback(finished):
done_callback_called.set_result(True)
done_callback_called = event_loop.create_future()
finished = event_loop.create_future()
finished.add_done_callback(done_callback)
event_loop.call_soon(finished.set_result, True)
event_loop.run_until_complete(done_callback_called)
def done_callback2(finished):
done_callback2_called.set_result(True)
done_callback_called = event_loop.create_future()
done_callback2_called = event_loop.create_future()
finished = event_loop.create_future()
finished.add_done_callback(done_callback)
finished.add_done_callback(done_callback2)
finished.remove_done_callback(done_callback)
event_loop.call_soon(finished.set_result, True)
event_loop.run_until_complete(done_callback2_called)
self.assertFalse(done_callback_called.done())