pyt icon indicating copy to clipboard operation
pyt copied to clipboard

Improve test coverage from 91% to 100%

Open KevinHock opened this issue 6 years ago • 0 comments

Test coverage is always important, and my goal is to eventually be at 100%. I'll be sure to do this for PRs from now on, or at least try to, but there is some existing code that is not yet covered.

The good thing is that all files have existing tests, tests for __main__.py for example can be found in the main_test.py file.

By running make test you can see where we aren't yet at 100%:

py36 runtests: commands[3] | coverage report --include=pyt/* --fail-under 91
Name                                                Stmts   Miss  Cover   Missing
---------------------------------------------------------------------------------
pyt/__init__.py                                         0      0   100%
pyt/__main__.py                                        68     13    81%   45, 55-57, 70-71, 83, 86, 105-108, 129
pyt/analysis/constraint_table.py                        9      0   100%
pyt/analysis/definition_chains.py                      16      0   100%
pyt/analysis/fixed_point.py                            21      0   100%
pyt/analysis/lattice.py                                31      0   100%
pyt/analysis/reaching_definitions_taint.py             27      0   100%
pyt/cfg/__init__.py                                     2      0   100%
pyt/cfg/alias_helper.py                                33      0   100%
pyt/cfg/expr_visitor.py                               212     20    91%   70, 99-100, 111-122, 131, 136, 141, 149, 154, 407, 560
pyt/cfg/expr_visitor_helper.py                          9      0   100%
pyt/cfg/make_cfg.py                                     9      0   100%
pyt/cfg/stmt_visitor.py                               456     46    90%   111, 168, 174, 217, 235, 247-248, 277-278, 297-298, 386-399, 658-661, 668-671, 678, 684, 702-704, 780, 816-823, 868, 893, 919-920, 951, 972, 988, 1010
pyt/cfg/stmt_visitor_helper.py                         72      6    92%   83, 95-96, 133-136
pyt/core/ast_helper.py                                 53      4    92%   56, 101, 103, 105
pyt/core/module_definitions.py                         47      4    91%   32, 108-110
pyt/core/node_types.py                                 70      4    94%   51, 142-145
pyt/core/project_handler.py                            30      1    97%   23
pyt/formatters/__init__.py                              0      0   100%
pyt/helper_visitors/__init__.py                         4      0   100%
pyt/helper_visitors/label_visitor.py                  206     40    81%   31-37, 93-98, 179-184, 186-188, 200, 203, 212, 215, 218, 221, 224, 227, 230, 246, 249, 252, 255, 261, 265, 271, 274, 278, 281
pyt/helper_visitors/right_hand_side_visitor.py         13      0   100%
pyt/helper_visitors/vars_visitor.py                   104      4    96%   66-68, 102
pyt/usage.py                                           39      1    97%   124
pyt/vulnerabilities/__init__.py                         3      0   100%
pyt/vulnerabilities/trigger_definitions_parser.py      30      0   100%
pyt/vulnerabilities/vulnerabilities.py                160     15    91%   233-235, 237, 241-243, 310, 312-321, 424, 427
pyt/vulnerabilities/vulnerability_helper.py            76     19    75%   84, 116-119, 132-134, 178-182, 204-209
pyt/web_frameworks/__init__.py                          3      0   100%
pyt/web_frameworks/framework_adaptor.py                41      0   100%
pyt/web_frameworks/framework_helper.py                 23      0   100%
---------------------------------------------------------------------------------
TOTAL                                                1867    177    91%

If you would like help with writing tests for any of these files let me know.

KevinHock avatar Jul 07 '18 18:07 KevinHock