From 3e35a8b32aa5fd615ee696f62b7cf9518070203d Mon Sep 17 00:00:00 2001 From: Idaapayo Date: Sun, 20 Feb 2022 19:46:58 +0000 Subject: [PATCH] Ida/ci test --- .gitignore | 2 ++ .gitlab-ci.yml | 58 +++++++++++++++++++++++++++++++++++++ python/.coverage | Bin 0 -> 53248 bytes python/.coveragerc | 7 +++++ python/tests/test_basic.py | 2 +- 5 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 .gitlab-ci.yml create mode 100644 python/.coverage create mode 100644 python/.coveragerc diff --git a/.gitignore b/.gitignore index 9de8eb2..21cb8af 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ dist/ gmon.out __pycache__ *.pyc +venv +.idea \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..083561d --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,58 @@ +stages: + - test + - run-coverage + - slither-analyzer + + +variables: + PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" + +cache: + paths: + - .cache/pip + - .venv/ + +before_script: + - python -V # Print out python version for debugging + - pip install virtualenv + - virtualenv venv + - source venv/bin/activate + +test: + image: registry.gitlab.com/grassrootseconomics/cic-base-images/ci-solc-python:latest + script: + # install test dependencies + - cd python + - export PYTHONPATH=. + - pip install --extra-index-url https://pip.grassrootseconomics.net + --extra-index-url https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple + -r requirements.txt -r test_requirements.txt + # run tests + - bash run_tests.sh + +run-coverage: + stage: test + image: registry.gitlab.com/grassrootseconomics/cic-base-images/ci-solc-python:latest + script: + - cd python + - export PYTHONPATH=. + - pip install --extra-index-url https://pip.grassrootseconomics.net + --extra-index-url https://gitlab.com/api/v4/projects/27624814/packages/pypi/simple + -r requirements.txt -r test_requirements.txt + - pip install pytest pytest-cov + - coverage run -m pytest + - coverage html + - coverage report --fail-under=90 + + coverage: '/^TOTAL.+?(\d+\%)$/' + artifacts: + reports: + cobertura: python/htmlcov/index.html + +slither-analyzer: + image: registry.gitlab.com/grassrootseconomics/cic-base-images/ci-solc-python:latest + allow_failure: true + script: + - cd solidity + - slither Registry.sol + - slither Registry.sol --print human-summary diff --git a/python/.coverage b/python/.coverage new file mode 100644 index 0000000000000000000000000000000000000000..86f9cd9ba9a0b3b1929d9e2f50d246352f72d6f7 GIT binary patch literal 53248 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 literal 0 HcmV?d00001 diff --git a/python/.coveragerc b/python/.coveragerc new file mode 100644 index 0000000..32a89f4 --- /dev/null +++ b/python/.coveragerc @@ -0,0 +1,7 @@ +[run] +branch = True +source = eth_contract_registry +[report] +omit = .venv/* + **/runnable/*.py +[html] diff --git a/python/tests/test_basic.py b/python/tests/test_basic.py index aabc692..5f60e6b 100644 --- a/python/tests/test_basic.py +++ b/python/tests/test_basic.py @@ -52,7 +52,7 @@ def test_set( o = builder.address_of(registry, 'ContractRegistry', sender_address=eth_accounts[0]) r = eth_rpc.do(o) r = abi_decode_single(ABIContractType.ADDRESS, r) - assert r == registry + assert r == strip_0x(registry) (tx_hash_hex, o) = builder.set(registry, roles['CONTRACT_DEPLOYER'], 'ContractRegistry', addr_registry) r = eth_rpc.do(o)