brownie
brownie copied to clipboard
Separate branch and statement splitting
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