Esempio n. 1
0
 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)
Esempio n. 2
0
    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://.')
Esempio n. 3
0
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))
Esempio n. 4
0
 def get_store_location_service(self):
     return cerulean.LocalFileSystem() / str(self._exchange_path)