From 4c5bfc6aae6bf4e608a5e675be075bc37b910b53 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 14 Oct 2017 18:35:58 +0300 Subject: Add: run yarns against locallly started instance, or remote --- yarns/900-implements.yarn | 81 ++--------------------------------------------- 1 file changed, 2 insertions(+), 79 deletions(-) (limited to 'yarns/900-implements.yarn') 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 . --> -# 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 . 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)) -- cgit v1.2.1