summaryrefslogtreecommitdiff
path: root/yarns/900-local.yarn
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-12-03 18:51:13 +0200
committerLars Wirzenius <liw@liw.fi>2017-12-03 20:11:03 +0200
commit107ffc0a60de703d84957cf6d8948ed7d61d7362 (patch)
tree624cddece68a78d3f66c3ec02c002e34e7057e3a /yarns/900-local.yarn
parentdd250d5a64d81ed247ce8e19fc300feaaa1e44c9 (diff)
downloadick2-107ffc0a60de703d84957cf6d8948ed7d61d7362.tar.gz
Add: scenario for testing blob service
Diffstat (limited to 'yarns/900-local.yarn')
-rw-r--r--yarns/900-local.yarn42
1 files changed, 42 insertions, 0 deletions
diff --git a/yarns/900-local.yarn b/yarns/900-local.yarn
index 409a8e6..89652de 100644
--- a/yarns/900-local.yarn
+++ b/yarns/900-local.yarn
@@ -100,3 +100,45 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
name = get_next_match()
filename = os.path.join(vars['statedir'], 'workers', name + '.yaml')
assertTrue(os.path.exists(filename))
+
+## Start and stop blob service
+
+ IMPLEMENTS GIVEN blob service config uses (\S+) at the blob directory
+ vars['blobdir'] = get_next_match()
+
+ IMPLEMENTS GIVEN a running blob service
+ import os, time, cliapp, yaml
+ vars['blob_service.log'] = 'blob_service.log'
+ vars['gunicorn3_bs.log'] = 'gunicorn3_bs.log'
+ vars['bsport'] = random_free_port()
+ vars['bsurl'] = 'http://127.0.0.1:{}'.format(vars['bsport'])
+ config = {
+ 'token-issuer': vars['issuer'],
+ 'token-audience': vars['audience'],
+ 'token-public-key': cat('token.key.pub'),
+ 'log': [
+ {
+ 'filename': vars['blob_service.log'],
+ },
+ ],
+ 'blobdir': vars['blobdir'],
+ }
+ env = dict(os.environ)
+ env['BLOB_SERVICE_CONFIG'] = 'blob_service.yaml'
+ yaml.safe_dump(config, open('blob_service.yaml', 'w'))
+ argv = [
+ 'gunicorn3',
+ '--daemon',
+ '--bind', '127.0.0.1:{}'.format(vars['bsport']),
+ '--log-file', vars['gunicorn3_bs.log'],
+ '--log-level', 'debug',
+ '-p', 'bspid',
+ 'blob_service:app',
+ ]
+ cliapp.runcmd(argv, env=env)
+ vars['bspid'] = int(cat('bspid'))
+ wait_for_port(vars['bsport'])
+
+ IMPLEMENTS FINALLY stop blob service
+ import os, signal
+ os.kill(vars['bspid'], signal.SIGTERM)