Python coverage reporting has been doing my head in for days. Methods with full coverage still showed the method signature line itself as uncovered. Lines which I know are covered (and can see the unittest working) still showed as red. Turns out I'd left an import of the module-under-test in place before starting coverage itself. Fix that and suddenly my code coverage goes from <50% to a more respectable 80%. Sometimes the solution to a problem is as simple as moving a line of code...