summaryrefslogtreecommitdiff
path: root/yarns/900-implements.yarn
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-10-14 18:35:58 +0300
committerLars Wirzenius <liw@liw.fi>2017-10-14 18:35:58 +0300
commit4c5bfc6aae6bf4e608a5e675be075bc37b910b53 (patch)
tree91aa05ad0f8201b92a2072b2533775a3cef114c5 /yarns/900-implements.yarn
parent5480d64352e1f5b7fbc61d48b7d8e1156253fc97 (diff)
downloadick2-4c5bfc6aae6bf4e608a5e675be075bc37b910b53.tar.gz
Add: run yarns against locallly started instance, or remote
Diffstat (limited to 'yarns/900-implements.yarn')
-rw-r--r--yarns/900-implements.yarn81
1 files changed, 2 insertions, 79 deletions
diff --git a/yarns/900-implements.yarn b/yarns/900-implements.yarn
index b369833..3bb694e 100644
--- a/yarns/900-implements.yarn
+++ b/yarns/900-implements.yarn
@@ -17,77 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
-# Scenario step implementations
-
-## Authentication setup
-
- IMPLEMENTS GIVEN an RSA key pair for token signing
- argv = [
- os.path.join(srcdir, 'generate-rsa-key'),
- 'token.key',
- ]
- cliapp.runcmd(argv, stdout=None, stderr=None)
-
- IMPLEMENTS GIVEN an access token for scopes (.+)
- scopes = get_next_match()
- key = open('token.key').read()
- argv = [
- os.path.join(srcdir, 'create-token'),
- scopes,
- ]
- token = cliapp.runcmd(argv, feed_stdin=key)
- write('token.jwt', token)
- vars['issuer'] = 'localhost'
- vars['audience'] = 'localhost'
-
-## Controller configuration
-
- IMPLEMENTS GIVEN controller config uses (\S+) at the state directory
- vars['statedir'] = get_next_match()
-
-## Start and stop the controller
-
- IMPLEMENTS GIVEN a running ick controller
- import os, time, cliapp, yaml
- vars['controller.log'] = 'ick_controller.log'
- vars['gunicorn3.log'] = 'gunicorn3.log'
- vars['port'] = random_free_port()
- vars['url'] = 'http://127.0.0.1:{}'.format(vars['port'])
- config = {
- 'token-issuer': vars['issuer'],
- 'token-audience': vars['audience'],
- 'token-public-key': cat('token.key.pub'),
- 'log': [
- {
- 'filename': vars['controller.log'],
- },
- ],
- 'statedir': vars['statedir'],
- }
- env = dict(os.environ)
- env['ICK_CONTROLLER_CONFIG'] = 'ick_controller.yaml'
- yaml.safe_dump(config, open('ick_controller.yaml', 'w'))
- argv = [
- 'gunicorn3',
- '--daemon',
- '--bind', '127.0.0.1:{}'.format(vars['port']),
- '--log-file', vars['gunicorn3.log'],
- '--log-level', 'debug',
- '-p', 'pid',
- 'ick_controller:app',
- ]
- cliapp.runcmd(argv, env=env)
- vars['pid'] = int(cat('pid'))
- wait_for_port(vars['port'])
-
- IMPLEMENTS WHEN user stops ick controller
- import os, signal
- os.kill(int(vars['pid']), signal.SIGTERM)
-
- IMPLEMENTS FINALLY stop ick controller
- import os, signal
- os.kill(vars['pid'], signal.SIGTERM)
-
+# Scenario step implementations (local and remote instances)
## HTTP requests of various kinds
@@ -154,11 +84,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
actual = obj['version']
setup_py = os.path.join(srcdir, 'setup.py')
wanted = cliapp.runcmd(['python3', setup_py, '--version']).strip()
- assertEqual(actual, wanted)
-
-## Controller state inspection
-
- IMPLEMENTS THEN controller state directory contains project (\S+)
- name = get_next_match()
- filename = os.path.join(vars['statedir'], 'projects', name + '.yaml')
- assertTrue(os.path.exists(filename))
+ assertTrue(wanted.startswith(actual))