Create a test case for the poll loop which uses the loop to read data from a
authorZac Medico <zmedico@gentoo.org>
Sat, 12 Jul 2008 06:22:26 +0000 (06:22 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 12 Jul 2008 06:22:26 +0000 (06:22 -0000)
commit31b18e72b3ed4077f31be583d9a83ad2de53df29
tree29cb7823c5fc4fce43d29b5cb0e438f0f95e30ed
parentf9dc49ffd4486777e96b2e045c0b4523c479fef4
Create a test case for the poll loop which uses the loop to read data from a
pipe and assert that the data written to the pipe is identical to the data
read from the pipe. In order to implement this test, several useful classes
have been added:

 * PipeReader

     Reads output from one or more files and saves it in memory,
     for retrieval via the getvalue() method. This is driven by
     the scheduler's poll() loop, so it runs entirely within the
     current process.

 * QueueScheduler

     Add instances of SequentialTaskQueue and then call run().
     The run() method returns when no tasks remain.

 * TaskScheduler

     A simple way to handle scheduling of AsynchrousTask instances. Simply
     add tasks and call run(). The run() method returns when no tasks remain.

svn path=/main/trunk/; revision=11022
pym/_emerge/__init__.py
pym/portage/tests/process/__init__.py [new file with mode: 0644]
pym/portage/tests/process/__test__ [new file with mode: 0644]
pym/portage/tests/process/test_poll.py [new file with mode: 0644]