@@ -10,22 +10,30 @@ isolated_build = true
1010basepython = python3
1111
1212[testenv:build]
13+ description = generate proto and build pacakge
1314deps =
1415 build
1516 twine
17+ extras = protoc
18+ allowlist_externals =
19+ {toxinidir}/genproto.sh
1620commands =
21+ {toxinidir}/genproto.sh
1722 python -m build
1823 twine check dist/*
1924
2025[testenv:unittests]
26+ description = generate proto and run package unit tests
2127extras = tests
2228# passenv = ETCD_ENDPOINT,TEST_ETCD_VERSION
2329allowlist_externals =
2430 wget
2531 tar
2632 gzip
2733 cp
34+ {toxinidir}/genproto.sh
2835commands_pre =
36+ {toxinidir}/genproto.sh
2937 wget https://github.com/etcd-io/etcd/releases/download/v3.3.10/etcd-v3.3.10-linux-amd64.tar.gz -O {env_tmp_dir}/etcd.tar.gz
3038 tar xzvf {env_tmp_dir}/etcd.tar.gz -C {env_tmp_dir}
3139 cp {env_tmp_dir}/etcd-v3.3.10-linux-amd64/etcd {envdir}/bin
@@ -39,23 +47,13 @@ commands =
3947commands =flake8 {posargs}
4048
4149[testenv:genproto]
50+ description = generate proto only
4251whitelist_externals = sed
4352extras = protoc
4453allowlist_externals =
45- sed
54+ {toxinidir}/genproto.sh
4655commands =
47- sed -i -e ' /gogoproto/d' etcd3/proto/rpc.proto
48- sed -i -e ' s/etcd\/ mvcc\/ mvccpb\/ kv.proto/kv.proto/g' etcd3/proto/rpc.proto
49- sed -i -e ' s/etcd\/ auth\/ authpb\/ auth.proto/auth.proto/g' etcd3/proto/rpc.proto
50- sed -i -e ' /google\/ api\/ annotations.proto/d' etcd3/proto/rpc.proto
51- sed -i -e ' /option (google.api.http)/,+3d' etcd3/proto/rpc.proto
52- python -m grpc.tools.protoc -Ietcd3/proto \
53- --python_out =etcd3/etcdrpc/ \
54- --grpc_python_out =etcd3/etcdrpc/ \
55- etcd3/proto/rpc.proto etcd3/proto/auth.proto etcd3/proto/kv.proto
56- sed -i -e ' s/import auth_pb2/from etcd3.etcdrpc import auth_pb2/g' etcd3/etcdrpc/rpc_pb2.py
57- sed -i -e ' s/import kv_pb2/from etcd3.etcdrpc import kv_pb2/g' etcd3/etcdrpc/rpc_pb2.py
58- sed -i -e ' s/import rpc_pb2/from etcd3.etcdrpc import rpc_pb2/g' etcd3/etcdrpc/rpc_pb2_grpc.py
56+ {toxinidir}/genproto.sh
5957
6058[flake8]
6159exclude = .venv,.git,.tox,dist,docs,*lib/python*,*egg,build,etcd3/etcdrpc/
0 commit comments