docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt buildcontroller: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt docs: install_deps> python -I -m pip install -r docs/requirements.txt checkbashisms: freeze> python -m pip freeze --all checkbashisms: pip==25.1.1,setuptools==80.3.1 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh checkbashisms: commands[1] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sh -c 'command checkbashisms>/dev/null || sudo yum install -y devscripts-checkbashisms || sudo yum install -y devscripts-minimal || sudo yum install -y devscripts || sudo yum install -y https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/31/Everything/x86_64/os/Packages/d/devscripts-checkbashisms-2.19.6-2.fc31.x86_64.rpm || (echo "checkbashisms command not found - please install it (e.g. sudo apt-get install devscripts | yum install devscripts-minimal )" >&2 && exit 1)' checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + checkbashisms: OK ✔ in 3.42 seconds pre-commit: install_deps> python -I -m pip install pre-commit pre-commit: freeze> python -m pip freeze --all pre-commit: cfgv==3.4.0,distlib==0.4.0,filelock==3.18.0,identify==2.6.12,nodeenv==1.9.1,pip==25.1.1,platformdirs==4.3.8,pre_commit==4.2.0,PyYAML==6.0.2,setuptools==80.3.1,virtualenv==20.31.2 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh pre-commit: commands[1] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sh -c 'which cpan || sudo yum install -y perl-CPAN || (echo "cpan command not found - please install it (e.g. sudo apt-get install perl-modules | yum install perl-CPAN )" >&2 && exit 1)' /usr/bin/cpan pre-commit: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure [WARNING] hook id `remove-tabs` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. [WARNING] hook id `perltidy` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. [WARNING] repo `https://github.com/pre-commit/pre-commit-hooks` uses deprecated stage names (commit, push) which will be removed in a future version. Hint: often `pre-commit autoupdate --repo https://github.com/pre-commit/pre-commit-hooks` will fix this. if it does not -- consider reporting an issue to that repo. [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. buildcontroller: freeze> python -m pip freeze --all [INFO] Initializing environment for https://github.com/perltidy/perltidy. buildcontroller: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.3.1,urllib3==2.5.0 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... 21 21 ok, java is 21 or newer Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b) Maven home: /opt/maven Java version: 21.0.5, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 Default locale: en, platform encoding: UTF-8 OS name: "linux", version: "5.15.0-131-generic", arch: "amd64", family: "unix" [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for https://github.com/pre-commit/mirrors-autopep8. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... [INFO] Installing environment for https://github.com/perltidy/perltidy. [INFO] Once installed this environment will be reused. [INFO] This may take a few minutes... docs-linkcheck: freeze> python -m pip freeze --all docs: freeze> python -m pip freeze --all docs-linkcheck: alabaster==1.0.0,attrs==25.3.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.7.14,charset-normalizer==3.4.2,contourpy==1.3.2,cycler==0.12.1,docutils==0.21.2,fonttools==4.59.0,funcparserlib==2.0.0a0,future==1.0.0,idna==3.10,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.8,lfdocs-conf==0.9.0,MarkupSafe==3.0.2,matplotlib==3.10.3,numpy==2.3.1,nwdiag==3.0.0,packaging==25.0,pillow==11.3.0,pip==25.1.1,Pygments==2.19.2,pyparsing==3.2.3,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.4,requests-file==1.5.1,roman-numerals-py==3.1.0,seqdiag==3.0.0,setuptools==80.3.1,six==1.17.0,snowballstemmer==3.0.1,Sphinx==8.2.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.2,sphinx-tabs==3.4.7,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.30,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.5.0,webcolors==24.11.1 docs-linkcheck: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sphinx-build -q -b linkcheck -d /w/workspace/transportpce-tox-verify-transportpce-master/.tox/docs-linkcheck/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-transportpce-master/docs/_build/linkcheck docs: alabaster==1.0.0,attrs==25.3.0,babel==2.17.0,blockdiag==3.0.0,certifi==2025.7.14,charset-normalizer==3.4.2,contourpy==1.3.2,cycler==0.12.1,docutils==0.21.2,fonttools==4.59.0,funcparserlib==2.0.0a0,future==1.0.0,idna==3.10,imagesize==1.4.1,Jinja2==3.1.6,jsonschema==3.2.0,kiwisolver==1.4.8,lfdocs-conf==0.9.0,MarkupSafe==3.0.2,matplotlib==3.10.3,numpy==2.3.1,nwdiag==3.0.0,packaging==25.0,pillow==11.3.0,pip==25.1.1,Pygments==2.19.2,pyparsing==3.2.3,pyrsistent==0.20.0,python-dateutil==2.9.0.post0,PyYAML==6.0.2,requests==2.32.4,requests-file==1.5.1,roman-numerals-py==3.1.0,seqdiag==3.0.0,setuptools==80.3.1,six==1.17.0,snowballstemmer==3.0.1,Sphinx==8.2.3,sphinx-bootstrap-theme==0.8.1,sphinx-data-viewer==0.1.5,sphinx-rtd-theme==3.0.2,sphinx-tabs==3.4.7,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-blockdiag==3.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-needs==0.7.9,sphinxcontrib-nwdiag==2.0.0,sphinxcontrib-plantuml==0.30,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-seqdiag==3.0.0,sphinxcontrib-serializinghtml==2.0.0,sphinxcontrib-swaggerdoc==0.1.7,urllib3==2.5.0,webcolors==24.11.1 docs: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sphinx-build -q -W --keep-going -b html -n -d /w/workspace/transportpce-tox-verify-transportpce-master/.tox/docs/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-transportpce-master/docs/_build/html docs-linkcheck: OK ✔ in 31.07 seconds docs: OK ✔ in 31.08 seconds pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' pylint: freeze> python -m pip freeze --all pylint: astroid==3.3.11,dill==0.4.0,isort==6.0.1,mccabe==0.7.0,pip==25.1.1,platformdirs==4.3.8,pylint==3.3.7,setuptools==80.3.1,tomlkit==0.13.3 pylint: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find transportpce_tests/ -name '*.py' -exec pylint --fail-under=10 --max-line-length=120 --disable=missing-docstring,import-error --disable=fixme --disable=duplicate-code '--module-rgx=([a-z0-9_]+$)|([0-9.]{1,30}$)' '--method-rgx=(([a-z_][a-zA-Z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-zA-Z][a-zA-Z0-9_]+__))$' '--variable-rgx=[a-zA-Z_][a-zA-Z0-9_]{1,30}$' '{}' + trim trailing whitespace.................................................Failed - hook id: trailing-whitespace - exit code: 1 - files were modified by this hook Fixing tests/transportpce_tests/pce/test05_pce_tapi.py Fixing tests/transportpce_tests/common/test_utils_generate_tapi_topo.py Tabs remover.............................................................Passed autopep8.................................................................Failed - hook id: autopep8 - files were modified by this hook perltidy.................................................................Passed pre-commit hook(s) made changes. If you are seeing this message in CI, reproduce locally with: `pre-commit run --all-files`. To run `pre-commit` as part of git workflow, use `pre-commit install`. All changes made by hooks: diff --git a/tests/transportpce_tests/common/test_utils_generate_tapi_topo.py b/tests/transportpce_tests/common/test_utils_generate_tapi_topo.py index baf3f2b5c..f4079a03d 100644 --- a/tests/transportpce_tests/common/test_utils_generate_tapi_topo.py +++ b/tests/transportpce_tests/common/test_utils_generate_tapi_topo.py @@ -33,6 +33,7 @@ class UuidServices: self.odu = None self.dsr = None + class UuidServices2: def __init__(self): # pylint: disable=invalid-name @@ -40,6 +41,7 @@ class UuidServices2: self.odu = None self.dsr = None + class UuidServices3: def __init__(self): # pylint: disable=invalid-name @@ -47,6 +49,7 @@ class UuidServices3: self.odu = None self.dsr = None + class TransportPCEtesting(unittest.TestCase): processes = [] @@ -56,9 +59,8 @@ class TransportPCEtesting(unittest.TestCase): uuid_services2 = UuidServices2() uuid_services3 = UuidServices3() - del_serv_input_data = {"uuid": "TBD"} - + tapi_topo = {"topology-id": "TBD"} @classmethod @@ -77,11 +79,14 @@ class TransportPCEtesting(unittest.TestCase): test_utils.shutdown_process(process) print("all processes killed") + tpcetest = TransportPCEtesting() + def setUp(self): time.sleep(2) + def connect_xpdrs(self): print("Connecting SPDRA") response = test_utils.mount_device("SPDR-SA1", ('spdra', self.NODE_VERSION)) @@ -100,6 +105,7 @@ def connect_xpdrs(self): tpcetest.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201) time.sleep(2) + def connect_rdms(self): print("Connecting ROADMA") response = test_utils.mount_device("ROADM-A1", ('roadma', self.NODE_VERSION)) @@ -110,6 +116,7 @@ def connect_rdms(self): tpcetest.assertEqual(response.status_code, requests.codes.created, test_utils.CODE_SHOULD_BE_201) time.sleep(2) + def interconnect_roadm_and_xpdr(self): response = test_utils.transportpce_api_rpc_request( 'transportpce-networkutils', 'init-xpdr-rdm-links', @@ -252,6 +259,7 @@ def interconnect_roadm_and_xpdr(self): tpcetest.assertIn('Roadm Xponder links created successfully', response["output"]["result"]) time.sleep(2) + def add_omsAttributes_to_ROADM2ROADM_links(self): # Config ROADMA-ROADMC oms-attributes data = {"span": { @@ -282,6 +290,7 @@ def add_omsAttributes_to_ROADM2ROADM_links(self): "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX", data) tpcetest.assertEqual(response.status_code, requests.codes.created) + def create_services_on_infra(self): create_connectivity_service_PhotonicMedia(self) get_service_PhotonicMedia(self) @@ -296,6 +305,7 @@ def create_services_on_infra(self): create_connectivity_service_DSR(self) get_service_DSR(self) + def create_connectivity_service_PhotonicMedia(self): self.cr_serv_input_data["end-point"][0]["service-interface-point"]["service-interface-point-uuid"] = self.sAOTS self.cr_serv_input_data["end-point"][1]["service-interface-point"]["service-interface-point-uuid"] = self.sZOTS @@ -322,14 +332,15 @@ def create_connectivity_service_PhotonicMedia(self): 'value': 'SPDR-SA1-XPDR1'} tpcetest.assertDictEqual(dict(input_dict_1, **response['output']['service']), - response['output']['service']) + response['output']['service']) tpcetest.assertDictEqual(dict(input_dict_2, **response['output']['service']['end-point'][0]['name'][0]), - response['output']['service']['end-point'][0]['name'][0]) + response['output']['service']['end-point'][0]['name'][0]) tpcetest.assertDictEqual(dict(input_dict_3, **response['output']['service']['end-point'][1]['name'][0]), - response['output']['service']['end-point'][1]['name'][0]) + response['output']['service']['end-point'][1]['name'][0]) # If the gate fails is because of the waiting time not being enough # time.sleep(self.WAITING) + def get_service_PhotonicMedia(self): response = test_utils.get_ordm_serv_list_attr_request("services", str(tpcetest.uuid_services.pm)) tpcetest.assertEqual(response['status_code'], requests.codes.ok) @@ -339,6 +350,7 @@ def get_service_PhotonicMedia(self): tpcetest.assertEqual(response['services'][0]['lifecycle-state'], 'planned') time.sleep(1) + def create_connectivity_service2_PhotonicMedia(self): self.cr_serv_input_data["end-point"][0]["service-interface-point"]["service-interface-point-uuid"] = self.s2AOTS self.cr_serv_input_data["end-point"][1]["service-interface-point"]["service-interface-point-uuid"] = self.s2ZOTS @@ -366,14 +378,15 @@ def create_connectivity_service2_PhotonicMedia(self): 'value': 'SPDR-SA1-XPDR2'} tpcetest.assertDictEqual(dict(input_dict_1, **response['output']['service']), - response['output']['service']) + response['output']['service']) tpcetest.assertDictEqual(dict(input_dict_2, **response['output']['service']['end-point'][0]['name'][0]), - response['output']['service']['end-point'][0]['name'][0]) + response['output']['service']['end-point'][0]['name'][0]) tpcetest.assertDictEqual(dict(input_dict_3, **response['output']['service']['end-point'][1]['name'][0]), - response['output']['service']['end-point'][1]['name'][0]) + response['output']['service']['end-point'][1]['name'][0]) # If the gate fails is because of the waiting time not being enough # time.sleep(self.WAITING) + def get_service2_PhotonicMedia(self): response = test_utils.get_ordm_serv_list_attr_request("services", str(tpcetest.uuid_services2.pm)) tpcetest.assertEqual(response['status_code'], requests.codes.ok) @@ -383,6 +396,7 @@ def get_service2_PhotonicMedia(self): tpcetest.assertEqual(response['services'][0]['lifecycle-state'], 'planned') time.sleep(1) + def create_connectivity_service3_PhotonicMedia(self): self.cr_serv_input_data["end-point"][0]["service-interface-point"]["service-interface-point-uuid"] = self.s3AOTS self.cr_serv_input_data["end-point"][1]["service-interface-point"]["service-interface-point-uuid"] = self.s3ZOTS @@ -410,14 +424,15 @@ def create_connectivity_service3_PhotonicMedia(self): 'value': 'SPDR-SA1-XPDR3'} tpcetest.assertDictEqual(dict(input_dict_1, **response['output']['service']), - response['output']['service']) + response['output']['service']) tpcetest.assertDictEqual(dict(input_dict_2, **response['output']['service']['end-point'][0]['name'][0]), - response['output']['service']['end-point'][0]['name'][0]) + response['output']['service']['end-point'][0]['name'][0]) tpcetest.assertDictEqual(dict(input_dict_3, **response['output']['service']['end-point'][1]['name'][0]), - response['output']['service']['end-point'][1]['name'][0]) + response['output']['service']['end-point'][1]['name'][0]) # If the gate fails is because of the waiting time not being enough # time.sleep(self.WAITING) + def get_service3_PhotonicMedia(self): response = test_utils.get_ordm_serv_list_attr_request("services", str(tpcetest.uuid_services3.pm)) tpcetest.assertEqual(response['status_code'], requests.codes.ok) @@ -428,6 +443,8 @@ def get_service3_PhotonicMedia(self): time.sleep(1) # test create connectivity service from spdrA to spdrC for odu + + def create_connectivity_service_ODU(self): # pylint: disable=line-too-long self.cr_serv_input_data["layer-protocol-name"] = "ODU" @@ -463,14 +480,15 @@ def create_connectivity_service_ODU(self): 'value': 'SPDR-SA1-XPDR1'} tpcetest.assertDictEqual(dict(input_dict_1, **response['output']['service']), - response['output']['service']) + response['output']['service']) tpcetest.assertDictEqual(dict(input_dict_2, **response['output']['service']['end-point'][0]['name'][0]), - response['output']['service']['end-point'][0]['name'][0]) + response['output']['service']['end-point'][0]['name'][0]) tpcetest.assertDictEqual(dict(input_dict_3, **response['output']['service']['end-point'][1]['name'][0]), - response['output']['service']['end-point'][1]['name'][0]) + response['output']['service']['end-point'][1]['name'][0]) # If the gate fails is because of the waiting time not being enough # time.sleep(self.WAITING) + def get_service_ODU(self): response = test_utils.get_ordm_serv_list_attr_request("services", str(tpcetest.uuid_services.odu)) tpcetest.assertEqual(response['status_code'], requests.codes.ok) @@ -481,6 +499,8 @@ def get_service_ODU(self): time.sleep(1) # test create connectivity service from spdrA to spdrC for odu + + def create_connectivity_service3_ODU(self): # pylint: disable=line-too-long self.cr_serv_input_data["layer-protocol-name"] = "ODU" @@ -516,14 +536,15 @@ def create_connectivity_service3_ODU(self): 'value': 'SPDR-SA1-XPDR3'} tpcetest.assertDictEqual(dict(input_dict_1, **response['output']['service']), - response['output']['service']) + response['output']['service']) tpcetest.assertDictEqual(dict(input_dict_2, **response['output']['service']['end-point'][0]['name'][0]), - response['output']['service']['end-point'][0]['name'][0]) + response['output']['service']['end-point'][0]['name'][0]) tpcetest.assertDictEqual(dict(input_dict_3, **response['output']['service']['end-point'][1]['name'][0]), - response['output']['service']['end-point'][1]['name'][0]) + response['output']['service']['end-point'][1]['name'][0]) # If the gate fails is because of the waiting time not being enough # time.sleep(self.WAITING) + def get_service3_ODU(self): response = test_utils.get_ordm_serv_list_attr_request("services", str(tpcetest.uuid_services3.odu)) tpcetest.assertEqual(response['status_code'], requests.codes.ok) @@ -533,6 +554,8 @@ def get_service3_ODU(self): tpcetest.assertEqual(response['services'][0]['lifecycle-state'], 'planned') # test create connectivity service from spdrA to spdrC for dsr + + def create_connectivity_service_DSR(self): # pylint: disable=line-too-long self.cr_serv_input_data["layer-protocol-name"] = "DSR" @@ -569,17 +592,18 @@ def create_connectivity_service_DSR(self): 'value': 'SPDR-SA1-XPDR1'} tpcetest.assertDictEqual(dict(input_dict_1, - **response['output']['service']), - response['output']['service']) + **response['output']['service']), + response['output']['service']) tpcetest.assertDictEqual(dict(input_dict_2, - **response['output']['service']['end-point'][0]['name'][0]), - response['output']['service']['end-point'][0]['name'][0]) + **response['output']['service']['end-point'][0]['name'][0]), + response['output']['service']['end-point'][0]['name'][0]) tpcetest.assertDictEqual(dict(input_dict_3, - **response['output']['service']['end-point'][1]['name'][0]), - response['output']['service']['end-point'][1]['name'][0]) + **response['output']['service']['end-point'][1]['name'][0]), + response['output']['service']['end-point'][1]['name'][0]) # The sleep here is okey as the DSR service creation is very fast # time.sleep(self.WAITING) + def get_service_DSR(self): response = test_utils.get_ordm_serv_list_attr_request("services", str(tpcetest.uuid_services.dsr)) tpcetest.assertEqual(response['status_code'], requests.codes.ok) @@ -591,6 +615,7 @@ def get_service_DSR(self): print("Time to retrieve topology : 100 seconds... Hurry up") time.sleep(100) + def delete_created_tapi_services(self): delete_connectivity_service_DSR(self) delete_connectivity_service_ODU(self) @@ -600,6 +625,7 @@ def delete_created_tapi_services(self): delete_connectivity_service_PhotonicMedia(self) get_no_tapi_services() + def delete_connectivity_service_DSR(self): self.del_serv_input_data["uuid"] = str(tpcetest.uuid_services.dsr) response = test_utils.transportpce_api_rpc_request( @@ -607,6 +633,7 @@ def delete_connectivity_service_DSR(self): tpcetest.assertIn(response["status_code"], (requests.codes.ok, requests.codes.no_content)) time.sleep(self.WAITING) + def delete_connectivity_service_ODU(self): self.del_serv_input_data["uuid"] = str(tpcetest.uuid_services.odu) response = test_utils.transportpce_api_rpc_request( @@ -614,6 +641,7 @@ def delete_connectivity_service_ODU(self): tpcetest.assertIn(response["status_code"], (requests.codes.ok, requests.codes.no_content)) time.sleep(self.WAITING) + def delete_connectivity_service3_ODU(self): self.del_serv_input_data["uuid"] = str(tpcetest.uuid_services3.odu) response = test_utils.transportpce_api_rpc_request( @@ -621,6 +649,7 @@ def delete_connectivity_service3_ODU(self): tpcetest.assertIn(response["status_code"], (requests.codes.ok, requests.codes.no_content)) time.sleep(self.WAITING) + def delete_connectivity_service_PhotonicMedia(self): self.del_serv_input_data["uuid"] = str(tpcetest.uuid_services.pm) response = test_utils.transportpce_api_rpc_request( @@ -628,6 +657,7 @@ def delete_connectivity_service_PhotonicMedia(self): tpcetest.assertIn(response["status_code"], (requests.codes.ok, requests.codes.no_content)) time.sleep(self.WAITING) + def delete_connectivity_service3_PhotonicMedia(self): self.del_serv_input_data["uuid"] = str(tpcetest.uuid_services3.pm) response = test_utils.transportpce_api_rpc_request( @@ -635,6 +665,7 @@ def delete_connectivity_service3_PhotonicMedia(self): tpcetest.assertIn(response["status_code"], (requests.codes.ok, requests.codes.no_content)) time.sleep(self.WAITING) + def delete_connectivity_service2_PhotonicMedia(self): self.del_serv_input_data["uuid"] = str(tpcetest.uuid_services2.pm) response = test_utils.transportpce_api_rpc_request( @@ -642,6 +673,7 @@ def delete_connectivity_service2_PhotonicMedia(self): tpcetest.assertIn(response["status_code"], (requests.codes.ok, requests.codes.no_content)) time.sleep(self.WAITING) + def get_no_tapi_services(self): response = test_utils.transportpce_api_rpc_request( 'tapi-connectivity', 'get-connectivity-service-list', None) @@ -651,6 +683,7 @@ def get_no_tapi_services(self): "error-message": "No services exist in datastore"}, response['output']['errors']['error']) + def cleanup_and_desinstall_tapi_feature(self): disconnect_spdrA(self) disconnect_spdrC(self) @@ -662,22 +695,27 @@ def cleanup_and_desinstall_tapi_feature(self): # response = test_utils.get_ordm_serv_list_request() # tpcetest.assertEqual(response['status_code'], requests.codes.conflict) + def disconnect_spdrA(self): response = test_utils.unmount_device("SPDR-SA1") tpcetest.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) + def disconnect_spdrC(self): response = test_utils.unmount_device("SPDR-SC1") tpcetest.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) + def disconnect_roadmA(self): response = test_utils.unmount_device("ROADM-A1") tpcetest.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) + def disconnect_roadmC(self): response = test_utils.unmount_device("ROADM-C1") tpcetest.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content)) + def uninstall_Tapi_Feature(self): test_utils.uninstall_karaf_feature("odl-transportpce-tapi") time.sleep(5) diff --git a/tests/transportpce_tests/pce/test05_pce_tapi.py b/tests/transportpce_tests/pce/test05_pce_tapi.py index 5f81cb058..cbefd31b5 100644 --- a/tests/transportpce_tests/pce/test05_pce_tapi.py +++ b/tests/transportpce_tests/pce/test05_pce_tapi.py @@ -12,6 +12,7 @@ # pylint: disable=no-member # pylint: disable=too-many-public-methods +import test_utils_generate_tapi_topo import os import unittest import time @@ -22,7 +23,6 @@ sys.path.append('transportpce_tests/common/') # pylint: disable=wrong-import-position # pylint: disable=import-error import test_utils # nopep8 -import test_utils_generate_tapi_topo # pylint: disable=too-few-public-methods @@ -33,6 +33,7 @@ class UuidServices: self.odu = None self.dsr = None + class TransportPCEtest(unittest.TestCase): # SIP+SPDR-SA1-XPDR1+PHOTONIC_MEDIA_OTS+XPDR1-NETWORK1 UUID IS sAOTS = "38d81f55-1798-3520-ba16-08efa56630c4" @@ -69,10 +70,10 @@ class TransportPCEtest(unittest.TestCase): "service-rate": "400", "clli": "SPDR-SA2", "service-format": "OC", - "tx-direction" : { + "tx-direction": { "logical-connection-point": "53e45a61-48a5-3d47-a045-b8418c3e9f8a" }, - "rx-direction" : { + "rx-direction": { "logical-connection-point": "53e45a61-48a5-3d47-a045-b8418c3e9f8a" }, "node-id": "SPDR-SA2" @@ -81,10 +82,10 @@ class TransportPCEtest(unittest.TestCase): "service-rate": "400", "clli": "SPDR-SC2", "service-format": "OC", - "tx-direction" : { + "tx-direction": { "logical-connection-point": "c7549fcc-895f-3fa2-ad81-ea00e25772e9" }, - "rx-direction" : { + "rx-direction": { "logical-connection-point": "c7549fcc-895f-3fa2-ad81-ea00e25772e9" }, "node-id": "SPDR-SC2" @@ -165,9 +166,8 @@ class TransportPCEtest(unittest.TestCase): # s2ZOTS = "c7549fcc-895f-3fa2-ad81-ea00e25772e9" # # SIP+SPDR-SA1-XPDR3+PHOTONIC_MEDIA_OTS+XPDR3-NETWORK1 UUID IS del_serv_input_data = {"uuid": "TBD"} - - tapi_topo = {"topology-id": "TBD"} + tapi_topo = {"topology-id": "TBD"} @classmethod def setUpClass(self): @@ -189,8 +189,8 @@ class TransportPCEtest(unittest.TestCase): def setUp(self): time.sleep(2) - # Path Computation success + def test_01_path_computation_spdr_x2(self): response = test_utils.transportpce_api_rpc_request('transportpce-pce', 'path-computation-request', @@ -246,12 +246,12 @@ class TransportPCEtest(unittest.TestCase): # self.path_computation_input_data["hard-constraints"] = {"customer-code": ["Some customer-code"], # "co-routing": { # "service-identifier-list": [{ - #2 "service-identifier": "Some existing-service"}] + # 2 "service-identifier": "Some existing-service"}] # }} # self.path_computation_input_data["soft-constraints"] = {"customer-code": ["Some customer-code"], # "co-routing": { # "service-identifier-list": [{ - #2 "service-identifier": "Some existing-service"}] + # 2 "service-identifier": "Some existing-service"}] # }} # response = test_utils.transportpce_api_rpc_request('transportpce-pce', # 'path-computation-request', @@ -356,8 +356,8 @@ class TransportPCEtest(unittest.TestCase): # # # def create_connectivity_service2_PhotonicMedia(self): -#2 self.cr_serv_input_data["end-point"][0]["service-interface-point"]["service-interface-point-uuid"] = self.s2AOTS -#2 self.cr_serv_input_data["end-point"][1]["service-interface-point"]["service-interface-point-uuid"] = self.s2ZOTS +# 2 self.cr_serv_input_data["end-point"][0]["service-interface-point"]["service-interface-point-uuid"] = self.s2AOTS +# 2 self.cr_serv_input_data["end-point"][1]["service-interface-point"]["service-interface-point-uuid"] = self.s2ZOTS # self.cr_serv_input_data["end-point"][0]["local-id"] = "SPDR-SA1-XPDR2" # self.cr_serv_input_data["end-point"][1]["local-id"] = "SPDR-SC1-XPDR2" # self.cr_serv_input_data["end-point"][0]["name"][0]["value"] = "SPDR-SA1-XPDR2" @@ -400,6 +400,5 @@ class TransportPCEtest(unittest.TestCase): # time.sleep(1) - if __name__ == "__main__": unittest.main(verbosity=2) pre-commit: exit 1 (38.47 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure pid=2499 ************* Module test05_pce_tapi transportpce_tests/pce/test05_pce_tapi.py:213:0: C0301: Line too long (142/120) (line-too-long) transportpce_tests/pce/test05_pce_tapi.py:216:0: C0301: Line too long (142/120) (line-too-long) transportpce_tests/pce/test05_pce_tapi.py:173:4: C0202: Class method setUpClass should have 'cls' as first argument (bad-classmethod-argument) transportpce_tests/pce/test05_pce_tapi.py:182:4: C0202: Class method tearDownClass should have 'cls' as first argument (bad-classmethod-argument) transportpce_tests/pce/test05_pce_tapi.py:187:52: E0602: Undefined variable 'cls' (undefined-variable) transportpce_tests/pce/test05_pce_tapi.py:15:0: W0611: Unused import os (unused-import) ************* Module common.test_utils_generate_tapi_topo transportpce_tests/common/test_utils_generate_tapi_topo.py:82:0: C0103: Function name "setUp" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:82:10: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:113:0: R0915: Too many statements (81/50) (too-many-statements) transportpce_tests/common/test_utils_generate_tapi_topo.py:113:32: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:255:0: C0103: Function name "add_omsAttributes_to_ROADM2ROADM_links" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:255:43: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:299:0: C0103: Function name "create_connectivity_service_PhotonicMedia" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:308:10: C0209: Formatting a regular string which could be an f-string (consider-using-f-string) transportpce_tests/common/test_utils_generate_tapi_topo.py:333:0: C0103: Function name "get_service_PhotonicMedia" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:333:30: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:342:0: C0103: Function name "create_connectivity_service2_PhotonicMedia" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:355:10: C0209: Formatting a regular string which could be an f-string (consider-using-f-string) transportpce_tests/common/test_utils_generate_tapi_topo.py:377:0: C0103: Function name "get_service2_PhotonicMedia" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:377:31: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:386:0: C0103: Function name "create_connectivity_service3_PhotonicMedia" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:399:10: C0209: Formatting a regular string which could be an f-string (consider-using-f-string) transportpce_tests/common/test_utils_generate_tapi_topo.py:421:0: C0103: Function name "get_service3_PhotonicMedia" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:421:31: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:431:0: C0103: Function name "create_connectivity_service_ODU" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:451:10: C0209: Formatting a regular string which could be an f-string (consider-using-f-string) transportpce_tests/common/test_utils_generate_tapi_topo.py:474:0: C0103: Function name "get_service_ODU" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:474:20: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:484:0: C0103: Function name "create_connectivity_service3_ODU" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:504:10: C0209: Formatting a regular string which could be an f-string (consider-using-f-string) transportpce_tests/common/test_utils_generate_tapi_topo.py:527:0: C0103: Function name "get_service3_ODU" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:527:21: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:536:0: C0103: Function name "create_connectivity_service_DSR" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:557:10: C0209: Formatting a regular string which could be an f-string (consider-using-f-string) transportpce_tests/common/test_utils_generate_tapi_topo.py:583:0: C0103: Function name "get_service_DSR" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:583:20: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:601:4: E1120: No value for argument 'self' in function call (no-value-for-parameter) transportpce_tests/common/test_utils_generate_tapi_topo.py:603:0: C0103: Function name "delete_connectivity_service_DSR" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:610:0: C0103: Function name "delete_connectivity_service_ODU" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:617:0: C0103: Function name "delete_connectivity_service3_ODU" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:624:0: C0103: Function name "delete_connectivity_service_PhotonicMedia" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:631:0: C0103: Function name "delete_connectivity_service3_PhotonicMedia" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:638:0: C0103: Function name "delete_connectivity_service2_PhotonicMedia" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:645:25: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:665:0: C0103: Function name "disconnect_spdrA" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:665:21: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:669:0: C0103: Function name "disconnect_spdrC" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:669:21: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:673:0: C0103: Function name "disconnect_roadmA" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:673:22: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:677:0: C0103: Function name "disconnect_roadmC" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:677:22: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:681:0: C0103: Function name "uninstall_Tapi_Feature" doesn't conform to snake_case naming style (invalid-name) transportpce_tests/common/test_utils_generate_tapi_topo.py:681:27: W0613: Unused argument 'self' (unused-argument) transportpce_tests/common/test_utils_generate_tapi_topo.py:15:0: W0611: Unused import os (unused-import) ----------------------------------- Your code has been rated at 9.95/10 pre-commit: FAIL ✖ in 41.61 seconds pylint: exit 1 (25.18 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> find transportpce_tests/ -name '*.py' -exec pylint --fail-under=10 --max-line-length=120 --disable=missing-docstring,import-error --disable=fixme --disable=duplicate-code '--module-rgx=([a-z0-9_]+$)|([0-9.]{1,30}$)' '--method-rgx=(([a-z_][a-zA-Z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-zA-Z][a-zA-Z0-9_]+__))$' '--variable-rgx=[a-zA-Z_][a-zA-Z0-9_]{1,30}$' '{}' + pid=3270 pylint: FAIL ✖ in 29.57 seconds buildcontroller: OK ✔ in 1 minute 49.51 seconds build_karaf_tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt sims: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt build_karaf_tests121: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt testsPCE: install_deps> python -I -m pip install gnpy4tpce==2.4.7 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt sims: freeze> python -m pip freeze --all build_karaf_tests121: freeze> python -m pip freeze --all build_karaf_tests221: freeze> python -m pip freeze --all sims: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.3.1,urllib3==2.5.0 sims: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_lightynode.sh Using lighynode version 20.1.0.5 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory build_karaf_tests121: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.3.1,urllib3==2.5.0 build_karaf_tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh build_karaf_tests221: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.3.1,urllib3==2.5.0 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh sims: OK ✔ in 11.15 seconds build_karaf_tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt build_karaf_tests71: freeze> python -m pip freeze --all build_karaf_tests71: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.3.1,urllib3==2.5.0 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh build_karaf_tests121: OK ✔ in 1 minute 1.81 seconds build_karaf_tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt build_karaf_tests221: OK ✔ in 1 minute 3.49 seconds build_karaf_tests_hybrid: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt build_karaf_tests71: OK ✔ in 1 minute 4.94 seconds build_karaf_tests190: freeze> python -m pip freeze --all build_karaf_tests_hybrid: freeze> python -m pip freeze --all build_karaf_tests190: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.3.1,urllib3==2.5.0 build_karaf_tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh build_karaf_tests_hybrid: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.3.1,urllib3==2.5.0 build_karaf_tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh testsPCE: freeze> python -m pip freeze --all testsPCE: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,click==8.2.1,contourpy==1.3.2,cryptography==3.3.2,cycler==0.12.1,dict2xml==1.7.7,Flask==2.1.3,Flask-Injector==0.14.0,fonttools==4.59.0,gnpy4tpce==2.4.7,idna==3.10,iniconfig==2.1.0,injector==0.22.0,itsdangerous==2.2.0,Jinja2==3.1.6,kiwisolver==1.4.8,lxml==6.0.0,MarkupSafe==3.0.2,matplotlib==3.10.3,netconf-client==3.3.0,networkx==2.8.8,numpy==1.26.4,packaging==25.0,pandas==1.5.3,paramiko==3.5.1,pbr==5.11.1,pillow==11.3.0,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pyparsing==3.2.3,pytest==8.4.1,python-dateutil==2.9.0.post0,pytz==2025.2,requests==2.32.4,scipy==1.16.0,setuptools==50.3.2,six==1.17.0,urllib3==2.5.0,Werkzeug==2.0.3,xlrd==1.2.0 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce pytest -q transportpce_tests/pce/test01_pce.py build_karaf_tests_hybrid: OK ✔ in 1 minute 4.01 seconds build_karaf_tests190: OK ✔ in 1 minute 8.19 seconds tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt tests190: freeze> python -m pip freeze --all tests190: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.3.1,urllib3==2.5.0 tests190: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh oc using environment variables from ./karafoc.env pytest -q transportpce_tests/oc/test01_portmapping.py ....................... [100%] 10 passed in 47.00s pytest -q transportpce_tests/oc/test02_topology.py .......... [100%] 20 passed in 128.62s (0:02:08) pytest -q transportpce_tests/pce/test02_pce_400G.py .............. [100%] 14 passed in 57.08s pytest -q transportpce_tests/oc/test03_renderer.py ........... [100%] 12 passed in 47.05s pytest -q transportpce_tests/pce/test03_gnpy.py .................... [100%] 19 passed in 47.90s ..... [100%] 8 passed in 40.92s pytest -q transportpce_tests/pce/test04_pce_bug_fix.py ... [100%] 3 passed in 36.03s pytest -q transportpce_tests/pce/test05_pce_tapi.py ==================================== ERRORS ==================================== __________ ERROR collecting transportpce_tests/pce/test05_pce_tapi.py __________ ImportError while importing test module '/w/workspace/transportpce-tox-verify-transportpce-master/tests/transportpce_tests/pce/test05_pce_tapi.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: /opt/pyenv/versions/3.11.10/lib/python3.11/importlib/__init__.py:126: in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ transportpce_tests/pce/test05_pce_tapi.py:15: in import test_utils_generate_tapi_topo E ModuleNotFoundError: No module named 'test_utils_generate_tapi_topo' =========================== short test summary info ============================ ERROR transportpce_tests/pce/test05_pce_tapi.py !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! 1 error in 0.13s tests190: OK ✔ in 2 minutes 49.32 seconds testsPCE: exit 1 (254.64 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce pid=4302 testsPCE: FAIL ✖ in 5 minutes 53.1 seconds tests_tapi: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt tests_tapi: freeze> python -m pip freeze --all tests_tapi: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.3.1,urllib3==2.5.0 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi using environment variables from ./karaf221.env pytest -q transportpce_tests/tapi/test01_abstracted_topology.py ................................................... [100%] 51 passed in 434.57s (0:07:14) pytest -q transportpce_tests/tapi/test02_full_topology.py ................FFF.FF.FFFFFFF...... [100%] =================================== FAILURES =================================== ____________ TransportPCEtesting.test_17_get_service_PhotonicMedia _____________ self = def test_17_get_service_PhotonicMedia(self): response = test_utils.get_ordm_serv_list_attr_request("services", str(self.uuid_services.pm)) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 409 != 200 transportpce_tests/tapi/test02_full_topology.py:345: AssertionError _ TransportPCEtesting.test_18a_get_tapi_Pht_node_details_at_Pht_Service_creation _ self = def test_18a_get_tapi_Pht_node_details_at_Pht_Service_creation(self): response = test_utils.get_tapi_topology_node( test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1OTS, "nonconfig") time.sleep(2) self.assertEqual(response['status_code'], requests.codes.ok) input_dict_1 = {"spectrum-capability-pac": {"occupied-spectrum": [{"upper-frequency": "196125000000000", "lower-frequency": "196075000000000"}], "supportable-spectrum": [{"upper-frequency": "196125000000000", "lower-frequency": "191325000000000"}]} } self.assertDictEqual(dict(input_dict_1, **response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']), response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']) self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'eNodeEdgePoint') self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+PHOTONIC_MEDIA_OTS+XPDR1-NETWORK1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '100.0') self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] ['client-node-edge-point'][0]['node-edge-point-uuid'], 'f32f5e9e-d167-31ba-a9e4-8f1efdb8786d') self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] ['parent-node-edge-point']['node-edge-point-uuid'], '21efd6a4-2d81-3cdb-aabb-b983fb61904e') response = test_utils.get_tapi_topology_node( test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1OTSi, "nonconfig") time.sleep(2) self.assertDictEqual(dict(input_dict_1, **response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']), response['onep'][0]['tapi-photonic-media:photonic-media-node-edge-point-spec']) self.assertEqual(response['status_code'], requests.codes.ok) self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'PhotMedNodeEdgePoint') self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+OTSi_MEDIA_CHANNEL+XPDR1-NETWORK1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '100.0') > self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ['client-node-edge-point'][0]['node-edge-point-uuid'], '7d2a0549-63e3-3c7f-b4dc-5653e8a81dbe') E KeyError: 'tapi-connectivity:cep-list' transportpce_tests/tapi/test02_full_topology.py:396: KeyError _ TransportPCEtesting.test_18b_get_tapi_OTN_node_details_at_Pht_Service_creation _ self = def test_18b_get_tapi_OTN_node_details_at_Pht_Service_creation(self): response = test_utils.get_tapi_topology_node( test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1iODU, "nonconfig") time.sleep(2) self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'iNodeEdgePoint_N') self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+iODU+XPDR1-NETWORK1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '100.0') self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '100.0') response = test_utils.get_tapi_topology_node(test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1eODUC1, "nonconfig") time.sleep(2) self.assertEqual(response['onep'][0]['name'][0]['value-name'], 'eNodeEdgePoint_N') self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+eODU+XPDR1-CLIENT1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '10.0') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '10.0') self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '10.0') > self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ['parent-node-edge-point']['node-edge-point-uuid'], '72c6b97a-3944-3d88-9882-b7e688bb2772') E KeyError: 'tapi-connectivity:cep-list' transportpce_tests/tapi/test02_full_topology.py:446: KeyError __ TransportPCEtesting.test_20_get_tapi_node_details_at_ODU_Service_creation ___ self = def test_20_get_tapi_node_details_at_ODU_Service_creation(self): # ODU service creation correspond to the creation of HO-ODU between 2 Network ports and is associated an # iODU4 top connection which uses 100% of underlying OTU4 response = test_utils.get_tapi_topology_node(test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1eODUC1, "nonconfig") time.sleep(2) self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+eODU+XPDR1-CLIENT1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['available-payload-structure'][0]['capacity']['value'], '10.0') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['number-of-cep-instances'], '1') self.assertEqual(response['onep'][0]['supported-payload-structure'][0]['capacity']['value'], '10.0') self.assertEqual(response['onep'][0]['available-capacity']['total-size']['value'], '10.0') > self.assertEqual(response['onep'][0]['tapi-connectivity:cep-list']['connection-end-point'][0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ['client-node-edge-point'][0]['node-edge-point-uuid'], 'c6cd334c-51a1-3995-bed3-5cf2b7445c04') E KeyError: 'tapi-connectivity:cep-list' transportpce_tests/tapi/test02_full_topology.py:504: KeyError _________________ TransportPCEtesting.test_21_get_service_ODU __________________ self = def test_21_get_service_ODU(self): response = test_utils.get_ordm_serv_list_attr_request("services", str(self.uuid_services.odu)) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 409 != 200 transportpce_tests/tapi/test02_full_topology.py:551: AssertionError __ TransportPCEtesting.test_23_get_tapi_node_details_at_DSR_Service_creation ___ self = def test_23_get_tapi_node_details_at_DSR_Service_creation(self): response = test_utils.get_tapi_topology_node(test_utils.T0_FULL_MULTILAYER_TOPO_UUID, self.uuidSpdrSA1xpdr1, self.uuidOnepSpdrSA1xpdr1eODUC1, "nonconfig") time.sleep(2) self.assertEqual(response['onep'][0]['name'][0]['value'], 'SPDR-SA1-XPDR1+eODU+XPDR1-CLIENT1') self.assertEqual(response['onep'][0]['administrative-state'], 'UNLOCKED') self.assertEqual(response['onep'][0]['operational-state'], 'ENABLED') > self.assertEqual(response['onep'][0]['available-payload-structure'][0]['number-of-cep-instances'], '0') E AssertionError: '1' != '0' E - 1 E + 0 transportpce_tests/tapi/test02_full_topology.py:611: AssertionError _________________ TransportPCEtesting.test_24_get_service_DSR __________________ self = def test_24_get_service_DSR(self): response = test_utils.get_ordm_serv_list_attr_request("services", str(self.uuid_services.dsr)) > self.assertEqual(response['status_code'], requests.codes.ok) E AssertionError: 409 != 200 transportpce_tests/tapi/test02_full_topology.py:641: AssertionError __________ TransportPCEtesting.test_25_get_connectivity_service_list ___________ self = def test_25_get_connectivity_service_list(self): response = test_utils.transportpce_api_rpc_request( 'tapi-connectivity', 'get-connectivity-service-list', None) self.assertEqual(response['status_code'], requests.codes.ok) liste_service = response['output']['service'] for ele in liste_service: if ele['uuid'] == self.uuid_services.pm: self.assertEqual(ele['operational-state'], 'ENABLED') # self.assertEqual(ele['service-layer'], 'PHOTONIC_MEDIA') self.assertEqual(ele['layer-protocol-name'], 'PHOTONIC_MEDIA') nbconnection = len(ele['connection']) self.assertEqual(nbconnection, 4, 'There should be 4 connections') elif ele['uuid'] == self.uuid_services.odu: > self.assertEqual(ele['operational-state'], 'ENABLED') E AssertionError: 'DISABLED' != 'ENABLED' E - DISABLED E + ENABLED transportpce_tests/tapi/test02_full_topology.py:661: AssertionError _________ TransportPCEtesting.test_26_delete_connectivity_service_DSR __________ self = def test_26_delete_connectivity_service_DSR(self): self.del_serv_input_data["uuid"] = str(self.uuid_services.dsr) response = test_utils.transportpce_api_rpc_request( 'tapi-connectivity', 'delete-connectivity-service', self.del_serv_input_data) > self.assertIn(response["status_code"], (requests.codes.ok, requests.codes.no_content)) E AssertionError: 500 not found in (200, 204) transportpce_tests/tapi/test02_full_topology.py:680: AssertionError _________ TransportPCEtesting.test_27_delete_connectivity_service_ODU __________ self = def test_27_delete_connectivity_service_ODU(self): self.del_serv_input_data["uuid"] = str(self.uuid_services.odu) response = test_utils.transportpce_api_rpc_request( 'tapi-connectivity', 'delete-connectivity-service', self.del_serv_input_data) > self.assertIn(response["status_code"], (requests.codes.ok, requests.codes.no_content)) E AssertionError: 500 not found in (200, 204) transportpce_tests/tapi/test02_full_topology.py:687: AssertionError ____ TransportPCEtesting.test_28_delete_connectivity_service_PhotonicMedia _____ self = def test_28_delete_connectivity_service_PhotonicMedia(self): self.del_serv_input_data["uuid"] = str(self.uuid_services.pm) response = test_utils.transportpce_api_rpc_request( 'tapi-connectivity', 'delete-connectivity-service', self.del_serv_input_data) > self.assertIn(response["status_code"], (requests.codes.ok, requests.codes.no_content)) E AssertionError: 500 not found in (200, 204) transportpce_tests/tapi/test02_full_topology.py:694: AssertionError _______________ TransportPCEtesting.test_29_get_no_tapi_services _______________ self = def test_29_get_no_tapi_services(self): response = test_utils.transportpce_api_rpc_request( 'tapi-connectivity', 'get-connectivity-service-list', None) > self.assertEqual(response['status_code'], requests.codes.internal_server_error) E AssertionError: 200 != 500 transportpce_tests/tapi/test02_full_topology.py:700: AssertionError =========================== short test summary info ============================ FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_17_get_service_PhotonicMedia FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_18a_get_tapi_Pht_node_details_at_Pht_Service_creation FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_18b_get_tapi_OTN_node_details_at_Pht_Service_creation FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_20_get_tapi_node_details_at_ODU_Service_creation FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_21_get_service_ODU FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_23_get_tapi_node_details_at_DSR_Service_creation FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_24_get_service_DSR FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_25_get_connectivity_service_list FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_26_delete_connectivity_service_DSR FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_27_delete_connectivity_service_ODU FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_28_delete_connectivity_service_PhotonicMedia FAILED transportpce_tests/tapi/test02_full_topology.py::TransportPCEtesting::test_29_get_no_tapi_services 12 failed, 24 passed in 245.82s (0:04:05) tests_tapi: exit 1 (681.04 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi pid=8974 tests_tapi: FAIL ✖ in 11 minutes 27.39 seconds tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt tests71: freeze> python -m pip freeze --all tests71: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.3.1,urllib3==2.5.0 tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 using environment variables from ./karaf71.env pytest -q transportpce_tests/7.1/test01_portmapping.py ............ [100%] 12 passed in 42.22s pytest -q transportpce_tests/7.1/test02_otn_renderer.py .............................................................. [100%] 62 passed in 155.66s (0:02:35) pytest -q transportpce_tests/7.1/test03_renderer_or_modes.py ................................................ [100%] 48 passed in 134.60s (0:02:14) pytest -q transportpce_tests/7.1/test04_renderer_regen_mode.py ...................... [100%] 22 passed in 72.33s (0:01:12) tests71: OK ✔ in 6 minutes 52.57 seconds tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt tests221: freeze> python -m pip freeze --all tests221: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.3.1,urllib3==2.5.0 tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 using environment variables from ./karaf221.env pytest -q transportpce_tests/2.2.1/test01_portmapping.py ................................... [100%] 35 passed in 74.98s (0:01:14) pytest -q transportpce_tests/2.2.1/test02_topo_portmapping.py ...... [100%] 6 passed in 43.62s pytest -q transportpce_tests/2.2.1/test03_topology.py ............................................ [100%] 44 passed in 135.54s (0:02:15) pytest -q transportpce_tests/2.2.1/test04_otn_topology.py ............ [100%] 12 passed in 58.63s pytest -q transportpce_tests/2.2.1/test05_flex_grid.py ................ [100%] 16 passed in 113.98s (0:01:53) pytest -q transportpce_tests/2.2.1/test06_renderer_service_path_nominal.py ............................... [100%] 31 passed in 34.74s pytest -q transportpce_tests/2.2.1/test07_otn_renderer.py .......................... [100%] 26 passed in 90.53s (0:01:30) pytest -q transportpce_tests/2.2.1/test08_otn_sh_renderer.py ...................... [100%] 22 passed in 98.96s (0:01:38) pytest -q transportpce_tests/2.2.1/test09_olm.py ........................................ [100%] 40 passed in 181.66s (0:03:01) pytest -q transportpce_tests/2.2.1/test11_otn_end2end.py ........................................................................ [ 74%] ......................... [100%] 97 passed in 490.28s (0:08:10) pytest -q transportpce_tests/2.2.1/test12_end2end.py ...................................................... [100%] 54 passed in 445.52s (0:07:25) pytest -q transportpce_tests/2.2.1/test14_otn_switch_end2end.py ........................................................................ [ 71%] ............................. [100%] 101 passed in 670.59s (0:11:10) pytest -q transportpce_tests/2.2.1/test15_otn_end2end_with_intermediate_switch.py ........................................................................ [ 67%] ................................... [100%] 107 passed in 600.44s (0:10:00) pytest -q transportpce_tests/2.2.1/test16_freq_end2end.py ............................................. [100%] 45 passed in 198.39s (0:03:18) tests221: OK ✔ in 54 minutes 9.25 seconds tests121: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt tests121: freeze> python -m pip freeze --all tests121: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.9.0,urllib3==2.5.0 tests121: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 1.2.1 using environment variables from ./karaf121.env pytest -q transportpce_tests/1.2.1/test01_portmapping.py ..................... [100%] 21 passed in 86.23s (0:01:26) pytest -q transportpce_tests/1.2.1/test02_topo_portmapping.py ...... [100%] 6 passed in 44.93s pytest -q transportpce_tests/1.2.1/test03_topology.py ............................................ [100%] 44 passed in 136.15s (0:02:16) pytest -q transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py ........................ [100%] 24 passed in 81.82s (0:01:21) pytest -q transportpce_tests/1.2.1/test05_olm.py ........................................ [100%] 40 passed in 180.85s (0:03:00) pytest -q transportpce_tests/1.2.1/test06_end2end.py ...................................................... [100%] 54 passed in 532.75s (0:08:52) tests121: OK ✔ in 17 minutes 51.08 seconds tests_hybrid: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt tests_hybrid: freeze> python -m pip freeze --all tests_hybrid: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.9.0,urllib3==2.5.0 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid using environment variables from ./karaf121.env pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py ................................................... [100%] 51 passed in 151.24s (0:02:31) pytest -q transportpce_tests/hybrid/test02_B100G_end2end.py ........................................................................ [ 66%] ..................................... [100%] 109 passed in 428.67s (0:07:08) pytest -q transportpce_tests/hybrid/test03_autonomous_reroute.py ..................................................... [100%] 53 passed in 438.09s (0:07:18) tests_hybrid: OK ✔ in 17 minutes 6.08 seconds buildlighty: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt buildlighty: freeze> python -m pip freeze --all buildlighty: bcrypt==4.3.0,certifi==2025.7.14,cffi==1.17.1,charset-normalizer==3.4.2,cryptography==45.0.5,dict2xml==1.7.7,idna==3.10,iniconfig==2.1.0,lxml==6.0.0,netconf-client==3.3.0,packaging==25.0,paramiko==3.5.1,pip==25.1.1,pluggy==1.6.0,psutil==7.0.0,pycparser==2.22,Pygments==2.19.2,PyNaCl==1.5.0,pytest==8.4.1,requests==2.32.4,setuptools==80.9.0,urllib3==2.5.0 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh buildcontroller: OK (109.51=setup[8.89]+cmd[100.63] seconds) testsPCE: FAIL code 1 (353.10=setup[98.46]+cmd[254.64] seconds) sims: OK (11.15=setup[7.58]+cmd[3.56] seconds) build_karaf_tests121: OK (61.81=setup[7.70]+cmd[54.11] seconds) tests121: OK (1071.08=setup[6.55]+cmd[1064.53] seconds) build_karaf_tests221: OK (63.49=setup[7.74]+cmd[55.75] seconds) tests_tapi: FAIL code 1 (687.39=setup[6.36]+cmd[681.04] seconds) tests221: OK (3249.25=setup[7.34]+cmd[3241.91] seconds) build_karaf_tests71: OK (64.94=setup[17.05]+cmd[47.89] seconds) tests71: OK (412.57=setup[6.59]+cmd[405.98] seconds) build_karaf_tests190: OK (68.19=setup[18.30]+cmd[49.90] seconds) tests190: OK (169.32=setup[16.48]+cmd[152.84] seconds) build_karaf_tests_hybrid: OK (64.01=setup[16.82]+cmd[47.19] seconds) tests_hybrid: OK (1026.08=setup[7.16]+cmd[1018.91] seconds) buildlighty: OK (25.73=setup[7.38]+cmd[18.35] seconds) docs: OK (31.08=setup[28.78]+cmd[2.30] seconds) docs-linkcheck: OK (31.06=setup[28.70]+cmd[2.35] seconds) checkbashisms: OK (3.42=setup[2.13]+cmd[0.01,0.07,1.21] seconds) pre-commit: FAIL code 1 (41.61=setup[3.13]+cmd[0.00,0.00,38.47] seconds) pylint: FAIL code 1 (29.57=setup[4.39]+cmd[25.18] seconds) evaluation failed :( (6934.81 seconds)