#1922 closed defect (fixed)
Test of html Encoding After GET Fails
Reported by: | Zancas | Owned by: | mk.fg |
---|---|---|---|
Priority: | normal | Milestone: | 1.10.0 |
Component: | code-frontend-web | Version: | 1.9.2 |
Keywords: | wui html test | Cc: | |
Launchpad Bug: |
Description
I cloned from:
https://github.com/tahoe-lafs/tahoe-lafs.git
I installed into a virtualenv with:
python ./setup.py install
I initially observed this failure when I ran:
python ./setup.py test
I subsequently replicated it with:
trial allmydata.test.test_web.Web.test_GET_DIRECTORY_html_filenode_encoding
When I used the version of tahoe installed in the above description I was able to up and download an immutable file.
VERSION:
>tahoe --version allmydata-tahoe: 1.9.0.post299 foolscap: 0.6.4 pycryptopp: 0.6.0.1206569328141510525648634803928199668821045408958 zfec: 1.4.24 Twisted: 12.3.0 Nevow: 0.10.0 zope.interface: unknown python: 2.7.3 platform: Linux-Ubuntu_12.04-i686-32bit_ELF pyOpenSSL: 0.13 simplejson: 3.0.7 pycrypto: 2.6 pyasn1: 0.1.6 mock: 1.0.1 setuptools: 0.6 [distribute]
TEST RESULT:
allmydata.test.test_web Web test_GET_DIRECTORY_html_filenode_encoding ... [FAIL] =============================================================================== [FAIL] Traceback (most recent call last): File "/home/arc/tpsrc/tahoe_env/local/lib/python2.7/site-packages/allmydata/test/test_web.py", line 1469, in _check self.failUnlessIn('value="' + self._htmlname_escaped_attr + '"', html) File "/home/arc/tpsrc/tahoe_env/local/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 416, in assertIn % (containee, container)) twisted.trial.unittest.FailTest: 'value="<&weirdly\'named"file>>>_<iframe />.txt"' not in '<html><head>\n <title>Tahoe-LAFS - Directory SI=cumsn (modifiable)</title>\n <link href="/tahoe.css" type="text/css" rel="stylesheet" />\n <link href="/icon.png" rel="shortcut icon" />\n <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />\n</head><body class="tahoe-directory-page">\n\n<h1>Tahoe-LAFS Directory SI=<span class="data-chars">cumsn</span></h1>\n\n<div class="toolbar">\n <div class="toolbar-item"><a href="../../..">Return to Welcome page</a></div>\n <div class="toolbar-item"><a href=".">Refresh</a></div>\n\n <div class="toolbar-item"><a href="?t=info">More info on this directory</a></div>\n <div class="toolbar-item"><a href="../../../uri/URI%3ADIR2-RO%3Abqf6cqeu6fuputicebbt724ijm%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/">Read-Only Version</a></div>\n</div>\n\n<div>\n <table class="tahoe-directory"><tr>\n <th>Type</th>\n <th>Filename</th>\n <th>Size</th>\n <th>Times</th>\n <th></th>\n <th></th>\n <th></th>\n </tr><tr>\n <td>FILE</td>\n <td><a href="../../../file/URI%3ACHK%3A4v2o4utxm6ddbpv6tgd6blfdnu%3Ab2vzclz5kxwagmlwvlaejh7t5gsr4c4gmsfcvw7o3xme6vfp277q%3A3%3A10%3A19/@@named=/%3C%26weirdly%27named%22file%3E%3E%3E_%3Ciframe%20%2F%3E.txt"><&weirdly\'named"file>>>_<iframe />.txt</a></td>\n <td align="right">19</td>\n <td>lcr: 2013-02-20_21:53:11.807217<br />lmo: 2013-02-20_21:53:11.807217</td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="post"><input type="hidden" name="t" value="unlink" /><input type="hidden" name="name" value="<&weirdly\'named"file>>>_<iframe />.txt" /><input type="hidden" name="when_done" value="." /><input type="submit" name="unlink" value="unlink" /></form></td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="get"><input type="hidden" name="t" value="rename-form" /><input type="hidden" name="name" value="<&weirdly\'named"file>>>_<iframe />.txt" /><input type="hidden" name="when_done" value="." /><input type="submit" name="rename" value="rename/move" /></form></td>\n <td><a href="../../../uri/URI%3ACHK%3A4v2o4utxm6ddbpv6tgd6blfdnu%3Ab2vzclz5kxwagmlwvlaejh7t5gsr4c4gmsfcvw7o3xme6vfp277q%3A3%3A10%3A19?t=info">More Info</a></td>\n </tr><tr>\n <td>FILE</td>\n <td><a href="../../../file/URI%3ACHK%3Abbaor23xin5kytzqr6tmz2cciq%3A2gxbmfaavpwtwrhviujoptvfivh7iu474vjr6bmjwnz2ysxsuoia%3A3%3A10%3A19/@@named=/bar.txt">bar.txt</a></td>\n <td align="right">19</td>\n <td>lcr: 2013-02-20_21:53:11.795054<br />lmo: 2013-02-20_21:53:11.795054</td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="post"><input type="hidden" name="t" value="unlink" /><input type="hidden" name="name" value="bar.txt" /><input type="hidden" name="when_done" value="." /><input type="submit" name="unlink" value="unlink" /></form></td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="get"><input type="hidden" name="t" value="rename-form" /><input type="hidden" name="name" value="bar.txt" /><input type="hidden" name="when_done" value="." /><input type="submit" name="rename" value="rename/move" /></form></td>\n <td><a href="../../../uri/URI%3ACHK%3Abbaor23xin5kytzqr6tmz2cciq%3A2gxbmfaavpwtwrhviujoptvfivh7iu474vjr6bmjwnz2ysxsuoia%3A3%3A10%3A19?t=info">More Info</a></td>\n </tr><tr>\n <td>SSK</td>\n <td><a href="../../../file/URI%3ASSK%3Atguarr37j3jwbwubojabljgydy%3Aceuyljqj45xvyzlkegor5y2ef7hj2kb3ornxkazdlxpaolzb6mpq/@@named=/baz.txt">baz.txt</a></td>\n <td align="right">?</td>\n <td>lcr: 2013-02-20_21:53:11.796456<br />lmo: 2013-02-20_21:53:11.796456</td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="post"><input type="hidden" name="t" value="unlink" /><input type="hidden" name="name" value="baz.txt" /><input type="hidden" name="when_done" value="." /><input type="submit" name="unlink" value="unlink" /></form></td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="get"><input type="hidden" name="t" value="rename-form" /><input type="hidden" name="name" value="baz.txt" /><input type="hidden" name="when_done" value="." /><input type="submit" name="rename" value="rename/move" /></form></td>\n <td><a href="../../../uri/URI%3ASSK%3Atguarr37j3jwbwubojabljgydy%3Aceuyljqj45xvyzlkegor5y2ef7hj2kb3ornxkazdlxpaolzb6mpq?t=info">More Info</a></td>\n </tr><tr>\n <td>FILE</td>\n <td><a href="../../../file/URI%3ACHK%3Afcufbvprk4rvigk6ygieeebdfm%3Ajtdlnnzqiecv3xcktwzlznqvysmrmaybt4mracks36sg3nwj4tga%3A3%3A10%3A19/@@named=/blockingfile">blockingfile</a></td>\n <td align="right">19</td>\n <td>lcr: 2013-02-20_21:53:11.804734<br />lmo: 2013-02-20_21:53:11.804734</td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="post"><input type="hidden" name="t" value="unlink" /><input type="hidden" name="name" value="blockingfile" /><input type="hidden" name="when_done" value="." /><input type="submit" name="unlink" value="unlink" /></form></td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="get"><input type="hidden" name="t" value="rename-form" /><input type="hidden" name="name" value="blockingfile" /><input type="hidden" name="when_done" value="." /><input type="submit" name="rename" value="rename/move" /></form></td>\n <td><a href="../../../uri/URI%3ACHK%3Afcufbvprk4rvigk6ygieeebdfm%3Ajtdlnnzqiecv3xcktwzlznqvysmrmaybt4mracks36sg3nwj4tga%3A3%3A10%3A19?t=info">More Info</a></td>\n </tr><tr>\n <td>DIR</td>\n <td><a href="../../../uri/URI%3ADIR2%3Atf3izyfvpoeezcigaiaztmjok4%3A7p37hogm3ibqdl6srup7nqbolkxxnlpjxvylctkgbdasqbwkmtca/">empty</a></td>\n <td align="right">-</td>\n <td>lcr: 2013-02-20_21:53:11.799848<br />lmo: 2013-02-20_21:53:11.799848</td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="post"><input type="hidden" name="t" value="unlink" /><input type="hidden" name="name" value="empty" /><input type="hidden" name="when_done" value="." /><input type="submit" name="unlink" value="unlink" /></form></td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="get"><input type="hidden" name="t" value="rename-form" /><input type="hidden" name="name" value="empty" /><input type="hidden" name="when_done" value="." /><input type="submit" name="rename" value="rename/move" /></form></td>\n <td><a href="../../../uri/URI%3ADIR2%3Atf3izyfvpoeezcigaiaztmjok4%3A7p37hogm3ibqdl6srup7nqbolkxxnlpjxvylctkgbdasqbwkmtca/?t=info">More Info</a></td>\n </tr><tr>\n <td>FILE</td>\n <td><a href="../../../file/URI%3ACHK%3Abbaor23xin5kytzqr6tmz2cciq%3A2gxbmfaavpwtwrhviujoptvfivh7iu474vjr6bmjwnz2ysxsuoia%3A3%3A10%3A19/@@named=/n%C3%BC.txt">n\xc3\xbc.txt</a></td>\n <td align="right">19</td>\n <td>lcr: 2013-02-20_21:53:11.809787<br />lmo: 2013-02-20_21:53:11.809787</td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="post"><input type="hidden" name="t" value="unlink" /><input type="hidden" name="name" value="n\xc3\xbc.txt" /><input type="hidden" name="when_done" value="." /><input type="submit" name="unlink" value="unlink" /></form></td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="get"><input type="hidden" name="t" value="rename-form" /><input type="hidden" name="name" value="n\xc3\xbc.txt" /><input type="hidden" name="when_done" value="." /><input type="submit" name="rename" value="rename/move" /></form></td>\n <td><a href="../../../uri/URI%3ACHK%3Abbaor23xin5kytzqr6tmz2cciq%3A2gxbmfaavpwtwrhviujoptvfivh7iu474vjr6bmjwnz2ysxsuoia%3A3%3A10%3A19?t=info">More Info</a></td>\n </tr><tr>\n <td>SSK</td>\n <td><a href="../../../file/URI%3AMDMF%3A2ycirajxbgrb5wxhfinjwrhsmy%3Apckuct3d5y7eongupy76fuaobubz26v2547lyn2vqmgvposlkgbq/@@named=/quux.txt">quux.txt</a></td>\n <td align="right">?</td>\n <td>lcr: 2013-02-20_21:53:11.797995<br />lmo: 2013-02-20_21:53:11.797995</td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="post"><input type="hidden" name="t" value="unlink" /><input type="hidden" name="name" value="quux.txt" /><input type="hidden" name="when_done" value="." /><input type="submit" name="unlink" value="unlink" /></form></td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="get"><input type="hidden" name="t" value="rename-form" /><input type="hidden" name="name" value="quux.txt" /><input type="hidden" name="when_done" value="." /><input type="submit" name="rename" value="rename/move" /></form></td>\n <td><a href="../../../uri/URI%3AMDMF%3A2ycirajxbgrb5wxhfinjwrhsmy%3Apckuct3d5y7eongupy76fuaobubz26v2547lyn2vqmgvposlkgbq?t=info">More Info</a></td>\n </tr><tr>\n <td>DIR</td>\n <td><a href="../../../uri/URI%3ADIR2%3Apfus7zc3vyn7677mmwc724uydq%3Ag7yt7uybx27hp77p54nqpqonzfqcpzc2avif62xrizprnztqcrkq/">sub</a></td>\n <td align="right">-</td>\n <td>lcr: 2013-02-20_21:53:11.802059<br />lmo: 2013-02-20_21:53:11.802059</td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="post"><input type="hidden" name="t" value="unlink" /><input type="hidden" name="name" value="sub" /><input type="hidden" name="when_done" value="." /><input type="submit" name="unlink" value="unlink" /></form></td>\n <td><form action="../../../uri/URI%3ADIR2%3Adcmuzbsk4rgpnnfgv5ibwsdi7u%3Aha6leiv54ee45xu6lrwkjiuewdo2ynxbtlmaizoj3q6c47s2vvpa/" method="get"><input type="hidden" name="t" value="rename-form" /><input type="hidden" name="name" value="sub" /><input type="hidden" name="when_done" value="." /><input type="submit" name="rename" value="rename/move" /></form></td>\n <td><a href="../../../uri/URI%3ADIR2%3Apfus7zc3vyn7677mmwc724uydq%3Ag7yt7uybx27hp77p54nqpqonzfqcpzc2avif62xrizprnztqcrkq/?t=info">More Info</a></td>\n </tr></table>\n</div>\n\n<div class="tahoe-directory-footer">\n <div class="freeform-form"><form action="." method="post" enctype="multipart/form-data"><fieldset><input type="hidden" name="t" value="mkdir" /><input type="hidden" name="when_done" value="." /><legend class="freeform-form-label">Create a new directory in this directory</legend>New directory name:\xc2\xa0\xc2\xa0<input type="text" name="name" />\xc2\xa0\xc2\xa0<input type="submit" value="Create" />\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<input checked="checked" type="radio" id="mkdir-sdmf" value="sdmf" name="format" /><label for="mutable-directory-sdmf"> SDMF</label>\xc2\xa0\xc2\xa0<input type="radio" id="mkdir-mdmf" value="mdmf" name="format" /><label for="mutable-directory-mdmf"> MDMF (experimental)</label></fieldset></form></div><div class="freeform-form"><form action="." method="post" enctype="multipart/form-data"><fieldset><input type="hidden" name="t" value="upload" /><input type="hidden" name="when_done" value="." /><legend class="freeform-form-label">Upload a file to this directory</legend>Choose a file to upload:\xc2\xa0\xc2\xa0<input type="file" class="freeform-input-file" name="file" />\xc2\xa0\xc2\xa0<input type="submit" value="Upload" />\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<input checked="checked" type="radio" id="upload-chk" value="chk" name="format" /><label for="upload-chk"> Immutable</label>\xc2\xa0\xc2\xa0<input type="radio" id="upload-sdmf" value="sdmf" name="format" /><label for="upload-sdmf"> SDMF</label>\xc2\xa0\xc2\xa0<input type="radio" id="upload-mdmf" value="mdmf" name="format" /><label for="upload-mdmf"> MDMF (experimental)</label></fieldset></form></div><div class="freeform-form"><form action="." method="post" enctype="multipart/form-data"><fieldset><input type="hidden" name="t" value="uri" /><input type="hidden" name="when_done" value="." /><legend class="freeform-form-label">Add a link to a file or directory which is already in Tahoe-LAFS.</legend>New child name:\xc2\xa0\xc2\xa0<input type="text" name="name" />\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0URI of new child:\xc2\xa0\xc2\xa0<input type="text" name="uri" />\xc2\xa0\xc2\xa0<input type="submit" value="Attach" /></fieldset></form></div>\n\n \n</div>\n\n</body></html>' allmydata.test.test_web.Web.test_GET_DIRECTORY_html_filenode_encoding ------------------------------------------------------------------------------- Ran 1 tests in 0.063s FAILED (failures=1)
Change History (12)
comment:1 Changed at 2013-02-21T06:35:02Z by Zancas
comment:2 Changed at 2013-02-22T06:06:29Z by davidsarah
- Component changed from unknown to code-frontend-web
- Keywords wui html test added
- Milestone changed from undecided to 1.10.0
- Owner changed from davidsarah to MK_FG
This test was added in https://github.com/tahoe-lafs/tahoe-lafs/commit/1df7f114b7094dab8d7ffea8b390b10c0070b0fd in order to test the fix for #1143. Assigning to MK_FG who wrote that code.
comment:3 Changed at 2013-02-22T06:13:21Z by davidsarah
- Owner changed from MK_FG to mk.fg
comment:4 Changed at 2013-02-25T18:37:51Z by davidsarah
Zancas, can you run bin/tahoe --version-and-path to see which versions of dependencies (particularly Nevow) are being used?
comment:5 Changed at 2013-02-25T20:15:52Z by Zancas
This is the output from running "--version-and-path". The format is PROMPT \n OUTPUT \n PROMPT. My PROMPTs start with "(tahoe_env)" and end with ">COMMAND(S)" on the following line:
(tahoe_env)0 b:master /home/arc/tpsrc/tahoe_env : >which tahoe /home/arc/tpsrc/tahoe_env/bin/tahoe (tahoe_env)0 b:master /home/arc/tpsrc/tahoe_env : >tahoe --version-and-path allmydata-tahoe: 1.9.0.post299 (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages) foolscap: 0.6.4 (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages) pycryptopp: 0.6.0.1206569328141510525648634803928199668821045408958 (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages) zfec: 1.4.24 (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages) Twisted: 12.3.0 (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages) Nevow: 0.10.0 (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages) zope.interface: unknown (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages/zope) python: 2.7.3 (/home/arc/tpsrc/tahoe_env/bin/python) platform: Linux-Ubuntu_12.04-i686-32bit_ELF (None) pyOpenSSL: 0.13 (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages) simplejson: 3.0.7 (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages) pycrypto: 2.6 (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages) pyasn1: 0.1.6 (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages) mock: 1.0.1 (/home/arc/tpsrc/tahoe_env/lib/python2.7) setuptools: 0.6 [distribute] (/home/arc/tpsrc/tahoe_env/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg) (tahoe_env)0 b:master /home/arc/tpsrc/tahoe_env : >
comment:6 Changed at 2013-02-25T21:09:32Z by davidsarah
Hmm, that's the same version of Nevow as me (and I don't get this test failure), which rules out one possibility.
comment:7 Changed at 2013-02-25T21:12:07Z by davidsarah
I can reproduce with Twisted 12.3.0, but not with 12.2.0.
To confirm that, please set the Twisted dependency in src/allmydata/_auto_deps.py to "Twisted == 12.2.0", then make clean before running tests again.
comment:8 Changed at 2013-02-25T21:41:19Z by Zancas
Per Zooko's request:
(tahoe_env)0 b:master /home/arc/tpsrc/tahoe_env : >python allmydata-tahoe-1.9.0.post373/misc/build_helpers/show-tool-versions.py | grep -i 'charset\|enco\|locale' locale: LANG=en_CA.UTF-8 LANGUAGE=en_CA:en LC_CTYPE="en_CA.UTF-8" LC_NUMERIC="en_CA.UTF-8" LC_TIME="en_CA.UTF-8" LC_COLLATE="en_CA.UTF-8" LC_MONETARY="en_CA.UTF-8" LC_MESSAGES="en_CA.UTF-8" LC_PAPER="en_CA.UTF-8" LC_NAME="en_CA.UTF-8" LC_ADDRESS="en_CA.UTF-8" LC_TELEPHONE="en_CA.UTF-8" LC_MEASUREMENT="en_CA.UTF-8" LC_IDENTIFICATION="en_CA.UTF-8" LC_ALL= filesystem.encoding: UTF-8 locale.getpreferredencoding: UTF-8 locale.defaultlocale: ('en_CA', 'UTF-8') locale.locale: (None, None) (tahoe_env)0 b:master /home/arc/tpsrc/tahoe_env : >
comment:9 Changed at 2013-02-27T17:34:00Z by mk.fg
twisted.web.html.escape was used to produce html-encoded string (to then look it up in "value" attribute), but behavior of that function has changed between Twisted 12.2.0 (simple custom implementation) and 12.3.0 (imported from stdlib cgi module). cgi.escape() requires quote=True parameter to escape double-quote characters.
Fixed now in 1922_fix_test_web_test_GET_DIRECTORY_html_filenode_encoding branch (non-official repo), github pull request #31 by simply using reliable cgi.escape to produce html-escaped string for tests.
Pretty sure I used twisted.web.html.escape because Nevow also used it, but looks like currently it properly quotes attribute values, so guess different func is used for attributes there.
comment:10 Changed at 2013-02-28T04:35:03Z by davidsarah
- Resolution set to fixed
- Status changed from new to closed
+1. Committed as https://github.com/tahoe-lafs/tahoe-lafs/commit/0f499873b043f6e6df86121564b84783b0444fb5 with no changes.
comment:11 Changed at 2013-02-28T04:37:14Z by davidsarah
Thanks mk.fg. Zancas, please check that current trunk works for you.
comment:12 Changed at 2013-03-04T20:50:07Z by Zancas
>trial allmydata.test.test_web.Web.test_GET_DIRECTORY_html_filenode_encoding allmydata.test.test_web Web test_GET_DIRECTORY_html_filenode_encoding ... [OK] ------------------------------------------------------------------------------- Ran 1 tests in 0.065s PASSED (successes=1)
I piped the test output into a file and tried to get more information from the long html string.
I ran the following on the html from the assertion:
I got the following result:
I may dig deeper later. The next obvious step is to find the value of "self" in this context.