ethereum / ethereum/py-solc

Is `tox` test suite broken on travis.ci?

Open
#60 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
195
Forks
77
PR merge metrics
No merged PRs in 30d

Description

* `py-solc` Version: 3.2.0
* `solc` Version: 0.4.25
* Python Version: 3.6.6
* OS: linux

### What was wrong?

Test suite seems to be broken. A lot of tests are in red. For example, test contracts defined in `conftest.py` produce warnings on newer versions of `solc` and that warning does not pass `is_benign` check.

All while `tox` passes tests on travis.ci somehow.

Example of failed pytest run. Command:
` python -m pytest -k test_providing_stdin`

It's output:
```python
================================================================================= test session starts ==================================================================================
platform linux -- Python 3.6.6, pytest-3.8.2, py-1.7.0, pluggy-0.7.1 -- /home/pepesza/code/py-solc/venv/bin/python
cachedir: .pytest_cache
rootdir: /home/pepesza/code/py-solc, inifile: pytest.ini
collected 58 items / 57 deselected

tests/core/wrapper/test_solc_wrapper.py::test_providing_stdin FAILED [100%]

======================================================================================= FAILURES =======================================================================================
_________________________________________________________________________________ test_providing_stdin _________________________________________________________________________________

FOO_SOURCE = 'pragma solidity ^0.4.17;\n\ncontract Foo {\n function Foo() public {}\n\n function return13() public pure returns (uint) {\n return 13;\n }\n}\n'

def test_providing_stdin(FOO_SOURCE):
output, err, _, _ = solc_wrapper(stdin=FOO_SOURCE, bin=True)
assert output
assert 'Foo' in output
> assert is_benign(err)
E assert False
E + where False = is_benign(':4:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.\n function Foo() public {}\n ^----------------------^\n')

FOO_SOURCE = 'pragma solidity ^0.4.17;\n\ncontract Foo {\n function Foo() public {}\n\n function return13() public pure returns (uint) {\n return 13;\n }\n}\n'
_ =
err = ':4:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.\n function Foo() public {}\n ^----------------------^\n'
output = '\n======= :Foo =======\nBinary: \n6080604052348015600f57600080fd5b5060a18061001e6000396000f3006080604052600436...80910390f35b6000600d9050905600a165627a7a72305820222a1dc8029613612a0659d720a86492832454b7f50a2f689ce684cd93fa671b0029\n'

tests/core/wrapper/test_solc_wrapper.py:38: AssertionError
======================================================================= 1 failed, 57 deselected in 0.07 seconds ========================================================================
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.