def test_service_from_yaml(): # Check that syntactic sugar for files, etc... is properly parsed s = Service.from_yaml(service_spec) assert isinstance(s, Service) assert s.node_label == 'gpu' assert s.resources.vcores == 1 assert s.resources.memory == 1024 assert isinstance(s.files, dict) fil = s.files['testfile'] assert fil.source == 'file:///path/to/testfile' assert fil.type == 'FILE' archive = s.files['testarchive'] assert archive.source == 'file:///path/to/testarchive.zip' assert archive.type == 'ARCHIVE' other = s.files['otherpath'] assert other.source == 'file:///path/to/other' assert other.type == 'FILE' assert s.env == {'key1': 'val1', 'key2': 'val2'} assert s.script == ('command 1\n' 'command 2') assert s.depends == set()
def test_service_roundtrip(): s = Service.from_yaml(service_spec) s2 = Service.from_yaml(s.to_yaml()) assert s == s2