Of course, but when indentation has a syntactic meaning the formatter often won’t be able to fix it.
Of course, but when indentation has a syntactic meaning the formatter often won’t be able to fix it.
It’s probably more prone to mistakes like that, true. But in practice I really never witnessed this actually being a problem. Especially with tests and review.
Yeah, that’s definitely a good point. But it’s a minor thing. Adjusting indentation takes 2 keystrokes in vim, I barely notice it.
So I’m going to say what I always say when people complain about semantic whitespace: Your code should be properly indented anyway. If it’s not, it’s a bad code.
I’m not saying semantic whitespace is superior to brackets or parentheses. It’s clearly not. But it’s not terrible either.
As someone who codes in Python pretty much everyday for years, I NEVER see indentation errors. I didn’t see them back when I started either. Code without indentation is impossible to read for me anyway so it makes zero difference whether the whitespace has semantic meaning or not. It will be there either way.
Man, I’m just chilling and relaxing after a week of SE work and this resonates with me very deeply
Since you have all your
shutil.copytree
s andsys.path
manipulation at the top level of the test modules, they are executed the moment those modules are imported.unittest
likely imports all discovered test modules before actually executing the tests so the set up of both modules is executed in random order before the tests are run. The correct way to perform test setup is usingsetUp
andsetUpClass
methods ofunittest.TestCase
. Their counterpartstearDown
andtearDownClass
are used to clean up after tests. You probably will be able to get this to work somehow using those methods.However, I’m fairly certain that this entire question is an example of the XY problem and you should be approaching this whole thing differently. Copying the modules and their mock dependencies into a temporary directory and manipulating
sys.path
seems like an absolute nightmare and it will be a massive PITA even if you get it to a working state. I don’t know what problem exactly you’re trying to solve but I think you should really read up onunittest.mock
and even more importantly on dependency injection.