Hi,

I created this PR to remove TestCase.defer{SetUp, TestMethod, TearDown, 
RunCleanups} methods: https://github.com/twisted/twisted/pull/12389

The justification is as follows:

Currently `TestCase` has the following functions that are presumably public due 
to their naming: `deferSetUp`, `deferTestMethod`, `deferRunCleanups` and 
`deferTearDown`. This raises a few problems. I suggest removing the functions 
without deprecation period due to the following reasons:

 - these functions expose so much of the internal structure of TestCase that it 
makes the code hard to change (e.g. 
https://github.com/twisted/twisted/pull/12375 cannot go in)

 - there is no case where the functions would be useful as an extension point. 
The only use of the functions that I found using Github code search is my own 
code in the Buildbot project which overrides `deferRunCleanups` and hooks even 
deeper into TestCase internals.

 - the API is not "public ready" (i.e. the `ignored` parameter) - it seems as 
if they were some kind of internal thing that simply didn't get the `_` prefix.

 - deprecation would be harder to implement than usual, due to the functions 
being supposed to be overridden, not just called.

 - this is API for tests, so it is not likely to break functionality that is 
used in production. Only development workflows may be affected where the fix is 
to update the tests.

Given the above - small risk of breaking code for someone and relatively high 
costs for going through the deprecation dance I would suggest to have an 
exception for this change and allow to remove the functions without deprecation 
period.

If you have any objections and you think that the functions should stay or at 
least be removed via deprecation please let me know.

You can send your feedback by replying to this email or add your comment to the 
PR

https://github.com/twisted/twisted/pull/12389

Thanks for your time!

Regards,
Povilas
_______________________________________________
Twisted mailing list -- twisted@python.org
To unsubscribe send an email to twisted-le...@python.org
https://mail.python.org/mailman3/lists/twisted.python.org/
Message archived at 
https://mail.python.org/archives/list/twisted@python.org/message/QOHSOCN45LI7YG4WZS3SYNMT73I3ZJVL/
Code of Conduct: https://twisted.org/conduct

Reply via email to