def resolve(self) -> OnlineResource: if self._resolved: return self redirect_url = _get_redirect_url(self.url) if redirect_url == self.url: self._resolved = True return self meta = { attr.lstrip("_"): getattr(self, attr) for attr in ( "file_name", "sha256", "_preprocess", ) } gdrive_id = _get_google_drive_file_id(redirect_url) if gdrive_id: return GDriveResource(gdrive_id, **meta) http_resource = HttpResource(redirect_url, **meta) http_resource._resolved = True return http_resource
def test_get_google_drive_file_id(self): url = "https://drive.google.com/file/d/1hbzc_P1FuxMkcabkgn9ZKinBwW683j45/view" expected = "1hbzc_P1FuxMkcabkgn9ZKinBwW683j45" actual = utils._get_google_drive_file_id(url) assert actual == expected
def test_get_google_drive_file_id_invalid_url(self): url = "http://www.vision.caltech.edu/visipedia-data/CUB-200-2011/CUB_200_2011.tgz" assert utils._get_google_drive_file_id(url) is None
def test_get_google_drive_file_id(self): url = "https://drive.google.com/file/d/1GO-BHUYRuvzr1Gtp2_fqXRsr9TIeYbhV/view" expected = "1GO-BHUYRuvzr1Gtp2_fqXRsr9TIeYbhV" actual = utils._get_google_drive_file_id(url) assert actual == expected