view website/issues/html/user.help.html @ 5653:ba67e397f063

Fix string/bytes issues under python 3. 1) cgi/client.py: override cgi.FieldStorage's make_file so that file is always created in binary/byte mode. This means that json (and xml) are bytes not strings. 2) rest.py: try harder to find dicttoxml in roundup directory or on sys.path. This just worked under python 2 but python 3 only searches sys.path by default and does not search relative like python 2. 3) rest.py: replace headers.getheader call removed from python 3 with equivalent code. 4) rest.py: make value returned from dispatch into bytes not string. 5) test/caseinsensitivedict.py, test/test_CaseInsensitiveDict.py: get code from stackoverflow that implements a case insensitive key dict. So dict['foo'], dict['Foo'] are the same entry. Used for looking up headers in mocked http rewuset header array. 6) test/rest_common.py: rework tests for etags and rest to properly supply bytes to the called routines. Calls to s2b and b2s and use of BytesIO and overriding make_file in cgi.FieldStorage to try to make sure it works under python 3.
author John Rouillard <rouilj@ieee.org>
date Sun, 17 Mar 2019 19:28:26 -0400
parents c2d0d3e9099d
children 53e9694788f5
line wrap: on
line source

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html tal:define="property request/form/property/value;
qs request/env/QUERY_STRING;
qs python:'&'.join([a for a in qs.split('&') if not a.startswith('@template=')]);
form request/form/form/value;
field request/form/property/value">
  <head>
      <link rel="stylesheet" type="text/css" href="@@file/style.css" />
      <meta http-equiv="Content-Type"
       tal:attributes="content string:text/html;; charset=${request/client/charset}" />
      <tal:block tal:condition="python:request.form.has_key('property')">
      <title><tal:x i18n:translate=""><tal:x i18n:name="property"
       tal:content="property" i18n:translate="" /> help - <span i18n:name="tracker"
	       tal:replace="config/TRACKER_NAME" /></tal:x></title>
      <script language="Javascript" type="text/javascript"
	      tal:condition=false
          tal:content="structure string:<!--
          // this is the name of the field in the original form that we're working on
          form  = window.opener.document.${form};
          field  = '${field}';
          //-->">
      </script>
      <script src="@@file/help_controls.js"
     tal:condition=false type="text/javascript"><!--
      //--></script>
      </tal:block>
  </head>
<frameset rows="123,*,62">
  <frame src="#" tal:attributes="src string:?@template=help-search&${qs}" name="search">
  <!-- for search results: help-list -->
  <frame
  tal:attributes="src string:?@template=help-empty&${qs}"
  name="list">
  <frame
  tal:attributes="src string:?@template=help-submit&${qs}"
  name="submit">
  <!-- -->
</frameset>
<noframes>
  <body>
<p i18n:translate="">
Your browser is not capable of using frames; you should be redirected immediately,
or visit <a href="#" tal:attributes="href string:?${qs}&template=help-noframes"
i18n:name="link">this link</a>.
</p>
</body>
</noframes>

</html>

Roundup Issue Tracker: http://roundup-tracker.org/