[New-bugs-announce] [issue42535] unittest.patch confuses modules with base modules

Tymek Wołodźko report at bugs.python.org
Wed Dec 2 06:14:10 EST 2020

New submission from Tymek Wołodźko <twolodzko at gmail.com>:

Nonetheless having several attempts, I wasn't able to create reproducible example for this bug, but I will try describing it in detail.

I have a package with multiple modules. One of the paths is like `mymodule.nestedmodule.io`, among other functions, this module contains functions `foo()` and `bar()`, where `bar()` does call `foo()`. The module *does not* import base python's `io` module. I have a unit test that patches:

with path('mymodule.nestedmodule.io.foo'):

The problem is, when running the test I get the following error: `AttributeError: <module 'io' from '/usr/local/lib/python3.7/io.py'> does not have the attribute 'foo'`. The problem is solved when I rename `io` to `myio` and correct all the paths to use the new name.

components: Library (Lib)
messages: 382303
nosy: twolodzko
priority: normal
severity: normal
status: open
title: unittest.patch confuses modules with base modules
type: behavior
versions: Python 3.7

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list