def _get_metadata_from_key(cls, key): metadata = key.get_metadata('datalake') if not metadata: msg = 'No datalake metadata for s3://{}{}' msg = msg.format(key.bucket.name, key.name) raise InvalidDatalakeMetadata(msg) return Metadata.from_json(metadata)
def _get_metadata(cls, url): parsed_url = urlparse(url) bucket = cls._get_bucket(parsed_url.netloc) key = bucket.get_key(parsed_url.path) if key is None: msg = '{} does not appear to be in the datalake' msg = msg.format(url) raise NoSuchDatalakeFile(msg) metadata = key.get_metadata('datalake') if not metadata: raise InvalidDatalakeMetadata('No datalake metadata for ' + url) return Metadata.from_json(metadata)
def _get_metadata(cls, url): parsed_url = urlparse(url) bucket = cls._get_bucket(parsed_url.netloc) key = bucket.get_key(parsed_url.path) if key is None: msg = '{} does not appear to be in the datalake' msg = msg.format(url) raise NoSuchDatalakeFile(msg) metadata = key.get_metadata('datalake') if not metadata: raise InvalidDatalakeMetadata('No datalake metadata for ' + url) return Metadata.from_json(metadata)
def test_from_none_json(): with pytest.raises(InvalidDatalakeMetadata): Metadata.from_json(None)
def test_from_invalid_json(): with pytest.raises(InvalidDatalakeMetadata): Metadata.from_json('{flee floo')
def test_from_to_json(basic_metadata): m1 = Metadata.from_json(basic_json) m2 = m1.json assert sorted(m2) == sorted(basic_json)
def _get_metadata_from_key(self, key): m = key.get_metadata(METADATA_NAME) return Metadata.from_json(m)