Skip to content

bpo-43913: Fix unittest module cleanup#25700

Closed
miguendes wants to merge 4 commits intopython:mainfrom
miguendes:bpo-43913
Closed

bpo-43913: Fix unittest module cleanup#25700
miguendes wants to merge 4 commits intopython:mainfrom
miguendes:bpo-43913

Conversation

@miguendes
Copy link
Copy Markdown
Contributor

@miguendes miguendes commented Apr 28, 2021

This is my my attempt to fix the bug described in https://bugs.python.org/issue43913

https://bugs.python.org/issue43913

@the-knights-who-say-ni
Copy link
Copy Markdown

Hello, and thanks for your contribution!

I'm a bot set up to make sure that the project can legally accept this contribution by verifying everyone involved has signed the PSF contributor agreement (CLA).

Recognized GitHub username

We couldn't find a bugs.python.org (b.p.o) account corresponding to the following GitHub usernames:

@miguendes

This might be simply due to a missing "GitHub Name" entry in one's b.p.o account settings. This is necessary for legal reasons before we can look at this contribution. Please follow the steps outlined in the CPython devguide to rectify this issue.

You can check yourself to see if the CLA has been received.

Thanks again for the contribution, we look forward to reviewing it!

previousModule)
finally:
_call_if_exists(result, '_restoreStdout')
try:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it also be called in this finally block? That's the previous behavior, and I imagine it could be important to ensure it's called even when tearDownModule() raises a BaseException.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the suggestion. I think this is not need TBH, my understanding it that the finally block will be executed anyways in case of a Exception and, since _call_if_exists doesn't return, the clean up is done in the following steps.

Regarding the BaseException, yes, if tearDownModule raises it no doModuleCleanups is performed.

I think it's a good idea to catch it but for consistency we should change setUpClass as well. What do you think?

    setUpClass = getattr(currentClass, 'setUpClass', None)
    if setUpClass is not None:
        _call_if_exists(result, '_setupStdout')
        try:
            setUpClass()
        except Exception as e:
            if isinstance(result, _DebugResult):
                raise`

miguendes and others added 2 commits May 4, 2021 08:04
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
@python python deleted a comment May 4, 2021
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jun 4, 2021

This PR is stale because it has been open for 30 days with no activity.

@github-actions github-actions bot added the stale Stale PR or inactive for long period of time. label Jun 4, 2021
@ambv
Copy link
Copy Markdown
Contributor

ambv commented Aug 30, 2021

Closing in favor of GH-28006.

@ambv ambv closed this Aug 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting review stale Stale PR or inactive for long period of time.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants