So with a Singleton what you can do at least in Java land is have your service invoke the method to get the Singleton semi-global object.
So you can mock that method invocation to return a different object. So you basically have the local object to play with in your test and won't be affecting any actual real global state
But basically the article was just saying just use global variables. Does python have a means for then intercepting the value request and data assignments for that global variable for the local scope of the testing code? Or is it hardwired like a global variable, presumably is?
In python test library, you have something called 'monkeypatch' that allows you to intercept calls to specific functions or classes and set the response yourself (I mostly use it to mock API responses tbh but it can do a lot more, an really complex operations). Monkeypatch only operate in the scope of the function or file it's written in (I think. I only remember using it in unit test functions).