def test_post_metadata(self): """Test sucking metadata from uploader and configuring it in a dictionary suitable to blob to meta ingest.""" tar = open_tar('test_data/good.tar') meta = MetaParser() meta.load_meta(tar, 1) success, exception = meta.post_metadata() self.assertTrue(success) self.assertFalse(exception) tar = open_tar('test_data/bad-mimetype.tar') meta = MetaParser() meta.load_meta(tar, 2) success, exception = meta.post_metadata() self.assertFalse(success) self.assertTrue(exception)
def test_post_metadata(self): """Test sucking metadata from uploader and configuring it in a dictionary suitable to blob to meta ingest.""" tar = open_tar('test_data/baby.tar') meta = MetaParser() meta.load_meta(tar) success = meta.post_metadata() assert(success)
def test_down_metadata(self): """Test a failed upload of the metadata.""" tar = open_tar('test_data/good.tar') meta = MetaParser() def bad_put(*args, **kwargs): # pylint: disable=unused-argument """bad put to the metadata server.""" raise requests.HTTPError() meta.session.put = bad_put meta.load_meta(tar, 1) success, exception = meta.post_metadata() self.assertFalse(success) self.assertTrue(exception)
def ingest(job_id, filepath): """Ingest a tar bundle into the archive.""" update_state(job_id, 'OK', 'Open tar', 0) tar = open_tar(filepath) update_state(job_id, 'OK', 'Open tar', 100) update_state(job_id, 'OK', 'load metadata', 0) meta = MetaParser() meta.load_meta(tar) update_state(job_id, 'OK', 'load metadata', 100) ingest = TarIngester(tar, meta) # validate policy success = validate_meta (meta.meta_str) if not success: update_state(job_id, 'FAILED', 'Policy Validation', 0) return update_state(job_id, 'OK', 'Policy Validation', 100) update_state(job_id, 'OK', 'ingest files', 0) success = ingest.ingest() if not success: #rollback files update_state(job_id, 'FAILED', 'ingest files', 0) return update_state(job_id, 'OK', 'ingest files', 100) update_state(job_id, 'OK', 'ingest metadata', 0) success = meta.post_metadata() if not success: #rollback files update_state(job_id, 'FAILED', 'ingest metadata', 0) return update_state(job_id, 'OK', 'ingest metadata', 100)