Mercurial > cpython-lru_cache-weakref
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 |
| 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() |
