All right, how did things go today? Well, I did a bit of work with error cases, then cleaned up some of the parameter id stuff so that the test names aren't excessively long. Now, I'm looking back at the coverage data.
It looks like the major avenues I can take are to focus on error cases, or on expected cases. The issue with the expected cases is that doing that is going to require writing more code to work with the external interface. (Under the logic that it makes sense to not know how to hit the error cases given reasonable input, but that expected cases should focus on the external interfaces when possible.) But that means looking at the existing tests and figuring out what kinds of rewrites they need.
Let's see if I can find anything promising in the error cases to knock out quickly.
Mmm, there's just so much that would do better given high-level tests, so let's see what shortcomings I can identify in the flake8 tests...
- Need to explicitly call pyrsistent.v
- Need to explicitly retrieve Invocation class
- Need to combine flake8.BASE with compatible Static[Option] objects
- Need to explicitly call invoke()
If I can write a helper class that addresses those issues, I'll be able to rewrite the flake8 tests to look nicer, and I'll feel comfortable writing tests for, say, mypy, which should shake out a lot of the issues with the tests. The other issue I can see with the tests could be addressed by writing some helper functions/classes to factor out common test code.
I'll try to get on these ideas tomorrow. For now, I want to get ready for bed.