def test_let_let_let_mask(self): activation = invoke( composer.let({'x': 42}, composer.let({'x': 69}, composer.let({'x': -1}, composer.mask(get_x))))) assert activation['response']['result'] == {'value': 69}
def test_failure(self): try: invoke(composer.let({'x': 2}, composer.retry(1, retry_test))) assert False except Exception as err: assert err.error['response']['result'] == {'error': 'foo'}
def test_success(self): activation = invoke( composer.let({'x': 2}, composer.retry(2, retry_test))) assert activation['response']['result'] == {'value': 42}
def test_scoping(self): activation = invoke( composer.let({'x': 42}, composer.let({'x': 69}, get_x), get_value_plus_x), {}) assert activation['response']['result'] == {'value': 111}
def test_invalid_argument(self): try: invoke(composer.let(invoke)) assert False except composer.ComposerError as error: assert error.message.startswith('Invalid argument')
def test_two_variables_combined(self): activation = invoke(composer.let({'x': 42, 'y': 69}, get_x_plus_y), {}) assert activation['response']['result'] == {'value': 111}
def test_masking(self): activation = invoke( composer.let({'x': 42}, composer.let({'x': 69}, get_x)), {}) assert activation['response']['result'] == {'value': 69}
def test_one_variable(self): activation = invoke(composer.let({'x': 42}, get_x), {}) assert activation['response']['result'] == {'value': 42}
def test_combinator_type(self): assert composer.let({}).type == 'let'
def test_variable_argument_count(self): composer.let({}) composer.let({}, 'foo') composer.let({}, 'foo', 'foo')