Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Python is a community-operated project. It grows, changes, and improves only as fast as its volunteer contributors[23] are able to commit patches. Patches can be as small as a one-line fix to documentation. As some people leave the project, others step in to take their places, and this continuous cycle of new developers and casual submitters is what keeps Python alive.[24] Thus the project’s very existence depends on keeping the barriers to entry low so that those who have a limited interest in contributing to Python aren’t scared away.
Comprehensive tests not only protect Python against mistakes that could be made by new contributors who are unfamiliar with the code base, it also helps lower the barrier to entry for these new contributors. It is much more reassuring to make a change to a complex code base if you’re able to run tests against your change and satisfy yourself that your change did not break anything. When you make a change, you can just run the test suite, and if it passes, you can be reasonably sure that you didn’t break other parts of the system. This can be used not only when committing, but also during development: make a small change, run the tests, write a bit more, run the tests again. Changes that cause tests to fail are rolled back.