brownie icon indicating copy to clipboard operation
brownie copied to clipboard

Separate branch and statement splitting

Open jacekv opened this issue 2 years ago • 0 comments

What I did

I ran into some issues as described in #1087 and had a look into the code. I believe that I found the solution in order to show all functions of a contract and if they have been fully covered.

Related issue: #1087, #1642, #1562, #1536

How I did it

I created a sample project using brownie bake token. In brownie version 1.19.2 when you run brownie test -C, the coverage report shows only results for transferFrom and _transfer. approve, balanceOf and transfer are not shown in the results.

So I went down the rabbit hole and realized, that the modified code has the following statement: branches.keys() & statements.keys()

The approve function has no branches and is therefore not included in the branches.keys() list. By using the &, we are excluding functions which do not contain branches.

I saw that version 1.14.6 did not have the issue. So, I took the code from v1.14.6 and it all works now.

How to verify it

See the previous section.

Checklist

  • [x] I have confirmed that my PR passes all linting checks
  • [x] I have included test cases
  • [x] I have updated the documentation
  • [x] I have added an entry to the changelog

jacekv avatar Jan 04 '23 09:01 jacekv