diff --git a/src/test-requirements.txt b/src/test-requirements.txt index 36f5b7a..5dbcd03 100644 --- a/src/test-requirements.txt +++ b/src/test-requirements.txt @@ -5,14 +5,7 @@ coverage>=3.6 mock>=1.2 flake8>=2.2.4,<=2.4.1 os-testr>=0.4.1 -charm-tools>=2.0.0 requests==2.6.0 -# amulet deployment helpers -git+https://github.com/juju/charm-helpers#egg=charmhelpers -# BEGIN: Amulet OpenStack Charm Helper Requirements -# Liberty client lower constraints -amulet>=1.14.3,<2.0 -bundletester>=0.6.1,<1.0 aodhclient>=0.1.0 python-barbicanclient>=4.0.1 python-ceilometerclient>=1.5.0 @@ -30,3 +23,4 @@ distro-info # END: Amulet OpenStack Charm Helper Requirements # NOTE: workaround for 14.04 pip/tox pytz +git+https://github.com/openstack-charmers/zaza.git#egg=zaza diff --git a/src/tests/bundles/bionic-queens-functional.yaml b/src/tests/bundles/bionic-queens-functional.yaml new file mode 100644 index 0000000..699aca4 --- /dev/null +++ b/src/tests/bundles/bionic-queens-functional.yaml @@ -0,0 +1,43 @@ +series: bionic +relations: +- [neutron-dynamic-routing, rabbitmq-server] +- [neutron-dynamic-routing, quagga] +- [keystone, mysql] +- [neutron-api, mysql] +- [neutron-api, rabbitmq-server] +- [neutron-api, keystone] +applications: + keystone: + charm: cs:~openstack-charmers-next/bionic/keystone + constraints: mem=1G + num_units: 1 + options: {admin-password: openstack, admin-token: ubuntutesting} + series: bionic + mysql: + charm: cs:~openstack-charmers-next/bionic/percona-cluster + constraints: mem=4G + num_units: 1 + series: bionic + neutron-api: + charm: cs:~openstack-charmers-next/bionic/neutron-api + constraints: mem=1G + num_units: 1 + options: {dns-domain: mojo.serverstack., enable-ml2-dns: true, flat-network-providers: physnet1, + ipv4-ptr-zone-prefix-size: 24, neutron-security-groups: true, reverse-dns-lookup: true} + series: bionic + neutron-dynamic-routing: + charm: ../../../neutron-dynamic-routing + num_units: 1 + options: {asn: 12345} + series: bionic + rabbitmq-server: + charm: cs:~openstack-charmers-next/bionic/rabbitmq-server + constraints: mem=1G + num_units: 1 + series: bionic + quagga: + charm: cs:~openstack-charmers-next/bionic/quagga + num_units: 1 + options: {asn: 10000} + series: bionic + diff --git a/src/tests/bundles/xenial-pike-functional.yaml b/src/tests/bundles/xenial-pike-functional.yaml new file mode 100644 index 0000000..9c857fe --- /dev/null +++ b/src/tests/bundles/xenial-pike-functional.yaml @@ -0,0 +1,46 @@ +series: xenial +relations: +- [neutron-dynamic-routing, rabbitmq-server] +- [neutron-dynamic-routing, quagga] +- [keystone, mysql] +- [neutron-api, mysql] +- [neutron-api, rabbitmq-server] +- [neutron-api, keystone] +applications: + keystone: + charm: cs:~openstack-charmers-next/xenial/keystone + constraints: mem=1G + num_units: 1 + options: {admin-password: openstack, admin-token: ubuntutesting, openstack-origin: 'cloud:xenial-pike'} + series: xenial + mysql: + charm: cs:~openstack-charmers-next/xenial/percona-cluster + constraints: mem=4G + num_units: 1 + options: {source: 'cloud:xenial-pike'} + series: xenial + neutron-api: + charm: cs:~openstack-charmers-next/xenial/neutron-api + constraints: mem=1G + num_units: 1 + options: {dns-domain: mojo.serverstack., enable-ml2-dns: true, flat-network-providers: physnet1, + ipv4-ptr-zone-prefix-size: 24, neutron-security-groups: true, openstack-origin: 'cloud:xenial-pike', + reverse-dns-lookup: true} + series: xenial + neutron-dynamic-routing: + charm: ../../../neutron-dynamic-routing + num_units: 1 + options: {asn: 12345, openstack-origin: 'cloud:xenial-pike/proposed'} + series: xenial + rabbitmq-server: + charm: cs:~openstack-charmers-next/xenial/rabbitmq-server + constraints: mem=1G + num_units: 1 + options: {source: 'cloud:xenial-pike'} + series: xenial + quagga: + charm: cs:~openstack-charmers-next/xenial/quagga + num_units: 1 + options: {asn: 10000} + series: xenial + diff --git a/src/tests/bundles/xenial-queens-functional.yaml b/src/tests/bundles/xenial-queens-functional.yaml new file mode 100644 index 0000000..541ed5b --- /dev/null +++ b/src/tests/bundles/xenial-queens-functional.yaml @@ -0,0 +1,45 @@ +relations: +- [neutron-dynamic-routing, rabbitmq-server] +- [neutron-dynamic-routing, quagga] +- [keystone, mysql] +- [neutron-api, mysql] +- [neutron-api, rabbitmq-server] +- [neutron-api, keystone] +applications: + keystone: + charm: cs:~openstack-charmers-next/xenial/keystone + constraints: mem=1G + num_units: 1 + options: {admin-password: openstack, admin-token: ubuntutesting, openstack-origin: 'cloud:xenial-queens'} + series: xenial + mysql: + charm: cs:~openstack-charmers-next/xenial/percona-cluster + constraints: mem=4G + num_units: 1 + options: {source: 'cloud:xenial-queens'} + series: xenial + neutron-api: + charm: cs:~openstack-charmers-next/xenial/neutron-api + constraints: mem=1G + num_units: 1 + options: {dns-domain: mojo.serverstack., enable-ml2-dns: true, flat-network-providers: physnet1, + ipv4-ptr-zone-prefix-size: 24, neutron-security-groups: true, openstack-origin: 'cloud:xenial-queens', + reverse-dns-lookup: true} + series: xenial + neutron-dynamic-routing: + charm: ../../../neutron-dynamic-routing + num_units: 1 + options: {asn: 12345, openstack-origin: 'cloud:xenial-queens/proposed'} + series: xenial + rabbitmq-server: + charm: cs:~openstack-charmers-next/xenial/rabbitmq-server + constraints: mem=1G + num_units: 1 + options: {source: 'cloud:xenial-queens'} + series: xenial + quagga: + charm: cs:~openstack-charmers-next/xenial/quagga + num_units: 1 + options: {asn: 10000} + series: xenial + diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml new file mode 100644 index 0000000..dbd08df --- /dev/null +++ b/src/tests/tests.yaml @@ -0,0 +1,12 @@ +charm_name: neutron-dynamic-routing +tests: + - zaza.charm_tests.dragent.tests.DRAgentTest +configure: + - zaza.charm_tests.dragent.configure.setup +gate_bundles: + - xenial-queens-functional + - xenial-pike-functional +smoke_bundles: + - xenial-queens-functional +dev_bundles: + - bionic-queens-functional diff --git a/src/tox.ini b/src/tox.ini index c744c8f..6f7622b 100644 --- a/src/tox.ini +++ b/src/tox.ini @@ -1,6 +1,3 @@ -# Source charm: ./src/tox.ini -# This file is managed centrally by release-tools and should not be modified -# within individual charm repos. [tox] envlist = pep8 skipsdist = True @@ -8,46 +5,31 @@ skipsdist = True [testenv] setenv = VIRTUAL_ENV={envdir} PYTHONHASHSEED=0 - AMULET_SETUP_TIMEOUT=2700 whitelist_externals = juju -passenv = HOME TERM AMULET_* CS_API_URL +passenv = HOME TERM CS_API_* deps = -r{toxinidir}/test-requirements.txt install_command = - pip install --allow-unverified python-apt {opts} {packages} + pip install {opts} {packages} [testenv:pep8] basepython = python2.7 +deps=charm-tools commands = charm-proof -[testenv:func27-noop] -# DRY RUN - For Debug -basepython = python2.7 +[testenv:func-noop] +basepython = python3 commands = - bundletester -vl DEBUG -r json -o func-results.json --test-pattern "gate-*" -n --no-destroy + true -[testenv:func27] -# Run all gate tests which are +x (expected to always pass) -basepython = python2.7 +[testenv:func] +basepython = python3 commands = - bundletester -vl DEBUG -r json -o func-results.json --test-pattern "gate-*" --no-destroy + functest-run-suite --keep-model -[testenv:func27-smoke] -# Run a specific test as an Amulet smoke test (expected to always pass) -basepython = python2.7 +[testenv:func-smoke] +basepython = python3 commands = - bundletester -vl DEBUG -r json -o func-results.json gate-basic-xenial-pike --no-destroy - -[testenv:func27-dfs] -# Run all deploy-from-source tests which are +x (may not always pass!) -basepython = python2.7 -commands = - bundletester -vl DEBUG -r json -o func-results.json --test-pattern "dfs-*" --no-destroy - -[testenv:func27-dev] -# Run all development test targets which are +x (may not always pass!) -basepython = python2.7 -commands = - bundletester -vl DEBUG -r json -o func-results.json --test-pattern "dev-*" --no-destroy + functest-run-suite --keep-model --smoke [testenv:venv] commands = {posargs}