I've noticed that in the coverage for test_isoparser, lines 375, 447 and 449 are not being hit. I can't tell if this means that the tests aren't being run against both bytes and str or if it means that I have unnecessary if conditions in the tests.
If the former, we need to make sure tests are being run against bytes and str. If the latter, we can remove the unnecessary branches.
The parts that are not covered because they are under an xfail can have #pragma: no cover added to them, as can the error handling lines in the test generation part.