This year at EuroPython (and not only there), I gave a talk about Test Driven Development of Python microservices. I guess you can check it out, if you’re into that kind of stuff. It’s also available in Polish.
I got tired of having to manually build and upload my library (Mountepy) to PyPI, so I decided to do what any sane programmer would do - set up automation 1. But how would my scripts know whether they need to just update the README on PyPI and when to assemble and push a new version of the library? Thanks to the AngularJS commit convention! Oh, and Snap CI will run the whole thing. Why Snap, you ask? See my previous article - Choosing a CI service for your open-source project.
I host my code on GitHub, as probably many or you do 1. The easiest way to have it automatically tested in a clean environment (what everyone should do) is, of course, to use one of the hosted CI services integrated with GitHub.