- cinder_test
- odl
- tempest_smoke
+ - tempest_horizon
- container: functest-smoke
tests:
- neutron-tempest-plugin-api
ARG OPENSTACK_TAG=stable/rocky
ARG TEMPEST_TAG=21.0.0
ARG ODL_TAG=85448c9d97b89989488e675b29b38ac42d8674e4
+ARG TEMPEST_HORIZON_TAG=0.1.0
COPY thirdparty-requirements.txt thirdparty-requirements.txt
RUN wget -q -O- https://opendev.org/openstack/requirements/raw/branch/$OPENSTACK_TAG/upper-constraints.txt > upper-constraints.txt && \
case $(uname -m) in aarch*|arm*) sed -i -E /^PyNaCl=/d upper-constraints.txt ;; esac && \
wget -q -O- https://git.opnfv.org/functest/plain/upper-constraints.txt?h=$BRANCH > upper-constraints.opnfv.txt && \
sed -i -E /#egg=functest/d upper-constraints.opnfv.txt && \
+ git init /src/tempest-horizon && \
+ (cd /src/tempest-horizon && \
+ git fetch --tags https://opendev.org/openstack/tempest-horizon.git $TEMPEST_HORIZON_TAG && \
+ git checkout FETCH_HEAD) && \
+ update-requirements -s --source /src/openstack-requirements /src/tempest-horizon/ && \
pip install --no-cache-dir --src /src -cupper-constraints.txt -cupper-constraints.opnfv.txt \
- -rthirdparty-requirements.txt && \
+ /src/tempest-horizon/ -rthirdparty-requirements.txt && \
git init /src/odl_test && \
(cd /src/odl_test && \
git fetch --tags https://git.opendaylight.org/gerrit/integration/test $ODL_TAG && \
git checkout FETCH_HEAD) && \
- rm -r /src/odl_test/.git thirdparty-requirements.txt upper-constraints.txt \
- upper-constraints.opnfv.txt
+ rm -r /src/odl_test/.git /src/tempest-horizon/ thirdparty-requirements.txt upper-constraints.txt \
+ upper-constraints.opnfv.txt && \
+ apk del .build-deps
COPY testcases.yaml /usr/lib/python2.7/site-packages/xtesting/ci/testcases.yaml
CMD ["run_tests", "-t", "all"]
mode: '(?=.*\[.*\bsmoke\b.*\])(^tempest\.api)'
option:
- '--concurrency=3'
+
+ -
+ case_name: tempest_horizon
+ project_name: functest
+ criteria: 100
+ blocking: false
+ description: >-
+ This test case runs the Tempest suite proposed by the
+ Horizon project.
+ dependencies:
+ - DASHBOARD_URL: '^(?!\s*$).+'
+ run:
+ name: tempest_horizon
+ args:
+ mode: '^tempest_horizon.'
* cinder_test
* odl
* tempest_smoke
+ * tempest_horizon
* neutron-tempest-plugin-api
* tempest_cinder
* tempest_keystone
option:
- '--concurrency=3'
+ -
+ case_name: tempest_horizon
+ project_name: functest
+ criteria: 100
+ blocking: false
+ description: >-
+ This test case runs the Tempest suite proposed by the
+ Horizon project.
+ dependencies:
+ - DASHBOARD_URL: '^(?!\s*$).+'
+ run:
+ name: tempest_horizon
+ args:
+ mode: '^tempest_horizon.'
+
-
name: smoke
order: 1
return super(TempestScenario, self).run(**kwargs)
+class TempestHorizon(TempestCommon):
+ """Tempest Horizon testcase implementation class."""
+
+ def configure(self, **kwargs):
+ super(TempestHorizon, self).configure(**kwargs)
+ rconfig = configparser.RawConfigParser()
+ rconfig.read(self.conf_file)
+ if not rconfig.has_section('dashboard'):
+ rconfig.add_section('dashboard')
+ rconfig.set('dashboard', 'dashboard_url', env.get('DASHBOARD_URL'))
+ with open(self.conf_file, 'w') as config_file:
+ rconfig.write(config_file)
+ self.backup_tempest_config(self.conf_file, self.res_dir)
+
+
class TempestHeat(TempestCommon):
"""Tempest Heat testcase implementation class."""
'BLOCK_MIGRATION': 'False',
'CLEAN_ORPHAN_SECURITY_GROUPS': 'True',
'SKIP_DOWN_HYPERVISORS': 'False',
- 'PUBLIC_ENDPOINT_ONLY': 'False'
+ 'PUBLIC_ENDPOINT_ONLY': 'False',
+ 'DASHBOARD_URL': ''
}
odl = functest.opnfv_tests.sdn.odl.odl:ODLTests
tempest_common = functest.opnfv_tests.openstack.tempest.tempest:TempestCommon
tempest_scenario = functest.opnfv_tests.openstack.tempest.tempest:TempestScenario
+ tempest_horizon = functest.opnfv_tests.openstack.tempest.tempest:TempestHorizon
tempest_heat = functest.opnfv_tests.openstack.tempest.tempest:TempestHeat
rally_sanity = functest.opnfv_tests.openstack.rally.rally:RallySanity
refstack_defcore = functest.opnfv_tests.openstack.refstack.refstack:Refstack