def test_server_compute_use_remote_in_data(): result_url = pj(tmp_dir, "result.json") data_url = "http://myserver.myns/data.json" oas = OAServer("oas") oas.registered() with requests_mock.Mocker() as m: m.get(data_url, text=json.dumps({'a': 4})) oas.compute("pycode:def main(a): return a", data_url, result_url) assert get_json(result_url) == dict(id='oas', result=4)
def test_server_compute_use_pycode_in_data(): result_url = pj(tmp_dir, "result.json") oas = OAServer("oas") oas.registered() oas.compute("pycode:def main(a): return a", "a = 1", result_url) assert get_json(result_url) == dict(id='oas', result=1) oas.compute("pycode:def main(a): return a", "code:a = 2", result_url) assert get_json(result_url) == dict(id='oas', result=2)
def test_server_compute_is_working(): oas = OAServer("toto") oas.registered() def text_callback(request, context): del context resp = json.loads(request.text) assert resp["id"] == "toto" with requests_mock.Mocker() as m: m.post('http://test.com/return', text=text_callback) oas.compute("pycode:" + pycode, 'a=0.1', 'http://test.com/return')
def test_server_compute_use_local_in_data(): result_url = pj(tmp_dir, "result.json") data_url = pj(tmp_dir, "data.json") oas = OAServer("oas") oas.registered() with open(data_url, 'w') as f: json.dump({'a': 3}, f) oas.compute("pycode:def main(a): return a", "file:%s" % data_url, result_url) assert get_json(result_url) == dict(id='oas', result=3)
def test_server_compute_argument_definition(): oas = OAServer("oas") oas.registered() def ru(workflow, url_data, url_return): assert_raises(UserWarning, lambda: oas.compute(workflow, url_data, url_return)) # working components pyc = "pycode:def main():\n\tprint 1\n" dat = "a = 1" url_ret = pj(tmp_dir, "result.json") # workflow argument # completely wrong definition ru("toto", dat, url_ret) # bad pycode ru("pycode:", dat, url_ret) # bad dataflow # ru("dataflow:", "a=1", "http://return.com") # bad node id ru("toto:", dat, url_ret) ru(":toto", dat, url_ret) # url_data argument ru(pyc, "code:data", url_ret) ru(pyc, "file://data", url_ret) # ru("pycode:a=1", "http:data", "http://return.com") # url_return argument ru(pyc, dat, "ret") ru(pyc, dat, "file:ret") ru(pyc, dat, "http:ret") ru(pyc, dat, "http:/ret")
def test_server_state(): oas = OAServer("toto") assert oas.state() == "created" oas.registered() assert oas.state() == "waiting"
def test_server_id_cannot_change_once_registered(): oas = OAServer(0) oas.registered() assert_raises(AssertionError, lambda: oas.set_server_id("toto"))
def test_server_delete(): oas = OAServer("toto") oas.registered() oas.delete() assert oas.state() == "deleted"