annotate Lib/test/test_docxmlrpc.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 493bb4585e38
children fdf907708f49
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47288
346a99df5889 Create xmlrpc package. Issue #2886.
Georg Brandl <georg@python.org>
parents: 47201
diff changeset
1 from xmlrpc.server import DocXMLRPCServer
47318
e1fcc3881cb6 Create http package. #2883.
Georg Brandl <georg@python.org>
parents: 47288
diff changeset
2 import http.client
59091
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
3 import sys
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 45192
diff changeset
4 from test import support
61073
493bb4585e38 Merged revisions 80552-80556,80564-80566,80568-80571 via svnmerge from
Victor Stinner <victor.stinner@haypocalc.com>
parents: 59613
diff changeset
5 threading = support.import_module('threading')
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
6 import time
59613
77c71f258df7 Merged revisions 78018,78035-78040,78042-78043,78046,78048-78052,78054,78059,78075-78080 via svnmerge from
Georg Brandl <georg@python.org>
parents: 59091
diff changeset
7 import socket
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
8 import unittest
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
9
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
10 PORT = None
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
11
59091
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
12 def make_request_and_skipIf(condition, reason):
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
13 # If we skip the test, we have to make a request because the
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
14 # the server created in setUp blocks expecting one to come in.
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
15 if not condition:
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
16 return lambda func: func
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
17 def decorator(func):
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
18 def make_request_and_skip(self):
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
19 self.client.request("GET", "/")
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
20 self.client.getresponse()
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
21 raise unittest.SkipTest(reason)
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
22 return make_request_and_skip
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
23 return decorator
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
24
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
25
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
26 def server(evt, numrequests):
49493
bdf4da5d04ad merge from trunk
Benjamin Peterson <benjamin@python.org>
parents: 47318
diff changeset
27 serv = DocXMLRPCServer(("localhost", 0), logRequests=False)
bdf4da5d04ad merge from trunk
Benjamin Peterson <benjamin@python.org>
parents: 47318
diff changeset
28
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
29 try:
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
30 global PORT
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
31 PORT = serv.socket.getsockname()[1]
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
32
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
33 # Add some documentation
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
34 serv.set_server_title("DocXMLRPCServer Test Documentation")
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
35 serv.set_server_name("DocXMLRPCServer Test Docs")
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
36 serv.set_server_documentation(
58456
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
37 "This is an XML-RPC server's documentation, but the server "
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
38 "can be used by POSTing to /RPC2. Try self.add, too.")
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
39
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
40 # Create and register classes and functions
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
41 class TestClass(object):
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
42 def test_method(self, arg):
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
43 """Test method's docs. This method truly does very little."""
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
44 self.arg = arg
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
45
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
46 serv.register_introspection_functions()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
47 serv.register_instance(TestClass())
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
48
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
49 def add(x, y):
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
50 """Add two instances together. This follows PEP008, but has nothing
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
51 to do with RFC1952. Case should matter: pEp008 and rFC1952. Things
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
52 that start with http and ftp should be auto-linked, too:
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
53 http://google.com.
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
54 """
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
55 return x + y
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
56
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
57 serv.register_function(add)
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
58 serv.register_function(lambda x, y: x-y)
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
59
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
60 while numrequests > 0:
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
61 serv.handle_request()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
62 numrequests -= 1
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
63 except socket.timeout:
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
64 pass
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
65 finally:
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
66 serv.server_close()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
67 PORT = None
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
68 evt.set()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
69
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
70 class DocXMLRPCHTTPGETServer(unittest.TestCase):
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
71 def setUp(self):
56983
713e21a5471e Merged revisions 75960 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 55593
diff changeset
72 self._threads = support.threading_setup()
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
73 # Enable server feedback
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
74 DocXMLRPCServer._send_traceback_header = True
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
75
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
76 self.evt = threading.Event()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
77 threading.Thread(target=server, args=(self.evt, 1)).start()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
78
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
79 # wait for port to be assigned
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
80 n = 1000
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
81 while n > 0 and PORT is None:
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
82 time.sleep(0.001)
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
83 n -= 1
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
84
47318
e1fcc3881cb6 Create http package. #2883.
Georg Brandl <georg@python.org>
parents: 47288
diff changeset
85 self.client = http.client.HTTPConnection("localhost:%d" % PORT)
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
86
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
87 def tearDown(self):
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
88 self.client.close()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
89
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
90 self.evt.wait()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
91
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
92 # Disable server feedback
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
93 DocXMLRPCServer._send_traceback_header = False
56983
713e21a5471e Merged revisions 75960 via svnmerge from
Antoine Pitrou <solipsis@pitrou.net>
parents: 55593
diff changeset
94 support.threading_cleanup(*self._threads)
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
95
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
96 def test_valid_get_response(self):
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
97 self.client.request("GET", "/")
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
98 response = self.client.getresponse()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
99
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
100 self.assertEqual(response.status, 200)
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
101 self.assertEqual(response.getheader("Content-type"), "text/html")
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
102
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
103 # Server throws an exception if we don't start to read the data
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
104 response.read()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
105
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
106 def test_invalid_get_response(self):
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
107 self.client.request("GET", "/spam")
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
108 response = self.client.getresponse()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
109
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
110 self.assertEqual(response.status, 404)
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
111 self.assertEqual(response.getheader("Content-type"), "text/plain")
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
112
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
113 response.read()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
114
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
115 def test_lambda(self):
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
116 """Test that lambda functionality stays the same. The output produced
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
117 currently is, I suspect invalid because of the unencoded brackets in the
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
118 HTML, "<lambda>".
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
119
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
120 The subtraction lambda method is tested.
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
121 """
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
122 self.client.request("GET", "/")
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
123 response = self.client.getresponse()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
124
58456
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
125 self.assertIn((b'<dl><dt><a name="-&lt;lambda&gt;"><strong>'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
126 b'&lt;lambda&gt;</strong></a>(x, y)</dt></dl>'),
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
127 response.read())
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
128
59091
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
129 @make_request_and_skipIf(sys.flags.optimize >= 2,
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
130 "Docstrings are omitted with -O2 and above")
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
131 def test_autolinking(self):
59091
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
132 """Test that the server correctly automatically wraps references to
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
133 PEPS and RFCs with links, and that it linkifies text starting with
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
134 http or ftp protocol prefixes.
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
135
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
136 The documentation for the "add" method contains the test material.
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
137 """
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
138 self.client.request("GET", "/")
45192
142a11b3057e Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60568-60598,60600-60616 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents: 44257
diff changeset
139 response = self.client.getresponse().read()
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
140
58456
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
141 self.assertIn(
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
142 (b'<dl><dt><a name="-add"><strong>add</strong></a>(x, y)</dt><dd>'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
143 b'<tt>Add&nbsp;two&nbsp;instances&nbsp;together.&nbsp;This&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
144 b'follows&nbsp;<a href="http://www.python.org/dev/peps/pep-0008/">'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
145 b'PEP008</a>,&nbsp;but&nbsp;has&nbsp;nothing<br>\nto&nbsp;do&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
146 b'with&nbsp;<a href="http://www.rfc-editor.org/rfc/rfc1952.txt">'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
147 b'RFC1952</a>.&nbsp;Case&nbsp;should&nbsp;matter:&nbsp;pEp008&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
148 b'and&nbsp;rFC1952.&nbsp;&nbsp;Things<br>\nthat&nbsp;start&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
149 b'with&nbsp;http&nbsp;and&nbsp;ftp&nbsp;should&nbsp;be&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
150 b'auto-linked,&nbsp;too:<br>\n<a href="http://google.com">'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
151 b'http://google.com</a>.</tt></dd></dl>'), response)
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
152
59091
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
153 @make_request_and_skipIf(sys.flags.optimize >= 2,
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
154 "Docstrings are omitted with -O2 and above")
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
155 def test_system_methods(self):
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
156 """Test the precense of three consecutive system.* methods.
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
157
59091
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
158 This also tests their use of parameter type recognition and the
8d3ff2fbbe4b Merged revisions 78351 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents: 58456
diff changeset
159 systems related to that process.
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
160 """
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
161 self.client.request("GET", "/")
44257
76ce597c72ee Fixed doc xml rpc tests and server
Christian Heimes <christian@cheimes.de>
parents: 44253
diff changeset
162 response = self.client.getresponse().read()
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
163
58456
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
164 self.assertIn(
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
165 (b'<dl><dt><a name="-system.methodHelp"><strong>system.methodHelp'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
166 b'</strong></a>(method_name)</dt><dd><tt><a href="#-system.method'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
167 b'Help">system.methodHelp</a>(\'add\')&nbsp;=&gt;&nbsp;"Adds&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
168 b'two&nbsp;integers&nbsp;together"<br>\n&nbsp;<br>\nReturns&nbsp;a'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
169 b'&nbsp;string&nbsp;containing&nbsp;documentation&nbsp;for&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
170 b'the&nbsp;specified&nbsp;method.</tt></dd></dl>\n<dl><dt><a name'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
171 b'="-system.methodSignature"><strong>system.methodSignature</strong>'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
172 b'</a>(method_name)</dt><dd><tt><a href="#-system.methodSignature">'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
173 b'system.methodSignature</a>(\'add\')&nbsp;=&gt;&nbsp;[double,&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
174 b'int,&nbsp;int]<br>\n&nbsp;<br>\nReturns&nbsp;a&nbsp;list&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
175 b'describing&nbsp;the&nbsp;signature&nbsp;of&nbsp;the&nbsp;method.'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
176 b'&nbsp;In&nbsp;the<br>\nabove&nbsp;example,&nbsp;the&nbsp;add&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
177 b'method&nbsp;takes&nbsp;two&nbsp;integers&nbsp;as&nbsp;arguments'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
178 b'<br>\nand&nbsp;returns&nbsp;a&nbsp;double&nbsp;result.<br>\n&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
179 b'<br>\nThis&nbsp;server&nbsp;does&nbsp;NOT&nbsp;support&nbsp;system'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
180 b'.methodSignature.</tt></dd></dl>\n<dl><dt><a name="-test_method">'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
181 b'<strong>test_method</strong></a>(arg)</dt><dd><tt>Test&nbsp;'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
182 b'method\'s&nbsp;docs.&nbsp;This&nbsp;method&nbsp;truly&nbsp;does'
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
183 b'&nbsp;very&nbsp;little.</tt></dd></dl>'), response)
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
184
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
185 def test_autolink_dotted_methods(self):
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
186 """Test that selfdot values are made strong automatically in the
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
187 documentation."""
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
188 self.client.request("GET", "/")
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
189 response = self.client.getresponse()
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
190
58456
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
191 self.assertIn(b"""Try&nbsp;self.<strong>add</strong>,&nbsp;too.""",
f0f221e1a7c0 use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents: 56983
diff changeset
192 response.read())
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
193
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
194 def test_main():
47201
9c930a32cebb #2621 rename test.test_support to test.support
Benjamin Peterson <benjamin@python.org>
parents: 45192
diff changeset
195 support.run_unittest(DocXMLRPCHTTPGETServer)
44253
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
196
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
197 if __name__ == '__main__':
60a740f5a57a Merged revisions 59441-59449 via svnmerge from
Christian Heimes <christian@cheimes.de>
parents:
diff changeset
198 test_main()