I recently began to make heavy use of py.test in my day-to-day Python development. It's a wonderful tool, but I won't explain to you every features it provides and why it's awesome. Instead, I'll explain how I managed to cleanly externalize the data used for my tests in external files (that can be of any format: yaml, json, python files). The idea here is to separate the code that performs the test, from the input data used to perform the test.
There are comments.