Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_docxmlrpc.py @ 79691:05c8928362ee
Merge __next__ method link fixes with 3.3.
| author | Ezio Melotti <ezio.melotti@gmail.com> |
|---|---|
| date | Fri, 12 Oct 2012 13:46:37 +0300 |
| parents | 493bb4585e38 |
| children | fdf907708f49 |
| 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 | 27 serv = DocXMLRPCServer(("localhost", 0), logRequests=False) |
| 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="-<lambda>"><strong>' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
126 b'<lambda></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 two instances together. This ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
144 b'follows <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>, but has nothing<br>\nto do ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
146 b'with <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>. Case should matter: pEp008 ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
148 b'and rFC1952. Things<br>\nthat start ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
149 b'with http and ftp should be ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
150 b'auto-linked, 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\') => "Adds ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
168 b'two integers together"<br>\n <br>\nReturns a' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
169 b' string containing documentation for ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
170 b'the specified 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\') => [double, ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
174 b'int, int]<br>\n <br>\nReturns a list ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
175 b'describing the signature of the method.' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
176 b' In the<br>\nabove example, the add ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
177 b'method takes two integers as arguments' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
178 b'<br>\nand returns a double result.<br>\n ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
179 b'<br>\nThis server does NOT support 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 ' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
182 b'method\'s docs. This method truly does' |
|
f0f221e1a7c0
use assert[Not]In where appropriate
Ezio Melotti <ezio.melotti@gmail.com>
parents:
56983
diff
changeset
|
183 b' very 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 self.<strong>add</strong>, 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() |
