Re: [Zope-dev] zope.formlib's action decorator return Action() object, not the decorated function. Why?

2012-09-18 Thread Jan-Wijbrand Kolman
On 9/16/12 07:28 , Marius Gedminas wrote:
 On Fri, Sep 14, 2012 at 01:44:30PM +0200, Jan-Wijbrand Kolman wrote:
 The reason I came across this issue is trying to improve the test
 coverage of the application I'm building somewhat closer to 100% and
 found that the form actions implementation *appeared* not to be covered
 at all - even if there clearly are tests for these.
 
 How are you measuring coverage?

The coverage reports as generated by the zope.testrunner ``--coverage``
option, then z3c.coverage to render the reports into html.

 How are you testing the handlers?

In this specific case, I noticed the handlers seemed not be called
(according to the coverage report) when using a test browser
submitting a form.

But I didn't try anything else just yet except for running that test
again with a patched zope.formlib - where the decorated would return the
function - and then the coverage was up :-)

 I'm asking because I haven't encountered this issue in my projects --
 form action handlers show up in my test coverage just fine.
 
 I tried having the decorator just returning the function, and at least
 all zope.formlib's tests themselves do pass.

 Would anyone mind if I would change the behaviour of the decorator?
 
 I have unit tests that invoke view.handle_foo_button.handler() directly,
 because they assume zope.formlib's @action replaces the
 handle_foo_button method with an Action.  Your change would break my
 tests, but they would be trivial to fix, so my vote would be -0, with
 the request of a larger version bump to indicate backwards-incompatibility.

Ok, clear.

Thanks for the feedback!

regards, jw

___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] zope.formlib's action decorator return Action() object, not the decorated function. Why?

2012-09-18 Thread Jan-Wijbrand Kolman
On 9/16/12 09:38 , Wichert Akkerman wrote:
 On Sep 16, 2012, at 07:28, Marius Gedminas mar...@gedmin.as wrote:
 
 On Fri, Sep 14, 2012 at 01:44:30PM +0200, Jan-Wijbrand Kolman wrote:
 After years and years of heavily using zope.formlib it suddenly struck
 me that the zope.formlib.form.action decorator returns an Action()
 object instead of the decorated function (this action object is also
 added to the form's actions sequence as a side effect of the decorator).

 I know wonder: Why?

 (I've no clue.)
 
 Another effect of this is probably that you can use sphinx's autodoc for 
 actions which would be unfortunate.

Ah, good catch. Didn't think of that yet...
regards, jw


___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] zope.formlib's action decorator return Action() object, not the decorated function. Why?

2012-09-16 Thread Wichert Akkerman
On Sep 16, 2012, at 07:28, Marius Gedminas mar...@gedmin.as wrote:

 On Fri, Sep 14, 2012 at 01:44:30PM +0200, Jan-Wijbrand Kolman wrote:
 After years and years of heavily using zope.formlib it suddenly struck
 me that the zope.formlib.form.action decorator returns an Action()
 object instead of the decorated function (this action object is also
 added to the form's actions sequence as a side effect of the decorator).
 
 I know wonder: Why?
 
 (I've no clue.)

Another effect of this is probably that you can use sphinx's autodoc for 
actions which would be unfortunate.

Wichert.
___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] zope.formlib's action decorator return Action() object, not the decorated function. Why?

2012-09-15 Thread Marius Gedminas
On Fri, Sep 14, 2012 at 01:44:30PM +0200, Jan-Wijbrand Kolman wrote:
 After years and years of heavily using zope.formlib it suddenly struck
 me that the zope.formlib.form.action decorator returns an Action()
 object instead of the decorated function (this action object is also
 added to the form's actions sequence as a side effect of the decorator).
 
 I know wonder: Why?

(I've no clue.)

 I cannot find a use case for wanting the action object added to the
 class members under the name of the decorated function. But maybe there is?
 
 The reason I came across this issue is trying to improve the test
 coverage of the application I'm building somewhat closer to 100% and
 found that the form actions implementation *appeared* not to be covered
 at all - even if there clearly are tests for these.

How are you measuring coverage?

How are you testing the handlers?

I'm asking because I haven't encountered this issue in my projects --
form action handlers show up in my test coverage just fine.

 I tried having the decorator just returning the function, and at least
 all zope.formlib's tests themselves do pass.
 
 Would anyone mind if I would change the behaviour of the decorator?

I have unit tests that invoke view.handle_foo_button.handler() directly,
because they assume zope.formlib's @action replaces the
handle_foo_button method with an Action.  Your change would break my
tests, but they would be trivial to fix, so my vote would be -0, with
the request of a larger version bump to indicate backwards-incompatibility.

Marius Gedminas
-- 
http://pov.lt/ -- Zope 3/BlueBream consulting and development


signature.asc
Description: Digital signature
___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )


[Zope-dev] zope.formlib's action decorator return Action() object, not the decorated function. Why?

2012-09-14 Thread Jan-Wijbrand Kolman
Hi,

After years and years of heavily using zope.formlib it suddenly struck
me that the zope.formlib.form.action decorator returns an Action()
object instead of the decorated function (this action object is also
added to the form's actions sequence as a side effect of the decorator).

I know wonder: Why?

I cannot find a use case for wanting the action object added to the
class members under the name of the decorated function. But maybe there is?

The reason I came across this issue is trying to improve the test
coverage of the application I'm building somewhat closer to 100% and
found that the form actions implementation *appeared* not to be covered
at all - even if there clearly are tests for these.

I tried having the decorator just returning the function, and at least
all zope.formlib's tests themselves do pass.

Would anyone mind if I would change the behaviour of the decorator?

Kind regards, jw



___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )