def __init__(self, tmpdir): self._file_system = cerulean.LocalFileSystem() base_dir_path = tmpdir / 'remote_basedir' base_dir_path.mkdir() self._base_dir = self._file_system / str(base_dir_path) exchange_path = tmpdir / 'local_exchange' exchange_path.mkdir() self._exchange_path = str(exchange_path)
def get_store_location_service(self) -> cerulean.Path: """ Returns the file exchange location access point for the service. Returns: The local base directory for file exchange with the client. Raises: KeyError: The location was not set. """ url = self._config['client-file-exchange']['store-location-service'] urlparts = urllib.parse.urlparse(url) if urlparts.scheme == 'file': return cerulean.LocalFileSystem() / urlparts.path elif urlparts.scheme == 'http': return cerulean.WebdavFileSystem(url) / '' else: raise RuntimeError('Config store-location-service contains an' ' invalid scheme. Use file:// or http://.')
import cerulean from cerise.back_end.job_planner import JobPlanner from cerise.test.fixture_jobs import (BrokenJob, MissingInputJob, NoSuchStepJob, PassJob, SlowJob) lfs = cerulean.LocalFileSystem() def test_job_planner_init(mock_config, mock_store_resolved, local_api_dir): store, _ = mock_store_resolved planner = JobPlanner(store, lfs / str(local_api_dir)) requirements = planner._steps_requirements assert requirements['test/wc.cwl']['num_cores'] == 0 assert requirements['test/hostname.cwl']['num_cores'] == 2 assert requirements['test/echo.cwl']['num_cores'] == 0 assert requirements['test/sleep.cwl']['num_cores'] == 0 assert requirements['test/wc.cwl']['time_limit'] == 60 assert requirements['test/hostname.cwl']['time_limit'] == 0 assert requirements['test/echo.cwl']['time_limit'] == 0 assert requirements['test/sleep.cwl']['time_limit'] == 0 def test_plan_job(mock_config, mock_store_resolved, local_api_dir): store, job_fixture = mock_store_resolved planner = JobPlanner(store, lfs / str(local_api_dir))
def get_store_location_service(self): return cerulean.LocalFileSystem() / str(self._exchange_path)