Exemplo n.º 1
0
def test_asset_spec_is_version_complete():
    spec = AssetSpec(name="name", version="1.1", versioning="major_minor")
    assert spec.is_version_complete()

    spec = AssetSpec(name="name", version="1", versioning="major_minor")
    assert not spec.is_version_complete()

    spec = AssetSpec(name="name", versioning="major_minor")
    assert not spec.is_version_complete()
Exemplo n.º 2
0
    def _resolve_version(self, spec: AssetSpec) -> None:
        local_versions = self._list_local_versions(spec)
        logger.debug("Local versions", local_versions=local_versions)

        if spec.is_version_complete():
            return

        remote_versions = []
        if self.storage_provider:
            remote_versions = self.storage_provider.get_versions_info(
                spec.name)
            logger.debug("Fetched remote versions",
                         remote_versions=remote_versions)

        all_versions = spec.sort_versions(version_list=set(local_versions +
                                                           remote_versions))

        if not all_versions:
            if not spec.version:
                logger.debug("Asset has no version information")
                # no version is specified and none exist
                # in this case, the asset spec is likely a relative or absolute
                # path to a file/directory
                return None

            raise errors.LocalAssetDoesNotExistError(
                name=spec.name,
                version=spec.version,
                local_versions=local_versions,
            )

        # at least one version info is missing, update to the latest
        spec.set_latest_version(all_versions)