Merge lp:~ocb/ocb-web/ocb-web-7.0_lp1193563_typeerror-expected_bytes into lp:ocb-web

Proposed by Ronald Portier (Therp)
Status: Rejected
Rejected by: Stefan Rijnhart (Opener)
Proposed branch: lp:~ocb/ocb-web/ocb-web-7.0_lp1193563_typeerror-expected_bytes
Merge into: lp:ocb-web
Diff against target: 38 lines (+4/-4)
1 file modified
addons/web/controllers/main.py (+4/-4)
To merge this branch: bzr merge lp:~ocb/ocb-web/ocb-web-7.0_lp1193563_typeerror-expected_bytes
Reviewer Review Type Date Requested Status
Holger Brunn (Therp) code review Approve
Review via email: mp+173801@code.launchpad.net

Description of the change

Replace int(token) by simply token on strings used to create a fileToken cookie.

Prevents crash with newer versions of Werkzeug.

To post a comment you must log in.
Revision history for this message
Holger Brunn (Therp) (hbrunn) :
review: Approve (code review)
Revision history for this message
Stefan Rijnhart (Opener) (stefan-opener) wrote :
Revision history for this message
Ronald Portier (Therp) (rportier1962) wrote :

But problem still exists on upstream branch (revno 4033):

2013-12-14 09:22:18,791 27713 ERROR oe_openerp_standard70 openerp.addons.web.http.HttpRequest.dispatch: An error occurred while handling a json request
Traceback (most recent call last):
  File "/home/openeyedev/var/projects/oe_openerp_standard70/web/addons/web/http.py", line 285, in dispatch
    r = method(self, **self.params)
  File "/home/openeyedev/var/projects/oe_openerp_standard70/web/addons/web/controllers/main.py", line 1770, in index
    cookies={'fileToken': int(token)})
  File "/home/openeyedev/var/projects/oe_openerp_standard70/web/addons/web/http.py", line 332, in make_response
    response.set_cookie(k, v)
  File "/usr/lib/python2.7/dist-packages/werkzeug/wrappers.py", line 992, in set_cookie
    self.charset))
  File "/usr/lib/python2.7/dist-packages/werkzeug/http.py", line 905, in dump_cookie
    value = to_bytes(value, charset)
  File "/usr/lib/python2.7/dist-packages/werkzeug/_compat.py", line 106, in to_bytes
    raise TypeError('Expected bytes')
TypeError: Expected bytes

And that is because file web/addons/web/controllers/main.py still contains the fatal int() call:

1765 return req.make_response(report,
1766 headers=[
1767 ('Content-Disposition', content_disposition(file_name, req)),
1768 ('Content-Type', report_mimetype),
1769 ('Content-Length', len(report))],
1770 cookies={'fileToken': int(token)})

Had OpenERP just accepted my merge proposal, the problem would have been solved log ago. Likt is has been solved long ago on the community branch.

Unmerged revisions

3992. By Ronald Portier (Therp)

[FIX] Prevent crash on creating report or doing export when newer version of
    werkzeug installed.
    Fixes lp1193563.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/web/controllers/main.py'
2--- addons/web/controllers/main.py 2013-07-02 12:20:14 +0000
3+++ addons/web/controllers/main.py 2013-07-09 19:32:33 +0000
4@@ -812,7 +812,7 @@
5 return req.make_response(db_dump,
6 [('Content-Type', 'application/octet-stream; charset=binary'),
7 ('Content-Disposition', content_disposition(filename, req))],
8- {'fileToken': int(token)}
9+ {'fileToken': token}
10 )
11 except xmlrpclib.Fault, e:
12 return simplejson.dumps([[],[{'error': e.faultCode, 'title': _('Backup Database')}]])
13@@ -1320,7 +1320,7 @@
14 return req.make_response(filecontent,
15 headers=[('Content-Type', 'application/octet-stream'),
16 ('Content-Disposition', content_disposition(filename, req))],
17- cookies={'fileToken': int(token)})
18+ cookies={'fileToken': token})
19
20 @openerpweb.httprequest
21 def upload(self, req, callback, ufile):
22@@ -1627,7 +1627,7 @@
23 headers=[('Content-Disposition',
24 content_disposition(self.filename(model), req)),
25 ('Content-Type', self.content_type)],
26- cookies={'fileToken': int(token)})
27+ cookies={'fileToken': token})
28
29 class CSVExport(ExportFormat, http.Controller):
30 _cp_path = '/web/export/csv'
31@@ -1767,6 +1767,6 @@
32 ('Content-Disposition', content_disposition(file_name, req)),
33 ('Content-Type', report_mimetype),
34 ('Content-Length', len(report))],
35- cookies={'fileToken': int(token)})
36+ cookies={'fileToken': token})
37
38 # vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:

Subscribers

People subscribed via source and target branches