Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_telnetlib.py @ 78069:a8aa77458e12 3.2
Add c_size_t and c_ssize_t to the ctypes summary table.
| author | Antoine Pitrou <solipsis@pitrou.net> |
|---|---|
| date | Thu, 12 Jul 2012 20:31:50 +0200 |
| parents | 3b9f58f85d3e |
| children | de229dde486b ca8a0dfb2176 |
| rev | line source |
|---|---|
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 import socket |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
2 import select |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 import telnetlib |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 import time |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
5 import contextlib |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 from unittest import TestCase |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46370
diff
changeset
|
8 from test import support |
|
61073
493bb4585e38
Merged revisions 80552-80556,80564-80566,80568-80571 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents:
58415
diff
changeset
|
9 threading = support.import_module('threading') |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46370
diff
changeset
|
11 HOST = support.HOST |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
13 def server(evt, serv): |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 serv.listen(5) |
|
44999
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
42532
diff
changeset
|
15 evt.set() |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 try: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 conn, addr = serv.accept() |
|
73452
3b9f58f85d3e
Partial patch for issue #11812: Take care of test_telnetlib.py
Jesus Cea <jcea@jcea.es>
parents:
73451
diff
changeset
|
18 conn.close() |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 except socket.timeout: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 pass |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 finally: |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 serv.close() |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 class GeneralTests(TestCase): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 def setUp(self): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 self.evt = threading.Event() |
|
46370
2e917b0c8f6e
Merged revisions 62194,62197-62198,62204-62205,62214,62219-62221,62227,62229-62231,62233-62235,62237-62239 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46161
diff
changeset
|
28 self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
|
73452
3b9f58f85d3e
Partial patch for issue #11812: Take care of test_telnetlib.py
Jesus Cea <jcea@jcea.es>
parents:
73451
diff
changeset
|
29 self.sock.settimeout(60) # Safety net. Look issue 11812 |
|
47201
9c930a32cebb
#2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents:
46370
diff
changeset
|
30 self.port = support.bind_port(self.sock) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
31 self.thread = threading.Thread(target=server, args=(self.evt,self.sock)) |
|
73452
3b9f58f85d3e
Partial patch for issue #11812: Take care of test_telnetlib.py
Jesus Cea <jcea@jcea.es>
parents:
73451
diff
changeset
|
32 self.thread.setDaemon(True) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
33 self.thread.start() |
|
44999
7c02182e2979
Merged revisions 60284-60349 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
42532
diff
changeset
|
34 self.evt.wait() |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 def tearDown(self): |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
37 self.thread.join() |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 def testBasic(self): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 # connects |
|
46370
2e917b0c8f6e
Merged revisions 62194,62197-62198,62204-62205,62214,62219-62221,62227,62229-62231,62233-62235,62237-62239 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46161
diff
changeset
|
41 telnet = telnetlib.Telnet(HOST, self.port) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 telnet.sock.close() |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 def testTimeoutDefault(self): |
|
47559
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
45 self.assertTrue(socket.getdefaulttimeout() is None) |
|
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
46 socket.setdefaulttimeout(30) |
|
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
47 try: |
|
73452
3b9f58f85d3e
Partial patch for issue #11812: Take care of test_telnetlib.py
Jesus Cea <jcea@jcea.es>
parents:
73451
diff
changeset
|
48 telnet = telnetlib.Telnet(HOST, self.port) |
|
47559
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
49 finally: |
|
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
50 socket.setdefaulttimeout(None) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 self.assertEqual(telnet.sock.gettimeout(), 30) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
52 telnet.sock.close() |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
54 def testTimeoutNone(self): |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
55 # None, having other default |
|
47559
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
56 self.assertTrue(socket.getdefaulttimeout() is None) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
57 socket.setdefaulttimeout(30) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
58 try: |
|
46370
2e917b0c8f6e
Merged revisions 62194,62197-62198,62204-62205,62214,62219-62221,62227,62229-62231,62233-62235,62237-62239 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
46161
diff
changeset
|
59 telnet = telnetlib.Telnet(HOST, self.port, timeout=None) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
60 finally: |
|
47559
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
61 socket.setdefaulttimeout(None) |
|
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
62 self.assertTrue(telnet.sock.gettimeout() is None) |
|
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
63 telnet.sock.close() |
|
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
64 |
|
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
65 def testTimeoutValue(self): |
|
73452
3b9f58f85d3e
Partial patch for issue #11812: Take care of test_telnetlib.py
Jesus Cea <jcea@jcea.es>
parents:
73451
diff
changeset
|
66 telnet = telnetlib.Telnet(HOST, self.port, timeout=30) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
67 self.assertEqual(telnet.sock.gettimeout(), 30) |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
68 telnet.sock.close() |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
69 |
|
47559
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
70 def testTimeoutOpen(self): |
|
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
71 telnet = telnetlib.Telnet() |
|
73452
3b9f58f85d3e
Partial patch for issue #11812: Take care of test_telnetlib.py
Jesus Cea <jcea@jcea.es>
parents:
73451
diff
changeset
|
72 telnet.open(HOST, self.port, timeout=30) |
|
47559
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
73 self.assertEqual(telnet.sock.gettimeout(), 30) |
|
2925b568aacc
Merged revisions 63562,63570,63728,63734,63784,63788,63802,63817,63827,63839,63887,63975,63998 via svnmerge from
Georg Brandl <georg@python.org>
parents:
47201
diff
changeset
|
74 telnet.sock.close() |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
75 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
76 class SocketStub(object): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
77 ''' a socket proxy that re-defines sendall() ''' |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
78 def __init__(self, reads=[]): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
79 self.reads = reads |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
80 self.writes = [] |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
81 self.block = False |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
82 def sendall(self, data): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
83 self.writes.append(data) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
84 def recv(self, size): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
85 out = b'' |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
86 while self.reads and len(out) < size: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
87 out += self.reads.pop(0) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
88 if len(out) > size: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
89 self.reads.insert(0, out[size:]) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
90 out = out[:size] |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
91 return out |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
92 |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
93 class TelnetAlike(telnetlib.Telnet): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
94 def fileno(self): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
95 raise NotImplementedError() |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
96 def close(self): pass |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
97 def sock_avail(self): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
98 return (not self.sock.block) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
99 def msg(self, msg, *args): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
100 with support.captured_stdout() as out: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
101 telnetlib.Telnet.msg(self, msg, *args) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
102 self._messages += out.getvalue() |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
103 return |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
104 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
105 def new_select(*s_args): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
106 block = False |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
107 for l in s_args: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
108 for fob in l: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
109 if isinstance(fob, TelnetAlike): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
110 block = fob.sock.block |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
111 if block: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
112 return [[], [], []] |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
113 else: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
114 return s_args |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
115 |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
116 @contextlib.contextmanager |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
117 def test_socket(reads): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
118 def new_conn(*ignored): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
119 return SocketStub(reads) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
120 try: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
121 old_conn = socket.create_connection |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
122 socket.create_connection = new_conn |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
123 yield None |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
124 finally: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
125 socket.create_connection = old_conn |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
126 return |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
127 |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
128 def test_telnet(reads=[], cls=TelnetAlike): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
129 ''' return a telnetlib.Telnet object that uses a SocketStub with |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
130 reads queued up to be read ''' |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
131 for x in reads: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
132 assert type(x) is bytes, x |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
133 with test_socket(reads): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
134 telnet = cls('dummy', 0) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
135 telnet._messages = '' # debuglevel output |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
136 return telnet |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
137 |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
138 class ReadTests(TestCase): |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
139 def setUp(self): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
140 self.old_select = select.select |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
141 select.select = new_select |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
142 def tearDown(self): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
143 select.select = self.old_select |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
144 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
145 def test_read_until(self): |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
146 """ |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
147 read_until(expected, timeout=None) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
148 test the blocking version of read_util |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
149 """ |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
150 want = [b'xxxmatchyyy'] |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
151 telnet = test_telnet(want) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
152 data = telnet.read_until(b'match') |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
153 self.assertEqual(data, b'xxxmatch', msg=(telnet.cookedq, telnet.rawq, telnet.sock.reads)) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
154 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
155 reads = [b'x' * 50, b'match', b'y' * 50] |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
156 expect = b''.join(reads[:-1]) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
157 telnet = test_telnet(reads) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
158 data = telnet.read_until(b'match') |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
159 self.assertEqual(data, expect) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
160 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
161 |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
162 def test_read_all(self): |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
163 """ |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
164 read_all() |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
165 Read all data until EOF; may block. |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
166 """ |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
167 reads = [b'x' * 500, b'y' * 500, b'z' * 500] |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
168 expect = b''.join(reads) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
169 telnet = test_telnet(reads) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
170 data = telnet.read_all() |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
171 self.assertEqual(data, expect) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
172 return |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
173 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
174 def test_read_some(self): |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
175 """ |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
176 read_some() |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
177 Read at least one byte or EOF; may block. |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
178 """ |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
179 # test 'at least one byte' |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
180 telnet = test_telnet([b'x' * 500]) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
181 data = telnet.read_some() |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
182 self.assertTrue(len(data) >= 1) |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
183 # test EOF |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
184 telnet = test_telnet() |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
185 data = telnet.read_some() |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
186 self.assertEqual(b'', data) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
187 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
188 def _read_eager(self, func_name): |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
189 """ |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
190 read_*_eager() |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
191 Read all data available already queued or on the socket, |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
192 without blocking. |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
193 """ |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
194 want = b'x' * 100 |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
195 telnet = test_telnet([want]) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
196 func = getattr(telnet, func_name) |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
197 telnet.sock.block = True |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
198 self.assertEqual(b'', func()) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
199 telnet.sock.block = False |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
200 data = b'' |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
201 while True: |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
202 try: |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
203 data += func() |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
204 except EOFError: |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
205 break |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
206 self.assertEqual(data, want) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
207 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
208 def test_read_eager(self): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
209 # read_eager and read_very_eager make the same gaurantees |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
210 # (they behave differently but we only test the gaurantees) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
211 self._read_eager('read_eager') |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
212 self._read_eager('read_very_eager') |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
213 # NB -- we need to test the IAC block which is mentioned in the |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
214 # docstring but not in the module docs |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
215 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
216 def read_very_lazy(self): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
217 want = b'x' * 100 |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
218 telnet = test_telnet([want]) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
219 self.assertEqual(b'', telnet.read_very_lazy()) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
220 while telnet.sock.reads: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
221 telnet.fill_rawq() |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
222 data = telnet.read_very_lazy() |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
223 self.assertEqual(want, data) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
224 self.assertRaises(EOFError, telnet.read_very_lazy) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
225 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
226 def test_read_lazy(self): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
227 want = b'x' * 100 |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
228 telnet = test_telnet([want]) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
229 self.assertEqual(b'', telnet.read_lazy()) |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
230 data = b'' |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
231 while True: |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
232 try: |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
233 read_data = telnet.read_lazy() |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
234 data += read_data |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
235 if not read_data: |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
236 telnet.fill_rawq() |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
237 except EOFError: |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
238 break |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
239 self.assertTrue(want.startswith(data)) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
240 self.assertEqual(data, want) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
241 |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
242 class nego_collector(object): |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
243 def __init__(self, sb_getter=None): |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
244 self.seen = b'' |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
245 self.sb_getter = sb_getter |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
246 self.sb_seen = b'' |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
247 |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
248 def do_nego(self, sock, cmd, opt): |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
249 self.seen += cmd + opt |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
250 if cmd == tl.SE and self.sb_getter: |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
251 sb_data = self.sb_getter() |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
252 self.sb_seen += sb_data |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
253 |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
254 tl = telnetlib |
|
55585
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
255 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
256 class WriteTests(TestCase): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
257 '''The only thing that write does is replace each tl.IAC for |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
258 tl.IAC+tl.IAC''' |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
259 |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
260 def test_write(self): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
261 data_sample = [b'data sample without IAC', |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
262 b'data sample with' + tl.IAC + b' one IAC', |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
263 b'a few' + tl.IAC + tl.IAC + b' iacs' + tl.IAC, |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
264 tl.IAC, |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
265 b''] |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
266 for data in data_sample: |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
267 telnet = test_telnet() |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
268 telnet.write(data) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
269 written = b''.join(telnet.sock.writes) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
270 self.assertEqual(data.replace(tl.IAC,tl.IAC+tl.IAC), written) |
|
55585
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
271 |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
272 class OptionTests(TestCase): |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
273 # RFC 854 commands |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
274 cmds = [tl.AO, tl.AYT, tl.BRK, tl.EC, tl.EL, tl.GA, tl.IP, tl.NOP] |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
275 |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
276 def _test_command(self, data): |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
277 """ helper for testing IAC + cmd """ |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
278 telnet = test_telnet(data) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
279 data_len = len(b''.join(data)) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
280 nego = nego_collector() |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
281 telnet.set_option_negotiation_callback(nego.do_nego) |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
282 txt = telnet.read_all() |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
283 cmd = nego.seen |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
284 self.assertTrue(len(cmd) > 0) # we expect at least one command |
|
58415
f6a626f34840
use assert[Not]In where appropriate
Benjamin Peterson <benjamin@python.org>
parents:
57127
diff
changeset
|
285 self.assertIn(cmd[:1], self.cmds) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
286 self.assertEqual(cmd[1:2], tl.NOOPT) |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
287 self.assertEqual(data_len, len(txt + cmd)) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
288 nego.sb_getter = None # break the nego => telnet cycle |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
289 |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
290 def test_IAC_commands(self): |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
291 for cmd in self.cmds: |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
292 self._test_command([tl.IAC, cmd]) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
293 self._test_command([b'x' * 100, tl.IAC, cmd, b'y'*100]) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
294 self._test_command([b'x' * 10, tl.IAC, cmd, b'y'*10]) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
295 # all at once |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
296 self._test_command([tl.IAC + cmd for (cmd) in self.cmds]) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
297 |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
298 def test_SB_commands(self): |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
299 # RFC 855, subnegotiations portion |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
300 send = [tl.IAC + tl.SB + tl.IAC + tl.SE, |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
301 tl.IAC + tl.SB + tl.IAC + tl.IAC + tl.IAC + tl.SE, |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
302 tl.IAC + tl.SB + tl.IAC + tl.IAC + b'aa' + tl.IAC + tl.SE, |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
303 tl.IAC + tl.SB + b'bb' + tl.IAC + tl.IAC + tl.IAC + tl.SE, |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
304 tl.IAC + tl.SB + b'cc' + tl.IAC + tl.IAC + b'dd' + tl.IAC + tl.SE, |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
305 ] |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
306 telnet = test_telnet(send) |
|
53021
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
307 nego = nego_collector(telnet.read_sb_data) |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
308 telnet.set_option_negotiation_callback(nego.do_nego) |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
309 txt = telnet.read_all() |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
310 self.assertEqual(txt, b'') |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
311 want_sb_data = tl.IAC + tl.IAC + b'aabb' + tl.IAC + b'cc' + tl.IAC + b'dd' |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
312 self.assertEqual(nego.sb_seen, want_sb_data) |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
313 self.assertEqual(b'', telnet.read_sb_data()) |
|
cbaa1bc350ba
-fixes telnetlib constants to be one-length byte arrays instead of ints
Jack Diederich <jackdied@gmail.com>
parents:
47559
diff
changeset
|
314 nego.sb_getter = None # break the nego => telnet cycle |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
315 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
316 def test_debuglevel_reads(self): |
|
55585
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
317 # test all the various places that self.msg(...) is called |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
318 given_a_expect_b = [ |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
319 # Telnet.fill_rawq |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
320 (b'a', ": recv b''\n"), |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
321 # Telnet.process_rawq |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
322 (tl.IAC + bytes([88]), ": IAC 88 not recognized\n"), |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
323 (tl.IAC + tl.DO + bytes([1]), ": IAC DO 1\n"), |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
324 (tl.IAC + tl.DONT + bytes([1]), ": IAC DONT 1\n"), |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
325 (tl.IAC + tl.WILL + bytes([1]), ": IAC WILL 1\n"), |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
326 (tl.IAC + tl.WONT + bytes([1]), ": IAC WONT 1\n"), |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
327 ] |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
328 for a, b in given_a_expect_b: |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
329 telnet = test_telnet([a]) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
330 telnet.set_debuglevel(1) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
331 txt = telnet.read_all() |
|
58415
f6a626f34840
use assert[Not]In where appropriate
Benjamin Peterson <benjamin@python.org>
parents:
57127
diff
changeset
|
332 self.assertIn(b, telnet._messages) |
|
55585
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
333 return |
|
58c10cf04616
Merged revisions 74217,74224 via svnmerge from
Georg Brandl <georg@python.org>
parents:
53021
diff
changeset
|
334 |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
335 def test_debuglevel_write(self): |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
336 telnet = test_telnet() |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
337 telnet.set_debuglevel(1) |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
338 telnet.write(b'xxx') |
|
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
339 expected = "send b'xxx'\n" |
|
58415
f6a626f34840
use assert[Not]In where appropriate
Benjamin Peterson <benjamin@python.org>
parents:
57127
diff
changeset
|
340 self.assertIn(expected, telnet._messages) |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
341 |
|
66891
69b85964ec88
Merged revisions 87230 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
66000
diff
changeset
|
342 def test_debug_accepts_str_port(self): |
|
69b85964ec88
Merged revisions 87230 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
66000
diff
changeset
|
343 # Issue 10695 |
|
69b85964ec88
Merged revisions 87230 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
66000
diff
changeset
|
344 with test_socket([]): |
|
69b85964ec88
Merged revisions 87230 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
66000
diff
changeset
|
345 telnet = TelnetAlike('dummy', '0') |
|
69b85964ec88
Merged revisions 87230 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
66000
diff
changeset
|
346 telnet._messages = '' |
|
69b85964ec88
Merged revisions 87230 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
66000
diff
changeset
|
347 telnet.set_debuglevel(1) |
|
69b85964ec88
Merged revisions 87230 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
66000
diff
changeset
|
348 telnet.msg('test') |
|
66890
da20e7a01fa6
#10695: use %s not %d so that a string 'port' does not cause a debug traceback
R. David Murray <rdmurray@bitdance.com>
parents:
65998
diff
changeset
|
349 self.assertRegex(telnet._messages, r'0.*test') |
|
66891
69b85964ec88
Merged revisions 87230 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
66000
diff
changeset
|
350 |
|
69b85964ec88
Merged revisions 87230 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
66000
diff
changeset
|
351 |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
352 def test_main(verbose=None): |
|
57128
d346ffb8cfd7
Merged revisions 74638,76133 via svnmerge from
Jack Diederich <jackdied@gmail.com>
parents:
55585
diff
changeset
|
353 support.run_unittest(GeneralTests, ReadTests, WriteTests, OptionTests) |
|
41554
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
354 |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
355 if __name__ == '__main__': |
|
06145fbc7ab9
Merged revisions 53952-54987 via svnmerge from
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
356 test_main() |
