improve coverage
fix some reports by pylint
split test cases