Example #1
0
def test_get_filestem(
    regsurf,
    edataobj1,
    name,
    tagname,
    parentname,
    time0,
    time1,
    expected,
):
    """Testing the private _get_filestem method."""
    objdata = _ObjectDataProvider(regsurf, edataobj1)
    objdata.name = name
    objdata.time0 = time0
    objdata.time1 = time1

    edataobj1.tagname = tagname
    edataobj1.parent = parentname
    edataobj1.name = ""

    fdata = _FileDataProvider(
        edataobj1,
        objdata,
    )

    stem = fdata._get_filestem()
    assert stem == expected
Example #2
0
def test_filedata_provider(regsurf, edataobj1, tmp_path):
    """Testing the derive_filedata function."""

    os.chdir(tmp_path)

    cfg = edataobj1
    cfg.createfolder = True
    cfg._rootpath = Path(".")
    cfg.name = ""

    objdata = _ObjectDataProvider(regsurf, edataobj1)
    objdata.name = "name"
    objdata.efolder = "efolder"
    objdata.extension = ".ext"
    objdata.time0 = "t1"
    objdata.time1 = "t2"

    fdata = _FileDataProvider(cfg, objdata)
    fdata.derive_filedata()

    print(fdata.relative_path)
    assert fdata.relative_path == "share/results/efolder/parent--name--tag--t1_t2.ext"
    absdata = str(tmp_path /
                  "share/results/efolder/parent--name--tag--t1_t2.ext")
    assert fdata.absolute_path == absdata
Example #3
0
def test_get_filestem_shall_fail(
    regsurf,
    edataobj1,
    name,
    tagname,
    parentname,
    time0,
    time1,
    message,
):
    """Testing the private _get_filestem method when it shall fail."""
    objdata = _ObjectDataProvider(regsurf, edataobj1)
    objdata.name = name
    objdata.time0 = time0
    objdata.time1 = time1

    edataobj1.tagname = tagname
    edataobj1.parent = parentname
    edataobj1.name = ""

    fdata = _FileDataProvider(edataobj1, objdata)

    with pytest.raises(ValueError) as msg:
        _ = fdata._get_filestem()
        assert message in str(msg)
Example #4
0
def test_get_paths_not_exists_so_create(regsurf, edataobj1, tmp_path):
    """Testing the private _get_path method, creating the path."""

    os.chdir(tmp_path)

    objdata = _ObjectDataProvider(regsurf, edataobj1)
    objdata.name = "some"
    objdata.efolder = "efolder"
    cfg = edataobj1

    cfg.createfolder = True
    cfg._rootpath = Path(".")

    fdata = _FileDataProvider(cfg, objdata)

    path = fdata._get_path()
    assert str(path) == "share/results/efolder"
Example #5
0
def test_get_paths_path_exists_already(regsurf, edataobj1, tmp_path):
    """Testing the private _get_path method."""

    os.chdir(tmp_path)
    newpath = tmp_path / "share" / "results" / "efolder"
    newpath.mkdir(parents=True, exist_ok=True)

    edataobj1.name = "some"

    objdata = _ObjectDataProvider(regsurf, edataobj1)
    objdata.name = "some"
    objdata.efolder = "efolder"

    fdata = _FileDataProvider(edataobj1, objdata)

    path = fdata._get_path()
    assert str(path) == "share/results/efolder"
Example #6
0
    def _populate_meta_file(self):
        """Populate the file block in the metadata.

        The file block also contains all needed info for doing the actual file export.

        It requires that the _ObjectDataProvider is ran first -> self.objdata

        - relative_path, seen from rootpath
        - absolute_path, as above but full path
        - checksum_md5, if required (a bit special treatment of this)
        """

        fdata = _FileDataProvider(
            self.dataio,
            self.objdata,
            self.rootpath,
            self.fmudata.iter_name,
            self.fmudata.real_name,
            self.verbosity,
        )
        fdata.derive_filedata()

        self.meta_file["relative_path"] = fdata.relative_path
        self.meta_file["absolute_path"] = fdata.absolute_path

        if self.compute_md5:
            logger.info("Compute MD5 sum for tmp file...")
            _, self.meta_file[
                "checksum_md5"] = export_file_compute_checksum_md5(
                    self.obj,
                    "tmp",
                    self.objdata.extension,
                    tmp=True,
                    flag=self.dataio._usefmtflag,
                )
        else:
            logger.info("Do not compute MD5 sum at this stage!")
            self.meta_file["checksum_md5"] = None