Steven D'Aprano <[email protected]> added the comment:
At a quick glance, I am 95% sure the problem lies in these two snippets of your
code, not unittest:
class My_Time:
months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if is_leapyr(year):
my_time.months[1] = 29
The first snippet makes months, a mutable list, a class attribute, which means
it is shared by all instances of the class. The second snippet mutates that
list, which means every single instance will see the same value.
So commenting out some tests will change whether or not the shared list gets
mutated, which will change whether or not other tests pass or fail.
I think the smallest change you need make to fix your code is to put the
initialisation of My_Time into an `__init__` method, so that the attributes
(including the list) are no longer shared between all instances.
class My_Time:
def __init__(self):
...
----------
nosy: +steven.daprano
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue45827>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com