diff --git a/tests/keystone.sh b/tests/keystone.sh new file mode 100755 index 0000000..5ecace8 --- /dev/null +++ b/tests/keystone.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +set -ex + +source $BASE_DIR/admin-openrc + +while sudo [ ! -d /var/snap/keystone/common/etc/keystone/ ]; do sleep 0.1; done; +sudo cp -r $BASE_DIR/etc/snap-keystone/* /var/snap/keystone/common/etc/ + +# Manually define alias if snap isn't installed from snap store. +# Otherwise, snap store defines this alias automatically. +snap aliases keystone | grep keystone-manage || sudo snap alias keystone.manage keystone-manage + +sudo keystone-manage fernet_setup --keystone-user root --keystone-group root +sudo keystone-manage db_sync + +sudo systemctl restart snap.keystone.* + +openstack user show admin || { + sudo keystone-manage bootstrap \ + --bootstrap-password keystone \ + --bootstrap-admin-url http://localhost:35357/v3/ \ + --bootstrap-internal-url http://localhost:35357/v3/ \ + --bootstrap-public-url http://localhost:5000/v3/ \ + --bootstrap-region-id RegionOne +} + +openstack project show service || { + openstack project create --domain default --description "Service Project" service +} diff --git a/tests/snapstack_test.py b/tests/snapstack_test.py new file mode 100644 index 0000000..6e3ffd7 --- /dev/null +++ b/tests/snapstack_test.py @@ -0,0 +1,26 @@ +import unittest + +from snapstack import Plan, Setup, Step + +class SnapstackTest(unittest.TestCase): + + def test_snapstack(self): + ''' + _test_snapstack_ + + Run a basic smoke test, utilizing our snapstack testing harness. + + ''' + # snapstack already installs keystone. Override the 'keystone' + # step with a locally built snap. neutron, nova, etc. will still + # be installed as normal from the store. + setup = Setup() + setup.add_steps(('keystone', Step( + snap='keystone', + script_loc='./tests/', + scripts=['keystone.sh'], + snap_store=False))) + + # Execute the snapstack tests + plan = Plan(base_setup=setup.steps()) + plan.run() diff --git a/tox.ini b/tox.ini index 7360ffc..a6fe96f 100644 --- a/tox.ini +++ b/tox.ini @@ -5,14 +5,18 @@ skipsdist = True [testenv] basepython = python3.5 install_command = pip install {opts} {packages} -passenv = HOME TERM +passenv = + HOME + TERM + SNAP_BUILD_PROXY whitelist_externals = sudo snapcraft [testenv:snap] -deps = -r{toxinidir}/requirements.txt +deps = + -r{toxinidir}/requirements.txt + git+https://github.com/openstack-snaps/snapstack + pytest commands = - sudo snap install core - snapcraft clean - snapcraft snap + py.test -s tests/