174: pseudo-TDD - Paul Ganssle
In this episode, I talk with Paul Ganssle about a fun workflow that he calls pseudo-TDD.
Pseudo-TDD is a way to keep your commit history clean and your tests passing with each commit.
This workflow includes using pytest xfail and some semi-advanced version control features.
Pseudo-TDD is a way to keep your commit history clean and your tests passing with each commit.
This workflow includes using pytest xfail and some semi-advanced version control features.
Some strict forms of TDD include something like this:
- write a failing test that demonstrates a lacking feature or defect
- write the source code to get the test to pass
- refactor if necessary
- repeat
In reality, at least for me, the software development process is way more messy than this, and not so smooth and linear.
Pauls workflow allow you to develop non-linearly, but commit cleanly.
Links:
- A pseudo-TDD workflow using expected failures
- episode 171: How and why I use pytest's xfail - Paul Ganssle
- episode 165: pytest xfail policy and workflow
- episode 162: Flavors of TDD
Learn pytest
- pytest is the number one test framework for Python.
- Learn the basics super fast with Hello, pytest!
- Then later you can become a pytest expert with The Complete pytest Course
- Both courses are at courses.pythontest.com
Creators and Guests

Guest
Paul Ganssle
Programmer working @Google in NYC. Maintainer of python-dateutil, Python core developer and general FOSS contributor.
