JSONMapping, JSONSequence) from stolos import api def setup_func(func_name): raw = {'a': 1, 'b': [1, 2, 3], 'c': {'aa': 1, 'bb': [1, 2, 3]}, 'd': [1, [2, 3]]} td = JSONMapping(raw) return [], dict(td=td, raw=raw) def teardown_func(): pass with_setup = tt.with_setup_factory( [setup_func], [teardown_func]) @with_setup def test_get_item(td, raw): nt.assert_is_instance(td, JSONMapping) nt.assert_equal(td['a'], 1) nt.assert_equal(td['b'], JSONSequence(raw['b'])) nt.assert_equal(td['b'][0], 1) nt.assert_equal(td['c'], JSONMapping(raw['c'])) nt.assert_equal(td['c']['bb'][-1], 3) @with_setup def test_set_item(td, raw): with nt.assert_raises(TypeError):
'b': [1, 2, 3], 'c': { 'aa': 1, 'bb': [1, 2, 3] }, 'd': [1, [2, 3]] } td = JSONMapping(raw) return [], dict(td=td, raw=raw) def teardown_func(): pass with_setup = tt.with_setup_factory([setup_func], [teardown_func]) @with_setup def test_get_item(td, raw): nt.assert_is_instance(td, JSONMapping) nt.assert_equal(td['a'], 1) nt.assert_equal(td['b'], JSONSequence(raw['b'])) nt.assert_equal(td['b'][0], 1) nt.assert_equal(td['c'], JSONMapping(raw['c'])) nt.assert_equal(td['c']['bb'][-1], 3) @with_setup def test_set_item(td, raw): with nt.assert_raises(TypeError):
from stolos import testing_tools as tt from stolos import get_NS def setup_qb(func_name): return ((), dict( app1=tt.makepath(func_name, 'app1'), app2=tt.makepath(func_name, 'app2'), app3=tt.makepath(func_name, 'app3'), app4=tt.makepath(func_name, 'app4'), item1="{}-{}".format(func_name, 'a'), item2="{}-{}".format(func_name, 'b'), item3="{}-{}".format(func_name, 'c'), item4="{}-{}".format(func_name, 'd'), item5="{}-{}".format(func_name, 'e'), item6="{}-{}".format(func_name, 'f'), )) with_setup = tt.with_setup_factory( ( tt.setup_job_ids, setup_qb, ), (tt.teardown_queue_backend, ), (tt.post_setup_queue_backend, lambda: dict(qbcli=get_NS().queue_backend))) with_setup, setup_qb
app_name: REDIS_PREFIX % (func_name, app_name) for app_name in raw} td = RedisMapping() for app_name, app_conf in raw.items(): td.cli.hmset(app_names[app_name], app_conf) return dict( cli=td.cli, raw=raw, td=td, **app_names) def teardown_redis(raw, cli, func_name): assert cli.delete( *(REDIS_PREFIX % (func_name, app_name) for app_name in raw)), \ "Oops did not clean up redis properly" with_setup = tt.with_setup_factory( [setup_redis], [teardown_redis], [post_initialize]) @with_setup def test_get_item(app1, td): with nt.assert_raises(KeyError): td['appNotExist'] nt.assert_is_instance(td, RedisMapping) nt.assert_is_instance(td[app1], JSONMapping) nt.assert_is_instance(td[app1], JSONMapping) # are returned values of the correct type? nt.assert_equal(len(list(td[app1].keys())), 3) nt.assert_true(all(x in [3, 2, 'key1'] for x in td[app1].keys())) nt.assert_is_instance( td[app1][3], JSONSequence) nt.assert_equal(td[app1]['key1'], 1)
for app_name in raw } td = RedisMapping() for app_name, app_conf in raw.items(): td.cli.hmset(app_names[app_name], app_conf) return dict(cli=td.cli, raw=raw, td=td, **app_names) def teardown_redis(raw, cli, func_name): assert cli.delete( *(REDIS_PREFIX % (func_name, app_name) for app_name in raw)), \ "Oops did not clean up redis properly" with_setup = tt.with_setup_factory([setup_redis], [teardown_redis], [post_initialize]) @with_setup def test_get_item(app1, td): with nt.assert_raises(KeyError): td['appNotExist'] nt.assert_is_instance(td, RedisMapping) nt.assert_is_instance(td[app1], JSONMapping) nt.assert_is_instance(td[app1], JSONMapping) # are returned values of the correct type? nt.assert_equal(len(list(td[app1].keys())), 3) nt.assert_true(all(x in [3, 2, 'key1'] for x in td[app1].keys())) nt.assert_is_instance(td[app1][3], JSONSequence) nt.assert_equal(td[app1]['key1'], 1) nt.assert_equal(len(td[app1]), 3)
from stolos import testing_tools as tt from stolos import get_NS def setup_qb(func_name): return ((), dict( app1=tt.makepath(func_name, 'app1'), app2=tt.makepath(func_name, 'app2'), app3=tt.makepath(func_name, 'app3'), app4=tt.makepath(func_name, 'app4'), item1="{}-{}".format(func_name, 'a'), item2="{}-{}".format(func_name, 'b'), item3="{}-{}".format(func_name, 'c'), item4="{}-{}".format(func_name, 'd'), item5="{}-{}".format(func_name, 'e'), item6="{}-{}".format(func_name, 'f'), )) with_setup = tt.with_setup_factory( (tt.setup_job_ids, setup_qb, ), (tt.teardown_queue_backend, ), (tt.post_setup_queue_backend, lambda: dict(qbcli=get_NS().queue_backend)) ) with_setup, setup_qb