def test_upload_generator(self): # test uploading content from a generator def data_generator(): yield 'line one of text\n' yield 'line two of text\n' yield 'line three of text\n' text_content = ''.join(data_generator()) content_md5 = md5sum(text_content) size = len(text_content) upload_id = self.rest_api.upload(data_generator(), size=size, content_type='text/plain') pattern = re.compile('uploaded://[0-9]+') self.assertTrue(pattern.match(upload_id)) # check that the *right* content was uploaded by adding # a datastream using the computed MD5 and generated upload id obj = load_fixture_data('basic-object.foxml') response = self.rest_api.ingest(obj) pid = response.text add_response = self.rest_api.addDatastream(pid, 'text', controlGroup='M', dsLocation=upload_id, mimeType='text/plain', checksumType='MD5', checksum=content_md5) self.assertTrue(add_response.status_code, requests.codes.created) # get the content from fedora and confirm it matches what was sent dsresponse = self.rest_api.getDatastreamDissemination(pid, 'text') self.assertEqual(text_content, dsresponse.text) # clean up test object self.rest_api.purgeObject(pid)
def test_purgeObject(self): object = load_fixture_data("basic-object.foxml") pid = self.rest_api.ingest(object) purged, message = self.rest_api.purgeObject(pid) self.assertTrue(purged) # NOTE: fedora doesn't notice the object has been purged right away sleep(7) # 5-6 was fastest this worked; padding to avoid spurious failures self.assertRaises(Exception, self.rest_api.getObjectProfile, pid) # bad pid self.assertRaises(RequestFailed, self.rest_api.purgeObject, "bogus:pid")
def test_ingest(self): object = load_fixture_data("basic-object.foxml") pid = self.rest_api.ingest(object) self.assertTrue(pid) self.rest_api.purgeObject(pid) # test ingesting with log message pid = self.rest_api.ingest(object, "this is my test ingest message") # ingest message is stored in AUDIT datastream # - can currently only be accessed by retrieving entire object xml xml, url = self.rest_api.getObjectXML(pid) self.assertTrue("this is my test ingest message" in xml) self.rest_api.purgeObject(pid, "removing test ingest object")
def test_ingest(self): object = load_fixture_data('basic-object.foxml') pid = self.rest_api.ingest(object) self.assertTrue(pid) self.rest_api.purgeObject(pid) # test ingesting with log message pid = self.rest_api.ingest(object, "this is my test ingest message") # ingest message is stored in AUDIT datastream # - can currently only be accessed by retrieving entire object xml xml, url = self.rest_api.getObjectXML(pid) self.assertTrue("this is my test ingest message" in xml) self.rest_api.purgeObject(pid, "removing test ingest object")
def test_purgeObject(self): obj = load_fixture_data('basic-object.foxml') r = self.rest_api.ingest(obj) pid = r.text r = self.rest_api.purgeObject(pid) purged = (r.status_code == requests.codes.ok) self.assertTrue(purged) # NOTE: fedora doesn't notice the object has been purged right away sleep(7) # 5-6 was fastest this worked; padding to avoid spurious failures self.assertRaises(Exception, self.rest_api.getObjectProfile, pid) # bad pid self.assertRaises(RequestFailed, self.rest_api.purgeObject, "bogus:pid")
def test_ingest_without_pid(self): object = load_fixture_data('basic-object.foxml') pid = self.repo.ingest(object) self.assertTrue(pid) self.repo.purge_object(pid) # test ingesting with log message pid = self.repo.ingest(object, "this is my test ingest message") # ingest message is stored in AUDIT datastream # - can currently only be accessed by retrieving entire object xml r = self.repo.api.getObjectXML(pid) self.assertTrue("this is my test ingest message" in r.content) purged = self.repo.purge_object(pid, "removing test ingest object") self.assertTrue(purged)
def test_purgeObject(self): obj = load_fixture_data('basic-object.foxml') r = self.rest_api.ingest(obj) pid = r.content r = self.rest_api.purgeObject(pid) purged = (r.status_code == requests.codes.ok) self.assertTrue(purged) # NOTE: fedora doesn't notice the object has been purged right away sleep(7) # 5-6 was fastest this worked; padding to avoid spurious failures self.assertRaises(Exception, self.rest_api.getObjectProfile, pid) # bad pid self.assertRaises(RequestFailed, self.rest_api.purgeObject, "bogus:pid")
def test_ingest(self): obj = load_fixture_data('basic-object.foxml') r = self.rest_api.ingest(obj) pid = r.content self.assertTrue(pid) self.rest_api.purgeObject(pid) # test ingesting with log message r = self.rest_api.ingest(obj, "this is my test ingest message") pid = r.content # ingest message is stored in AUDIT datastream # - can currently only be accessed by retrieving entire object xml r = self.rest_api.getObjectXML(pid) self.assertTrue("this is my test ingest message" in r.content) self.rest_api.purgeObject(pid, "removing test ingest object")