Chapter 8. Pytest for DevOps
Continuous integration, continuous delivery, deployments, and any pipeline workflow in general with some thought put into it will be filled with validation. This validation can happen at every step of the way and when achieving important objectives.
For example, if in the middle of a long list of steps to produce a deployment, a curl
command is called to get an all-important file, do you think the build should continue if it fails? Probably not! curl
has a flag that can be used to produce a nonzero exit status (--fail
) if an HTTP error happens. That simple flag usage is a form of validation: ensure that the request succeeded, otherwise fail the build step. The key word is to ensure that something succeeded, and that is at the core of this chapter: validation and testing strategies that can help you build better infrastructure.
Thinking about validation becomes all the more satisfying when Python gets in the mix, harnessing testing frameworks like pytest
to handle the verification of systems.
This chapter reviews some of the basics associated with testing in Python using the phenomenal pytest
framework, then dives into some advanced features of the framework, and finally goes into detail about the TestInfra project, a plug-in to pytest
that can do system verification.
Testing Superpowers with pytest
We canât say enough good things about the pytest
framework. Created by Holger Krekel, it is now maintained by quite a few people that do an incredible ...
Get Python for DevOps now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.