コード例 #1
0
def main():
    return composer.do(
        composer.retry(
            2,
            composer.action('generateEvenNumber',
                            {'action': generateEvenNumber})),
        composer.action('evenFailed', {'action': evenFailed}))
コード例 #2
0
 def test_valid_and_invalid_options(self):
     composer.action('foo', {})
     try:
         composer.action('foo', 42)
         assert False
     except composer.ComposerError as error:
         assert error.message.startswith('Invalid argument')
コード例 #3
0
def main():
    return composer.when(
        composer.action(
            'authenticate',
            {'action': lambda args: {
                'value': args['password'] == 'abc123'
            }}),
        composer.action('success',
                        {'action': lambda args: {
                            'message': 'success'
                        }}),
        composer.action('failure',
                        {'action': lambda args: {
                            'message': 'failure'
                        }}))
コード例 #4
0
 def test_invalid(self):
     '''invalid options'''
     try:
         invoke(composer.action('foo', 42))
         assert False
     except composer.ComposerError as error:
         assert error.message.startswith('Invalid argument')
コード例 #5
0
def main():
    composer.action(
        'rands', {
            'action': {
                'kind':
                'python:3',
                'code':
                "from random import randint\ndef function(env, args):\n        return { 'value' : randint(0,100) }"
            }
        })
    composer.action(
        'prob', {
            'action': {
                'kind':
                'python:3',
                'code':
                "def function(env, args):\n        return { 'prob' : args['value'] > 70 }"
            }
        })
    composer.action(
        'ifTrue', {
            'action': {
                'kind':
                'python:3',
                'code':
                "def function(env, args):\n        return { 'messge' : 'your random was greater than 70' }"
            }
        })
    composer.action(
        'ifFalse', {
            'action': {
                'kind':
                'python:3',
                'code':
                "def function(env, args):\n        return { 'messge' : 'your random was less than 70' }"
            }
        })
    composer.action('randProb', {'sequence': ['rands', 'prob']})

    return composer.when('randProb', 'ifTrue', 'ifFalse')
コード例 #6
0
 def test_action_false(self):
     ''' action must return false '''
     activation = invoke(composer.action('isNotOne'), {'n': 1})
     assert activation['response']['result'] == {'value': False}
コード例 #7
0
 def test_action_true(self):
     ''' action must return true '''
     activation = invoke(composer.action('isNotOne'), {'n': 0})
     assert activation['response']['result'] == {'value': True}
コード例 #8
0
 def test_valid_and_invalid_names(self):
     combos = [{
         "n": 42,
         "s": False,
         "e": "Name must be a string"
     }, {
         "n": "",
         "s": False,
         "e": "Name is not valid"
     }, {
         "n": " ",
         "s": False,
         "e": "Name is not valid"
     }, {
         "n": "/",
         "s": False,
         "e": "Name is not valid"
     }, {
         "n": "//",
         "s": False,
         "e": "Name is not valid"
     }, {
         "n": "/a",
         "s": False,
         "e": "Name is not valid"
     }, {
         "n": "/a/b/c/d",
         "s": False,
         "e": "Name is not valid"
     }, {
         "n": "/a/b/c/d/",
         "s": False,
         "e": "Name is not valid"
     }, {
         "n": "a/b/c/d",
         "s": False,
         "e": "Name is not valid"
     }, {
         "n": "/a/ /b",
         "s": False,
         "e": "Name is not valid"
     }, {
         "n": "a",
         "e": False,
         "s": "/_/a"
     }, {
         "n": "a/b",
         "e": False,
         "s": "/_/a/b"
     }, {
         "n": "a/b/c",
         "e": False,
         "s": "/a/b/c"
     }, {
         "n": "/a/b",
         "e": False,
         "s": "/a/b"
     }, {
         "n": "/a/b/c",
         "e": False,
         "s": "/a/b/c"
     }]
     for combo in combos:
         if combo["s"] is not False:
             # good cases
             assert composer.action(combo["n"]).name == combo["s"]
         else:
             # error cases
             try:
                 composer.action(combo["n"])
                 assert False
             except composer.ComposerError as error:
                 assert error.message.startswith(combo["e"])
コード例 #9
0
 def test_combinator_type(self):
     assert getattr(composer.action('foo'), 'type') == 'action'
コード例 #10
0
ファイル: demo.py プロジェクト: ibm-functions/composer-python
def main():
    return composer.when(
        composer.action('authenticate', {'action': authenticate}),
        composer.action('success', {'action': success}),
        composer.action('failure', {'action': failure}))