| Index: third_party/pexpect/tests/test_filedescriptor.py
 | 
| diff --git a/third_party/pexpect/tests/test_filedescriptor.py b/third_party/pexpect/tests/test_filedescriptor.py
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..d9164e1d50b715c2331814fbfb2bc7a3e8a492df
 | 
| --- /dev/null
 | 
| +++ b/third_party/pexpect/tests/test_filedescriptor.py
 | 
| @@ -0,0 +1,72 @@
 | 
| +#!/usr/bin/env python
 | 
| +'''
 | 
| +PEXPECT LICENSE
 | 
| +
 | 
| +    This license is approved by the OSI and FSF as GPL-compatible.
 | 
| +        http://opensource.org/licenses/isc-license.txt
 | 
| +
 | 
| +    Copyright (c) 2012, Noah Spurrier <noah@noah.org>
 | 
| +    PERMISSION TO USE, COPY, MODIFY, AND/OR DISTRIBUTE THIS SOFTWARE FOR ANY
 | 
| +    PURPOSE WITH OR WITHOUT FEE IS HEREBY GRANTED, PROVIDED THAT THE ABOVE
 | 
| +    COPYRIGHT NOTICE AND THIS PERMISSION NOTICE APPEAR IN ALL COPIES.
 | 
| +    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 | 
| +    WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 | 
| +    MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 | 
| +    ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
| +    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 | 
| +    ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 | 
| +    OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 | 
| +
 | 
| +'''
 | 
| +import pexpect
 | 
| +from pexpect import fdpexpect
 | 
| +import unittest
 | 
| +from . import PexpectTestCase
 | 
| +import os
 | 
| +
 | 
| +class ExpectTestCase(PexpectTestCase.PexpectTestCase):
 | 
| +    def setUp(self):
 | 
| +        print(self.id())
 | 
| +        PexpectTestCase.PexpectTestCase.setUp(self)
 | 
| +
 | 
| +    def test_fd (self):
 | 
| +        fd = os.open ('TESTDATA.txt', os.O_RDONLY)
 | 
| +        s = fdpexpect.fdspawn (fd)
 | 
| +        s.expect(b'This is the end of test data:')
 | 
| +        s.expect(pexpect.EOF)
 | 
| +        self.assertEqual(s.before, b' END\n')
 | 
| +
 | 
| +    def test_maxread (self):
 | 
| +        fd = os.open ('TESTDATA.txt', os.O_RDONLY)
 | 
| +        s = fdpexpect.fdspawn (fd)
 | 
| +        s.maxread = 100
 | 
| +        s.expect('2')
 | 
| +        s.expect ('This is the end of test data:')
 | 
| +        s.expect (pexpect.EOF)
 | 
| +        self.assertEqual(s.before, b' END\n')
 | 
| +
 | 
| +    def test_fd_isalive (self):
 | 
| +        fd = os.open ('TESTDATA.txt', os.O_RDONLY)
 | 
| +        s = fdpexpect.fdspawn(fd)
 | 
| +        assert s.isalive()
 | 
| +        os.close(fd)
 | 
| +        assert not s.isalive(), "Should not be alive after close()"
 | 
| +
 | 
| +    def test_fd_isatty (self):
 | 
| +        fd = os.open ('TESTDATA.txt', os.O_RDONLY)
 | 
| +        s = fdpexpect.fdspawn (fd)
 | 
| +        assert not s.isatty()
 | 
| +        s.close()
 | 
| +
 | 
| +    def test_fileobj(self):
 | 
| +        f = open('TESTDATA.txt', 'r')
 | 
| +        s = fdpexpect.fdspawn(f)  # Should get the fileno from the file handle
 | 
| +        s.expect('2')
 | 
| +        s.close()
 | 
| +        assert not s.isalive()
 | 
| +        s.close()  # Smoketest - should be able to call this again
 | 
| +
 | 
| +if __name__ == '__main__':
 | 
| +    unittest.main()
 | 
| +
 | 
| +suite = unittest.makeSuite(ExpectTestCase, 'test')
 | 
| 
 |