]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commit
CLI: rework webopen, and moreover its tests w.r.t. path handling
authorrobk-tahoe <robk-tahoe@allmydata.com>
Wed, 24 Sep 2008 16:45:23 +0000 (09:45 -0700)
committerrobk-tahoe <robk-tahoe@allmydata.com>
Wed, 24 Sep 2008 16:45:23 +0000 (09:45 -0700)
commited9873c2a9dc7315b661d830fdd03dd6dcef0930
tree8c1923e706736e12d9698b0f339d6a2d6ee5de5a
parent2c9a854f10243fe55509f1cd45b1fa1a6e4b04bf
CLI: rework webopen, and moreover its tests w.r.t. path handling

in the recent reconciliation of webopen patches, I wound up adjusting
webopen to 'pass through' the state of the trailing slash on the given
argument to the resultant url passed to the browser.  this change
removes the requirement that arguments must be directories, and allows
webopen to be used with files.  it also broke the tests that assumed
that webopen would always normalise the url to have a trailing slash.

in fixing the tests, I realised that, IMHO, there's something deeply
awry with the way tahoe handles paths; specifically in the combination
of '/' being the name of the root path within an alias, but a leading
slash on paths, e.g. 'alias:/path', is catagorically incorrect. i.e.
 'tahoe:' == 'tahoe:/' == '/'
but 'tahoe:/foo' is an invalid path, and must be 'tahoe:foo'

I wound up making the internals of webopen simply spot a 'path' of
'/' and smash it to '', which 'fixes' webopen to match the behaviour
of tahoe's path handling elsewhere, but that special case sort of
points to the weirdness.

(fwiw, I personally found the fact that the leading / in a path was
disallowed to be weird - I'm just used to seeing paths qualified by
the leading / I guess - so in a debate about normalising path handling
I'd vote to include the /)
src/allmydata/scripts/cli.py
src/allmydata/scripts/tahoe_webopen.py
src/allmydata/test/test_cli.py