Re: [Nevow-commits] r740 - Refactor urlToChild API to avoid passing superfluous data (#1 from issue 121).
I believe this change is wrong: prePathURL() changes. setupSession has to use the prePathURL in place when guard's locateChild() is called, not the one in place at the time some other resource calls setupSession(). James On Oct 22, 2004, at 11:02 AM, <mg@divmod.net> wrote:
Refactor urlToChild API to avoid passing superfluous data (#1 from issue 121).
James Y Knight wrote:
Refactor urlToChild API to avoid passing superfluous data (#1 from issue 121). I believe this change is wrong: prePathURL() changes. setupSession has to use the prePathURL in place when guard's locateChild() is called, not the one in place at the time some other resource calls setupSession().
In theory, I believe you are right (and that particular patch can easily be reverted without really affecting rest of the issue, it was cleanup-only). In practise, is request.setupSession really wanted? Noone seems to be calling it, and commenting out the two lines that set it causes no unit tests to fail. I formally request you write unit tests for it if you want to keep it. If you can write a test that fails due to changing prePathURL, I'll happily make it work again. [0 tv@tao ~/src/nevow/upstream]$ grapple setupSession nevow/guard.py:186: request.setupSession = lambda : self.createSession(request, segments=[]) nevow/guard.py:200: request.setupSession = lambda : self.createSession(request, segments) nevow/context.py:329:toSetOnRequest = ['args', 'content', 'fields', 'isSecure', 'method', 'path', 'postpath', 'prepath', 'receieved_headers', 'setupSession', 'session', 'uri'] examples/userdb.tac:312: def setupSession(self, ctx): examples/userdb.tac:318: self.setupSession(ctx) examples/userdb.tac:322: self.setupSession(ctx) # matches: 6 # matching-files: 3 [0 tv@tao ~/src/nevow/upstream]$ The examples/userdb.tac seems to be an unrelated function that just happens to have the same name. [0 tv@tao ~/src/twisted/stable]$ grapple setupSession twisted/web/woven/guard.py:207: request.setupSessionURL = setupURL twisted/web/woven/guard.py:208: request.setupSession = lambda: Redirect(setupURL) twisted/web/woven/guard.py:316: return request.setupSession() twisted/web/woven/guard.py:417: return request.setupSession() # matches: 4 # matching-files: 1 [0 tv@tao ~/src/twisted/stable]$ So woven calls it. Whoppee. I see no reason for nevow guard to try to be compatible with woven guard.
participants (2)
-
James Y Knight
-
Tommi Virtanen