Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No mention of Golang installation needed for (local) testing #379

Closed
ShadowJonathan opened this issue Dec 16, 2019 · 4 comments
Closed

No mention of Golang installation needed for (local) testing #379

ShadowJonathan opened this issue Dec 16, 2019 · 4 comments

Comments

@ShadowJonathan
Copy link
Contributor

ShadowJonathan commented Dec 16, 2019

What was wrong?

pytest command fails with "keyerror GOPATH", nowhere in any testing manual is described how to set up the full testing environment, only one command is given, no mention of Go is made, or any specific golang installation version requirements.

Code Command that produced the error

(full path replaced with ... till project root)

(venv) ...\py-libp2p>pytest --numprocesses=4 --looponfail --maxfail=1

Full error output

ImportError while loading conftest '...\py-libp2p\tests_interop\conftest.py'.
tests_interop\conftest.py:17: in <module>
    from libp2p.tools.interop.daemon import Daemon, make_p2pd
libp2p\tools\interop\daemon.py:14: in <module>
    from .envs import GO_BIN_PATH
libp2p\tools\interop\envs.py:4: in <module>
    GO_BIN_PATH = pathlib.Path(os.environ["GOPATH"]) / "bin"
C:\Python38\lib\os.py:673: in __getitem__
    raise KeyError(key) from None
E   KeyError: 'GOPATH'

Environment

# run this:
(venv) ...\py-libp2p>python -m eth_utils
...\py-libp2p\venv\Scripts\python.exe: No module named eth_utils

(one quick pip installation later)

Output:

Python version:
3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)]

Operating System: Windows-10-10.0.18362-SP0

pip freeze result:
apipkg==1.5
appdirs==1.4.3
asn1crypto==1.2.0
atomicwrites==1.3.0
attrs==19.3.0
base58==1.0.3
black==19.3b0
bleach==3.1.0
bumpversion==0.5.3
certifi==2019.11.28
cffi==1.13.2
chardet==3.0.4
Click==7.0
coincurve==10.0.0
colorama==0.4.3
cytoolz==0.10.1
docformatter==1.3.1
docutils==0.15.2
entrypoints==0.3
eth-hash==0.2.0
eth-typing==2.2.1
eth-utils==1.8.4
execnet==1.7.1
factory-boy==2.12.0
Faker==3.0.0
-e git+https://github.com/shadowjonathan/fastecdsa-any@51164b711e955e81bdbc8a7b49aa81239b38ad78#egg=fastecdsa
filelock==3.0.12
flake8==3.7.9
flake8-bugbear==19.8.0
idna==2.8
isort==4.3.21
keyring==20.0.0
-e git+https://github.com/libp2p/py-libp2p@cac7e3909ae5a7d8c22b28c8595c5fa03ef729db#egg=libp2p
lru-dict==1.1.6
mccabe==0.6.1
more-itertools==8.0.2
multiaddr==0.0.8
mypy==0.750
mypy-extensions==0.4.3
mypy-protobuf==1.15
netaddr==0.7.19
p2pclient==0.1.2
packaging==19.2
pexpect==4.7.0
pkginfo==1.5.0.1
pluggy==0.13.1
protobuf==3.11.1
ptyprocess==0.6.0
py==1.8.0
pycodestyle==2.5.0
pycparser==2.19
pycryptodome==3.9.4
pyflakes==2.1.1
Pygments==2.5.2
pymultihash==0.8.2
PyNaCl==1.3.0
pyparsing==2.4.5
pytest==4.6.7
pytest-asyncio==0.10.0
pytest-forked==1.1.3
pytest-xdist==1.30.0
python-dateutil==2.8.1
pywin32-ctypes==0.2.0
readme-renderer==24.0
requests==2.22.0
requests-toolbelt==0.9.1
rpcudp==3.0.0
six==1.13.0
text-unidecode==1.3
toml==0.10.0
toolz==0.10.0
tox==3.14.2
tqdm==4.40.2
twine==3.1.1
typed-ast==1.4.0
typing-extensions==3.7.4.1
u-msgpack-python==2.5.2
untokenize==0.1.1
urllib3==1.25.7
varint==1.0.2
virtualenv==16.7.9
wcwidth==0.1.7
webencodings==0.5.1

(Disclaimer: You may notice the deviant fastecdsa installation, this is because I am installing and testing an experimental integration with a windows-buildable fastecdsa wheel (alongside general windows integration), this problem is also mentioned in #363)
(You also may notice python 3.8, this is for the testing environment as well)

How can it be fixed?

Have it be mentioned in README.md (or any other appropriate file that readme points to) that for testing, a golang installation is needed, and have it specify which version of golang.

@ShadowJonathan
Copy link
Contributor Author

Looking further, I see that the library uses tox, while the readme mentions only pytest.

As evident from the errors above, pytest follows tests that're subject/setup by tox, while there is no mention of this.

Furthermore, I can also see there are more "managers" and environment settings files around that're all not mentioned nor documented anywhere in the readme, nor in any document that the readme explicitly defines for this.

@ShadowJonathan ShadowJonathan changed the title No mention of Golang installation needed for testing No mention of Golang installation needed for (local) testing Dec 16, 2019
@ShadowJonathan
Copy link
Contributor Author

This appears to be because pytest runs all tests that're structurized to tox, where this test appears to be a part of py37-interop

@mhchia
Copy link
Contributor

mhchia commented Dec 17, 2019

You're right we should add in the README.md that running tests_interop requires go and go-libp2p-daemon installed.

@ShadowJonathan
Copy link
Contributor Author

Closing as the test suite is based on tox, and golang interop testing is mostly for the CI suite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants