def test_null(): s = io.StringIO() dotscience.start() dotscience.publish(stream=s) m = _parse(s.getvalue()) assert m["input"] == [] assert m["output"] == [] assert m["labels"] == {} assert m["parameters"] == {} assert m["summary"] == {} assert m["workload-file"] == TEST_WORKLOAD_FILE
def test_parameter_n(a, b): s = io.StringIO() dotscience.start() dotscience.add_parameters("a", a) dotscience.add_parameters(b=b) dotscience.publish(stream=s) m = _parse(s.getvalue()) assert m["output"] == [] assert m["input"] == [] assert m["parameters"] == {"a": a, "b": b} assert m["labels"] == {} assert m["summary"] == {} assert m["workload-file"] == TEST_WORKLOAD_FILE
def test_output_1b(d): s = io.StringIO() dotscience.start() dp = tidy_path(os.getcwd() + "/" + d) assert dotscience.output(dp) == dp dotscience.publish(stream=s) m = _parse(s.getvalue()) assert m["output"] == [os.path.relpath(dp, start=os.getcwd())] assert m["input"] == [] assert m["labels"] == {} assert m["parameters"] == {} assert m["summary"] == {} assert m["workload-file"] == TEST_WORKLOAD_FILE
def test_multi_publish_1(): s1 = io.StringIO() dotscience.start() dotscience.publish("Hello", stream=s1) s2 = io.StringIO() dotscience.publish("World", stream=s2) m1 = _parse(s1.getvalue()) m2 = _parse(s2.getvalue()) assert m1["description"] == "Hello" assert m2["description"] == "World" assert m1["__ID"] != m2["__ID"] assert m1["start"] != m2["start"] assert m1["end"] != m2["end"]
def test_output_n(d): d = set([tidy_path(os.getcwd() + "/" + x) for x in d]) s = io.StringIO() dotscience.start() dotscience.add_outputs(*d) dotscience.publish(stream=s) m = _parse(s.getvalue()) assert len(m["output"]) == len(d) and sorted(m["output"]) == sorted( [os.path.relpath(x, start=os.getcwd()) for x in d]) assert m["input"] == [] assert m["labels"] == {} assert m["parameters"] == {} assert m["summary"] == {} assert m["workload-file"] == TEST_WORKLOAD_FILE
def test_start_end(): s = io.StringIO() dotscience.start() t1 = dotscience._defaultDS.currentRun._start dotscience.end() t2 = dotscience._defaultDS.currentRun._end dotscience.publish(stream=s) m = _parse(s.getvalue()) assert m["start"] == t1.strftime("%Y%m%dT%H%M%S.%f") assert m["end"] == t2.strftime("%Y%m%dT%H%M%S.%f") assert m["input"] == [] assert m["output"] == [] assert m["labels"] == {} assert m["parameters"] == {} assert m["summary"] == {} assert m["workload-file"] == TEST_WORKLOAD_FILE
import dotscience as ds ds.script() ds.start() ds.publish("hello, world")