def test_preprocessing(): try: os.environ['FOO'] = 'abcdef' pp = proxy_to_partialplus( Proxy(callable=dict, positionals=(), keywords={'x': '${FOO}'}, yaml_src=None)) p = evaluate(pp) assert p['x'] == 'abcdef' pp = proxy_to_partialplus(Proxy(callable=dict, positionals=(), keywords={'x': '${BAR}'}, yaml_src=None), environ={'BAR': 'fedcba'}) p = evaluate(pp) assert p['x'] == 'fedcba' pp = proxy_to_partialplus(Proxy(callable=dict, positionals=(), keywords={'x': '${FOO}'}, yaml_src=None), environ={'FOO': 'ghijkl'}) p = evaluate(pp) assert p['x'] == 'ghijkl' finally: del os.environ['FOO'] # Test turning it off. pp = proxy_to_partialplus(Proxy(callable=dict, positionals=(), keywords={'x': '${BAZ}'}, yaml_src=None), preprocess_strings=False) p = evaluate(pp) assert p['x'] == '${BAZ}'
def test_preprocessing(): try: os.environ['FOO'] = 'abcdef' pp = proxy_to_partialplus(Proxy(callable=dict, positionals=(), keywords={'x': '${FOO}'}, yaml_src=None)) p = evaluate(pp) assert p['x'] == 'abcdef' pp = proxy_to_partialplus(Proxy(callable=dict, positionals=(), keywords={'x': '${BAR}'}, yaml_src=None), environ={'BAR': 'fedcba'}) p = evaluate(pp) assert p['x'] == 'fedcba' pp = proxy_to_partialplus(Proxy(callable=dict, positionals=(), keywords={'x': '${FOO}'}, yaml_src=None), environ={'FOO': 'ghijkl'}) p = evaluate(pp) assert p['x'] == 'ghijkl' finally: del os.environ['FOO'] # Test turning it off. pp = proxy_to_partialplus(Proxy(callable=dict, positionals=(), keywords={'x': '${BAZ}'}, yaml_src=None), preprocess_strings=False) p = evaluate(pp) assert p['x'] == '${BAZ}'
def test_load(): src = '!obj:searchspaces.load.tests.test_pylearn2_yaml.Foo {x: 5}\n' pp = load(src) p = evaluate(pp) assert p.yaml_src == src assert p.x == 5 assert isinstance(p, Foo) src = "!obj:searchspaces.load.tests.test_pylearn2_yaml.Foo {x: '${FOO}'}\n" pp = load(src, environ={'FOO': 'abcdef'}) p = evaluate(pp) assert p.x == 'abcdef'
def test_proxy_to_partialplus(): # Use proxy_callback=None to test without YAML-appending. pp = proxy_to_partialplus(Proxy(callable=dict, positionals=(), keywords={'x': [5, 3, 2]}, yaml_src=None), proxy_callback=None) assert evaluate(pp) == {'x': [5, 3, 2]}
def test_proxy_to_partialplus_literal_callback(): def baz(x): if isinstance(x, int): x *= 2 return x # Use proxy_callback=None to test without YAML-appending. pp = proxy_to_partialplus(Proxy(callable=dict, positionals=(), keywords={'x': 5}, yaml_src=None), proxy_callback=None, literal_callback=baz) assert evaluate(pp)['x'] == 10
def test_append_yaml_callback(): pfail = Proxy(callable=dict, positionals=(), keywords={'value': 5}, yaml_src="test_value_1") pobj = Proxy(callable=Foo, positionals=(), keywords={'x': 3}, yaml_src="test_value_2") raised = False try: test = append_yaml_callback(pfail, proxy_to_partialplus(pfail)) except AttributeError: raised = True assert not raised test = evaluate(append_yaml_callback(pobj, proxy_to_partialplus(pobj))) assert hasattr(test, 'yaml_src') assert test.yaml_src == "test_value_2"
def test_load_path(): src = '!obj:searchspaces.load.tests.test_pylearn2_yaml.Foo {x: 5}\n' try: fd, fn = tempfile.mkstemp() os.close(fd) with open(fn, 'w') as f: f.write(src) pp = load_path(fn) p = evaluate(pp) print p assert p.yaml_src == src assert p.x == 5 assert isinstance(p, Foo) finally: os.remove(fn)
def test_do_not_recurse(): proxy = Proxy(callable=do_not_recurse, positionals=(), keywords={'value': Proxy(None, None, None, None)}, yaml_src=None) assert isinstance(evaluate(proxy_to_partialplus(proxy)), Proxy)