annotate Lib/test/test_select.py @ 79691:05c8928362ee

Merge __next__ method link fixes with 3.3.
author Ezio Melotti <ezio.melotti@gmail.com>
date Fri, 12 Oct 2012 13:46:37 +0300
parents 9ba1f113c3ec
children 823898ef37ce
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
72896
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
1 import errno
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
2 import os
4691
8015c5549309 A test of the select module that is actually reproduceable!
Barry Warsaw <barry@python.org>
parents: 1416
diff changeset
3 import select
45773
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
4 import sys
72896
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
5 import unittest
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
6 from test import support
4691
8015c5549309 A test of the select module that is actually reproduceable!
Barry Warsaw <barry@python.org>
parents: 1416
diff changeset
7
79482
9ba1f113c3ec Closes #16135: Removal of OS/2 support
Jesus Cea <jcea@jcea.es>
parents: 79481
diff changeset
8 @unittest.skipIf((sys.platform[:3]=='win') or (sys.platform=='riscos'),
60423
ba5ec7560933 Merged revisions 79866-79867 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
9 "can't easily test on this system")
45773
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
10 class SelectTestCase(unittest.TestCase):
4691
8015c5549309 A test of the select module that is actually reproduceable!
Barry Warsaw <barry@python.org>
parents: 1416
diff changeset
11
45773
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
12 class Nope:
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
13 pass
4691
8015c5549309 A test of the select module that is actually reproduceable!
Barry Warsaw <barry@python.org>
parents: 1416
diff changeset
14
45773
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
15 class Almost:
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
16 def fileno(self):
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
17 return 'fileno'
15305
07f24261c6e6 Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents: 13707
diff changeset
18
45773
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
19 def test_error_conditions(self):
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
20 self.assertRaises(TypeError, select.select, 1, 2, 3)
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
21 self.assertRaises(TypeError, select.select, [self.Nope()], [], [])
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
22 self.assertRaises(TypeError, select.select, [self.Almost()], [], [])
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
23 self.assertRaises(TypeError, select.select, [], [], [], "not a number")
69224
3982be773b54 Issue #11757: select.select() now raises ValueError when a negative timeout
Antoine Pitrou <solipsis@pitrou.net>
parents: 61259
diff changeset
24 self.assertRaises(ValueError, select.select, [], [], [], -1)
4691
8015c5549309 A test of the select module that is actually reproduceable!
Barry Warsaw <barry@python.org>
parents: 1416
diff changeset
25
72964
f6b8e4226260 Issue #12367: Test test_select.test_errno() on FreeBSD
Victor Stinner <victor.stinner@haypocalc.com>
parents: 72947
diff changeset
26 # Issue #12367: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/155606
f6b8e4226260 Issue #12367: Test test_select.test_errno() on FreeBSD
Victor Stinner <victor.stinner@haypocalc.com>
parents: 72947
diff changeset
27 @unittest.skipIf(sys.platform.startswith('freebsd'),
f6b8e4226260 Issue #12367: Test test_select.test_errno() on FreeBSD
Victor Stinner <victor.stinner@haypocalc.com>
parents: 72947
diff changeset
28 'skip because of a FreeBSD bug: kern/155606')
72896
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
29 def test_errno(self):
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
30 with open(__file__, 'rb') as fp:
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
31 fd = fp.fileno()
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
32 fp.close()
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
33 try:
72947
60fecfbea397 test_select: use a timeout=0 in test_errno()
Victor Stinner <victor.stinner@haypocalc.com>
parents: 72896
diff changeset
34 select.select([fd], [], [], 0)
72896
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
35 except select.error as err:
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
36 self.assertEqual(err.errno, errno.EBADF)
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
37 else:
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
38 self.fail("exception not raised")
8bbfb24d4824 Issue #12367: Add a test on error attribute of select.error
Victor Stinner <victor.stinner@haypocalc.com>
parents: 69224
diff changeset
39
60423
ba5ec7560933 Merged revisions 79866-79867 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
40 def test_returned_list_identity(self):
ba5ec7560933 Merged revisions 79866-79867 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
41 # See issue #8329
ba5ec7560933 Merged revisions 79866-79867 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
42 r, w, x = select.select([], [], [], 1)
ba5ec7560933 Merged revisions 79866-79867 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
43 self.assertIsNot(r, w)
ba5ec7560933 Merged revisions 79866-79867 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
44 self.assertIsNot(r, x)
ba5ec7560933 Merged revisions 79866-79867 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
45 self.assertIsNot(w, x)
ba5ec7560933 Merged revisions 79866-79867 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 47201
diff changeset
46
45773
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
47 def test_select(self):
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
48 cmd = 'for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done'
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
49 p = os.popen(cmd, 'r')
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
50 for tout in (0, 1, 2, 4, 8, 16) + (None,)*10:
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 45773
diff changeset
51 if support.verbose:
45773
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
52 print('timeout =', tout)
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
53 rfd, wfd, xfd = select.select([p], [], [], tout)
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
54 if (rfd, wfd, xfd) == ([], [], []):
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
55 continue
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
56 if (rfd, wfd, xfd) == ([p], [], []):
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
57 line = p.readline()
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 45773
diff changeset
58 if support.verbose:
45773
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
59 print(repr(line))
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
60 if not line:
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 45773
diff changeset
61 if support.verbose:
45773
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
62 print('EOF')
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
63 break
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
64 continue
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
65 self.fail('Unexpected return values from select():', rfd, wfd, xfd)
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
66 p.close()
1407
b9fcfb99a3e5 * test_select.py: (some) tests for built-in select module
Guido van Rossum <guido@python.org>
parents:
diff changeset
67
45773
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
68 def test_main():
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 45773
diff changeset
69 support.run_unittest(SelectTestCase)
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 45773
diff changeset
70 support.reap_children()
1407
b9fcfb99a3e5 * test_select.py: (some) tests for built-in select module
Guido van Rossum <guido@python.org>
parents:
diff changeset
71
45773
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
72 if __name__ == "__main__":
832c820e9d14 Merged revisions 61239-61249,61252-61257,61260-61264,61269-61275,61278-61279,61285-61286,61288-61290,61298,61303-61305,61312-61314,61317,61329,61332,61344,61350-61351,61363-61376,61378-61379,61382-61383,61387-61388,61392,61395-61396,61402-61403 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 42632
diff changeset
73 test_main()