Merge lp:~cjwatson/lazr.restful/py3-doctest-trivial into lp:lazr.restful

Proposed by Colin Watson
Status: Merged
Merged at revision: 278
Proposed branch: lp:~cjwatson/lazr.restful/py3-doctest-trivial
Merge into: lp:lazr.restful
Diff against target: 237 lines (+34/-30)
9 files modified
src/lazr/restful/docs/interface.rst (+1/-1)
src/lazr/restful/docs/webservice-declarations.rst (+1/-1)
src/lazr/restful/docs/webservice.rst (+14/-14)
src/lazr/restful/example/base/tests/entry.txt (+5/-3)
src/lazr/restful/example/base/tests/root.txt (+2/-2)
src/lazr/restful/example/base/tests/test_integration.py (+1/-1)
src/lazr/restful/example/base/tests/wadl.txt (+3/-2)
src/lazr/restful/example/multiversion/tests/introduction.txt (+3/-2)
src/lazr/restful/example/multiversion/tests/wadl.txt (+4/-4)
To merge this branch: bzr merge lp:~cjwatson/lazr.restful/py3-doctest-trivial
Reviewer Review Type Date Requested Status
Cristian Gonzalez (community) Approve
Review via email: mp+396432@code.launchpad.net

Commit message

Fix various simple doctest failures on Python 3.

Description of the change

These are mainly bytes/text issues, with a couple of other small adjustments.

To post a comment you must log in.
Revision history for this message
Cristian Gonzalez (cristiangsp) wrote :

Looks good!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/lazr/restful/docs/interface.rst'
2--- src/lazr/restful/docs/interface.rst 2020-09-07 09:54:10 +0000
3+++ src/lazr/restful/docs/interface.rst 2021-01-18 12:01:41 +0000
4@@ -173,7 +173,7 @@
5 If the value for an overridden field is invalid, an exception will be
6 raised:
7
8- >>> copy_field(MyModel['age'], title='This should be unicode')
9+ >>> copy_field(MyModel['age'], title=b'This should be unicode')
10 ... # doctest: +IGNORE_EXCEPTION_MODULE_IN_PYTHON2
11 Traceback (most recent call last):
12 ...
13
14=== modified file 'src/lazr/restful/docs/webservice-declarations.rst'
15--- src/lazr/restful/docs/webservice-declarations.rst 2020-09-07 09:54:10 +0000
16+++ src/lazr/restful/docs/webservice-declarations.rst 2021-01-18 12:01:41 +0000
17@@ -227,7 +227,7 @@
18 ... pass
19 Traceback (most recent call last):
20 ...
21- TypeError: __init__() takes exactly 2 arguments (1 given)
22+ TypeError: __init__() ...
23
24 >>> @exported_as_webservice_collection("not an interface")
25 ... class InvalidEntrySchema(Interface):
26
27=== modified file 'src/lazr/restful/docs/webservice.rst'
28--- src/lazr/restful/docs/webservice.rst 2020-09-07 09:54:10 +0000
29+++ src/lazr/restful/docs/webservice.rst 2021-01-18 12:01:41 +0000
30@@ -1124,7 +1124,7 @@
31 >>> wadl_request = create_web_service_request(
32 ... '/beta/', environ=wadl_headers)
33 >>> wadl_resource = wadl_request.traverse(app)
34- >>> print(wadl_resource(wadl_request))
35+ >>> print(wadl_resource(wadl_request).decode('UTF-8'))
36 <?xml version="1.0"?>
37 <!DOCTYPE...
38 <wadl:application ...>
39@@ -1169,7 +1169,7 @@
40
41 >>> def load_json(s):
42 ... """Convert a JSON string to Unicode and then load it."""
43- ... return simplejson.loads(six.text_type(s))
44+ ... return simplejson.loads(six.ensure_text(s))
45
46 >>> representation = load_json(collection())
47 >>> print(representation['resource_type_link'])
48@@ -1682,7 +1682,7 @@
49 ... headers['HTTP_IF_NONE_MATCH'] = etag
50 ... get_request = create_web_service_request(
51 ... julia_url, environ=headers)
52- ... entity_body = get_request.traverse(app)()
53+ ... entity_body = six.ensure_text(get_request.traverse(app)())
54 ... return dict(entity_body=entity_body,
55 ... response=get_request.response)
56
57@@ -1824,8 +1824,8 @@
58 >>> body = simplejson.dumps(author).encode('UTF-8')
59 >>> put_request = create_web_service_request(
60 ... beard_url, body=body, environ=headers, method='PUT')
61- >>> put_request.traverse(app)()
62- '{...}'
63+ >>> print(six.ensure_text(put_request.traverse(app)()))
64+ {...}
65
66 And since no special permission is necessary to _change_ a person's
67 'favorite_recipe', it's possible to set it to a visible recipe using
68@@ -1837,8 +1837,8 @@
69 >>> body = simplejson.dumps(author).encode('UTF-8')
70 >>> put_request = create_web_service_request(
71 ... beard_url, body=body, environ=headers, method='PUT')
72- >>> put_request.traverse(app)()
73- '{...}'
74+ >>> print(six.ensure_text(put_request.traverse(app)()))
75+ {...}
76
77 After that PUT, James Beard's 'favorite_recipe' attribute is no longer
78 redacted. It's the value set by the PUT request.
79@@ -1901,8 +1901,8 @@
80 >>> file_resource = put_request.traverse(app)
81 >>> file_resource()
82
83- >>> C2.cover.representation
84- 'Pretend...'
85+ >>> print(six.ensure_str(C2.cover.representation))
86+ Pretend...
87
88 At this point it exists:
89
90@@ -1938,7 +1938,7 @@
91
92 >>> field_resource = create_web_service_request(
93 ... '/beta/cookbooks/The%20Joy%20of%20Cooking/name').traverse(app)
94- >>> print(field_resource())
95+ >>> print(six.ensure_text(field_resource()))
96 "The Joy of Cooking"
97
98 Requesting non available resources
99@@ -2063,11 +2063,11 @@
100 ... '/beta/cookbooks/The%20Joy%20of%20Cooking',
101 ... body=simplejson.dumps(representation).encode('UTF-8'),
102 ... environ=headers, method='PATCH', hostname=host).traverse(app)
103- ... return resource()
104+ ... return six.ensure_text(resource())
105 >>> path = '/beta/authors/Julia%20Child'
106
107- >>> change_joy_author(u'http://api.cookbooks.dev' + path)
108- '{...}'
109+ >>> print(change_joy_author(u'http://api.cookbooks.dev' + path))
110+ {...}
111
112 >>> joy_resource = create_web_service_request(
113 ... '/beta/cookbooks/The%20Joy%20of%20Cooking').traverse(app)
114@@ -2126,7 +2126,7 @@
115
116 >>> resource = create_web_service_request(
117 ... recipe_url, method='GET').traverse(app)
118- >>> print(resource())
119+ >>> print(six.ensure_text(resource()))
120 {...}
121
122 >>> resource = create_web_service_request(
123
124=== modified file 'src/lazr/restful/example/base/tests/entry.txt'
125--- src/lazr/restful/example/base/tests/entry.txt 2020-09-07 09:54:10 +0000
126+++ src/lazr/restful/example/base/tests/entry.txt 2021-01-18 12:01:41 +0000
127@@ -31,8 +31,8 @@
128 convert it into Unicode.
129
130 >>> construsions_url = quote("/cookbooks/Construsions un repas")
131- >>> webservice.get(construsions_url).jsonBody()['cuisine']
132- u'Fran\xe7aise'
133+ >>> print(webservice.get(construsions_url).jsonBody()['cuisine'])
134+ Française
135
136 Content negotiation
137 ===================
138@@ -118,7 +118,9 @@
139 Getting the XHTML representation works correctly even when some of the fields
140 have non-ascii values.
141
142- >>> print(webservice.get(construsions_url, 'application/xhtml+xml'))
143+ >>> import six
144+ >>> print(six.text_type(
145+ ... webservice.get(construsions_url, 'application/xhtml+xml')))
146 HTTP/1.1 200 Ok
147 ...
148 <dl ...>
149
150=== modified file 'src/lazr/restful/example/base/tests/root.txt'
151--- src/lazr/restful/example/base/tests/root.txt 2020-09-07 09:54:10 +0000
152+++ src/lazr/restful/example/base/tests/root.txt 2021-01-18 12:01:41 +0000
153@@ -80,8 +80,8 @@
154 ... '/', headers={'If-None-Match' : etag})
155 >>> conditional_response.status
156 304
157- >>> conditional_response.body
158- ''
159+ >>> print(conditional_response.body.decode('UTF-8'))
160+ <BLANKLINE>
161
162 >>> conditional_response = webservice.get(
163 ... '/', headers={'If-None-Match' : '"a-very-old-etag"'})
164
165=== modified file 'src/lazr/restful/example/base/tests/test_integration.py'
166--- src/lazr/restful/example/base/tests/test_integration.py 2020-08-21 16:16:09 +0000
167+++ src/lazr/restful/example/base/tests/test_integration.py 2021-01-18 12:01:41 +0000
168@@ -58,7 +58,7 @@
169 }
170 suite = doctest.DocFileSuite(
171 *doctest_files, optionflags=DOCTEST_FLAGS, globs=globs,
172- checker=checker)
173+ encoding='UTF-8', checker=checker)
174 suite.layer = WSGILayer
175 tests.addTest(suite)
176 return tests
177
178=== modified file 'src/lazr/restful/example/base/tests/wadl.txt'
179--- src/lazr/restful/example/base/tests/wadl.txt 2020-09-02 22:25:01 +0000
180+++ src/lazr/restful/example/base/tests/wadl.txt 2021-01-18 12:01:41 +0000
181@@ -21,7 +21,7 @@
182
183 It's an XML document.
184
185- >>> print(wadl)
186+ >>> print(wadl.decode('UTF-8'))
187 <?xml version="1.0"?>
188 <wadl:application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
189 xmlns="http://research.sun.com/wadl/2006/10"
190@@ -35,7 +35,8 @@
191 >>> from lxml import etree
192 >>> from lazr.restful import WADL_SCHEMA_FILE
193
194- >>> wadl_schema = etree.XMLSchema(etree.parse(open(WADL_SCHEMA_FILE)))
195+ >>> with open(WADL_SCHEMA_FILE) as wadl_schema_file:
196+ ... wadl_schema = etree.XMLSchema(etree.parse(wadl_schema_file))
197 >>> from io import StringIO
198 >>> def validate(body):
199 ... res = wadl_schema.validate(
200
201=== modified file 'src/lazr/restful/example/multiversion/tests/introduction.txt'
202--- src/lazr/restful/example/multiversion/tests/introduction.txt 2020-09-07 09:54:10 +0000
203+++ src/lazr/restful/example/multiversion/tests/introduction.txt 2021-01-18 12:01:41 +0000
204@@ -245,8 +245,9 @@
205 If an entry field is not published in a certain version, the
206 corresponding field resource does not exist for that version.
207
208- >>> print(webservice.get('/pairs/foo/deleted', api_version='beta').body)
209- Object: <...>, name: u'deleted'
210+ >>> print(webservice.get(
211+ ... '/pairs/foo/deleted', api_version='beta').body.decode('UTF-8'))
212+ Object: <...>, name: ...'deleted'
213
214 >>> print(webservice.get(
215 ... '/pairs/foo/deleted', api_version='3.0').jsonBody())
216
217=== modified file 'src/lazr/restful/example/multiversion/tests/wadl.txt'
218--- src/lazr/restful/example/multiversion/tests/wadl.txt 2020-02-04 11:52:59 +0000
219+++ src/lazr/restful/example/multiversion/tests/wadl.txt 2021-01-18 12:01:41 +0000
220@@ -111,13 +111,13 @@
221 Now if we request the WADL for 3.0 it will include a description of
222 total_size_link.
223
224- >>> webservice.get('/', media_type='application/vnd.sun.wadl+xml',
225- ... api_version='3.0').body
226- '...<wadl:param style="plain" name="total_size_link"...'
227+ >>> print(webservice.get('/', media_type='application/vnd.sun.wadl+xml',
228+ ... api_version='3.0').body.decode('UTF-8'))
229+ <?xml version="1.0"?>...<wadl:param style="plain" name="total_size_link"...
230
231 If we request an earlier version, total_size_link is not described.
232
233 >>> wadl = webservice.get('/', media_type='application/vnd.sun.wadl+xml',
234- ... api_version='2.0').body
235+ ... api_version='2.0').body.decode('UTF-8')
236 >>> 'total_size_link' in wadl
237 False

Subscribers

People subscribed via source and target branches