Please note that it also updates python to 3.12.
Change-Id: I715194304b37b9cd52affa998a94ba5ec52e7732
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
+import os
+import sys
+sys.path.insert(0, os.path.abspath('..'))
# -- General configuration ------------------------------------------------
-FROM alpine:3.17
+FROM alpine:3.20
ARG BRANCH=master
ARG OPENSTACK_TAG=master
wget -q -O- https://opendev.org/openstack/requirements/raw/branch/$OPENSTACK_TAG/upper-constraints.txt > upper-constraints.txt && \
sed -i -E /^packaging==+.*$/d upper-constraints.txt && \
case $(uname -m) in aarch*|arm*) CFLAGS="-O0" \
- pip3 install --no-cache-dir \
+ pip3 install --break-system-packages --no-cache-dir \
-cupper-constraints.txt \
-chttps://git.opnfv.org/functest-xtesting/plain/upper-constraints.txt?h=$BRANCH \
lxml ;; esac && \
(cd /src/functest-xtesting && \
git fetch --tags https://gerrit.opnfv.org/gerrit/functest-xtesting $BRANCH && \
git checkout FETCH_HEAD) && \
- pip3 install --no-cache-dir --src /src \
+ pip3 install --break-system-packages --no-cache-dir --src /src \
-cupper-constraints.txt \
-chttps://git.opnfv.org/functest-xtesting/plain/upper-constraints.txt?h=$BRANCH \
/src/functest-xtesting && \
addgroup -g 1000 xtesting && adduser -u 1000 -G xtesting -D xtesting && \
mkdir -p /var/lib/xtesting/results && chown -R xtesting: /var/lib/xtesting && \
apk del .build-deps
-COPY testcases.yaml /usr/lib/python3.10/site-packages/xtesting/ci/testcases.yaml
+COPY testcases.yaml /usr/lib/python3.12/site-packages/xtesting/ci/testcases.yaml
USER xtesting
WORKDIR /var/lib/xtesting/results
CMD ["run_tests", "-t", "all"]
args:
suites:
- >-
- /usr/lib/python3.10/site-packages/xtesting/samples/HelloWorld.robot
+ /usr/lib/python3.12/site-packages/xtesting/samples/HelloWorld.robot
variable:
- 'var01:foo'
- 'var02:bar'
name: behaveframework
args:
suites:
- - /usr/lib/python3.10/site-packages/xtesting/samples/features
+ - /usr/lib/python3.12/site-packages/xtesting/samples/features
tags:
- foo
- case_name: eighth
run:
name: ansible
args:
- private_data_dir: /usr/lib/python3.10/site-packages/xtesting/samples
+ private_data_dir: /usr/lib/python3.12/site-packages/xtesting/samples
playbook: helloworld.yml
- case_name: nineth
project_name: xtesting
run:
name: pytest
args:
- dir: /usr/lib/python3.10/site-packages/xtesting/samples/fourth.py
+ dir: /usr/lib/python3.12/site-packages/xtesting/samples/fourth.py
[tox]
-envlist = docs,pep8,pylint,yamllint,bashate,py310,cover,perm,pre-commit
+envlist = docs,pep8,pylint,yamllint,bashate,py312,cover,perm,pre-commit
skipsdist = True
[testenv]
xtesting/tests/unit
[testenv:docs]
-basepython = python3.10
+basepython = python3.12
commands =
doc8 README.rst api --ignore-path api/build
sphinx-build -W -b html api/ api/build
[testenv:pep8]
-basepython = python3.10
+basepython = python3.12
commands = flake8
[testenv:pylint]
-basepython = python3.10
+basepython = python3.12
allowlist_externals = bash
commands =
pylint --min-similarity-lines=10 \
--disable=locally-disabled --ignore-imports=y --reports=n --extension-pkg-whitelist=lxml xtesting
[testenv:yamllint]
-basepython = python3.10
-files =
- .travis.yml
- ansible
- xtesting/ci
+basepython = python3.12
+files = .travis.yml ansible xtesting/ci
commands =
yamllint -s {[testenv:yamllint]files}
[testenv:bashate]
-basepython = python3.10
+basepython = python3.12
files =
build.sh
commands = bashate {[testenv:bashate]files}
[testenv:bandit]
-basepython = python3.10
+basepython = python3.12
commands = bandit -r xtesting -x tests -n 5 -ll -s B602
[testenv:cover]
-basepython = python3.10
-dirs =
- xtesting/tests/unit/ci
- xtesting/tests/unit/core
- xtesting/tests/unit/utils/test_decorators.py
+basepython = python3.12
+dirs = xtesting/tests/unit/ci xtesting/tests/unit/core xtesting/tests/unit/utils/test_decorators.py
commands =
pytest --cov=xtesting --cov-reset --cov-report html --cov-fail-under=100 \
{[testenv:cover]dirs}
[testenv:perm]
-basepython = python3.10
+basepython = python3.12
allowlist_externals = bash
-path=. -not -path './.tox/*' -not -path './.git/*' -not -path './doc/reveal.js/*' -not -path './elements/xtesting/install.d/*'
+path=. -prune -not -path './.tox' -not -path './.git' -not -path './doc/reveal.js' \
+ -not -path './elements/xtesting/install.d' -not -name '*.pyc' -not -name '__pycache__' \
+ -not -path './doc/api/build'
commands =
bash -c "\
find {[testenv:perm]path} \( -type f -not -perm 644 -o -type d -not -perm 755 \) \
find {[testenv:perm]path} -exec file \{\} + | grep CRLF && exit 1 || exit 0"
[testenv:pre-commit]
-basepython = python3.10
+basepython = python3.12
commands =
pre-commit run --all-files --show-diff-on-failure
-robotframework===4.1.2
-bandit===1.7.0
+robotframework===6.1.1
+bandit===1.7.9
behave===1.2.6
-behave-html-formatter===0.9.8
-pylint===2.17.6
-flake8===4.0.1
-ansible-lint===5.2.1
-pre-commit===3.1.1
-astroid===2.15.8
+behave-html-formatter===0.9.10
+pylint===3.2.7
+flake8===7.1.1
+ansible-lint===24.7.0
+pre-commit===3.8.0
+astroid===3.2.4
+sphinx-rtd-theme==3.0.0rc1
if test_case.is_skipped:
result = 'SKIP'
else:
- result = 'PASS' if(test_case.is_successful(
+ result = 'PASS' if (test_case.is_successful(
) == test_case.EX_OK) else 'FAIL'
msg.add_row(
[test_case.case_name, test_case.project_name,
args:
suites:
- >-
- /usr/lib/python3.10/site-packages/xtesting/samples/HelloWorld.robot
+ /usr/lib/python3.12/site-packages/xtesting/samples/HelloWorld.robot
variable:
- 'var01:foo'
- 'var02:bar'
name: behaveframework
args:
suites:
- - /usr/lib/python3.10/site-packages/xtesting/samples/features
+ - /usr/lib/python3.12/site-packages/xtesting/samples/features
tags:
- foo
- case_name: eighth
run:
name: ansible
args:
- private_data_dir: /usr/lib/python3.10/site-packages/xtesting/samples
+ private_data_dir: /usr/lib/python3.12/site-packages/xtesting/samples
playbook: helloworld.yml
- case_name: nineth
project_name: xtesting
run:
name: pytest
args:
- dir: /usr/lib/python3.10/site-packages/xtesting/samples/fourth.py
+ dir: /usr/lib/python3.12/site-packages/xtesting/samples/fourth.py
if self.is_skipped:
result = 'SKIP'
else:
- result = 'PASS' if(self.is_successful(
+ result = 'PASS' if (self.is_successful(
) == TestCase.EX_OK) else 'FAIL'
msg = prettytable.PrettyTable(
header_style='upper', padding_width=5,
assert self.stop_time
if self.stop_time < self.start_time:
return "XX:XX"
- return(
+ return (
f"{str(int(self.stop_time - self.start_time) // 60).zfill(2)}:"
f"{str(int(self.stop_time - self.start_time) % 60).zfill(2)}")
pass
envfile = 'rc_file'
with mock.patch('builtins.open',
- mock.mock_open(read_data=msg)) as mock_method,\
+ mock.mock_open(read_data=msg)) as mock_method, \
mock.patch('os.path.isfile', return_value=True):
mock_method.return_value.__iter__ = lambda self: iter(
self.readline, '')
mock_method.assert_called_with()
def test_run_deploy_vnf_exc(self):
- with mock.patch.object(self.test, 'prepare'),\
+ with mock.patch.object(self.test, 'prepare'), \
mock.patch.object(self.test, 'deploy_orchestrator',
return_value=True), \
mock.patch.object(self.test, 'deploy_vnf',
mock_method.assert_called_with()
def test_run_test_vnf_exc(self):
- with mock.patch.object(self.test, 'prepare'),\
+ with mock.patch.object(self.test, 'prepare'), \
mock.patch.object(self.test, 'deploy_orchestrator',
return_value=True), \
mock.patch.object(self.test, 'deploy_vnf', return_value=True), \
mock_method.assert_called_with()
def test_run_deploy_orch_ko(self):
- with mock.patch.object(self.test, 'prepare'),\
+ with mock.patch.object(self.test, 'prepare'), \
mock.patch.object(self.test, 'deploy_orchestrator',
return_value=False), \
mock.patch.object(self.test, 'deploy_vnf',
testcase.TestCase.EX_TESTCASE_FAILED)
def test_run_vnf_deploy_ko(self):
- with mock.patch.object(self.test, 'prepare'),\
+ with mock.patch.object(self.test, 'prepare'), \
mock.patch.object(self.test, 'deploy_orchestrator',
return_value=True), \
mock.patch.object(self.test, 'deploy_vnf',
testcase.TestCase.EX_TESTCASE_FAILED)
def test_run_vnf_test_ko(self):
- with mock.patch.object(self.test, 'prepare'),\
+ with mock.patch.object(self.test, 'prepare'), \
mock.patch.object(self.test, 'deploy_orchestrator',
return_value=True), \
mock.patch.object(self.test, 'deploy_vnf',
testcase.TestCase.EX_TESTCASE_FAILED)
def test_run_default(self):
- with mock.patch.object(self.test, 'prepare'),\
+ with mock.patch.object(self.test, 'prepare'), \
mock.patch.object(self.test, 'deploy_orchestrator',
return_value=True), \
mock.patch.object(self.test, 'deploy_vnf',